DevOpsとCI/CDをデータパイプラインに拡張すべき10の理由

アジャイルな実験を行うことは、ソフトウェア開発における新常識となっています。多くの組織が、できるだけ早く最新バージョンの製品をリリースしたいと考えています。DevOpsおよび継続的インテグレーション、継続的デリバリー、継続的デプロイメント(CI/CD)の原則を活用すれば、品質、セキュリティ、コンプライアンスとスピードのバランスを保つことが可能になります。つまり、DevOpsによって柔軟性の高い対応ができるようになるのです。

DevOpsとCI/CDは、ソフトウェア開発を促進させるものとしてすでに幅広く採用されています。このプラクティスは、データパイプラインにも拡張したほうが良いのでしょうか?もしあなたの組織におけるソフトウェア開発でDevOpsを実装しているとしたら、データ統合をするために同じアプローチをデータパイプラインへと適応させるのはごく自然なことです。なぜなら、あなたの組織はDevOpsを展開するために必要な文化的変化へすでに適応していると言えるためです。

以下、このプラクティスをおすすめする10の理由についてご紹介します。

統合に関する問題を減らす:継続的な統合や配信を行うためには、より良いアプローチでデータ統合データマネジメントを行う必要があります。それぞれのレベルでテストを自動化すれば、統合に関する問題を大幅に減らすことができます。まずは単体でのテストから始めますが、そのジョブの重要度に沿った品質保証、パフォーマンス、受けいれテストなどを柔軟に加えることも可能です。

より迅速かつ大規模な価値の提供:AIを活用して自動的にデータ処理を行うことで、より迅速なサイクルで高品質な製品をリリースすることができます。CI/CDはデータパイプラインの展開を自動化するだけでなく、再利用可能なコンポーネントを体系的に保存し、チームの生産性を上げることにも役立ちます。

企業レベルのサービスレベル契約を満たす:すべてのステップにおけるテストが自動的に行われることで、本番環境に移行するバグはほとんど排除され、エラー率が下がりサービスレベル契約が改善されます。DevOpsの手法では、どんなデータエンジニアでもデータパイプラインを修正することができるほか、質の高いジョブのみがドリルを通過することが保証されます。

データの副産物に関する品質および再利用性を保証するライフサイクル管理:データパイプラインを製品として取り扱う場合、ソフトウェア開発のライフサイクルとして、要求分析、設計、開発とテスト、実装、文書化、評価といった段階を踏みます。これにより、コードの品質を改善することができます。継続的なフィードバックメカニズムにより、データエンジニアとDevOpsチームがデータパイプラインのパフォーマンスや速度を最適化することができます。またマッピング、タスクフロー、そのほかのデータ関連の副産物などを作成および更新すると、それらは文書化され、後でコードなし、ビルドなしのデータ統合アクティビティに再利用することが可能です。 DevOpsはガードレールとしての役割を果たし、テスト、リリース、再利用が容易になります。

シームレスなコラボレーション:DevOpsによってリリースのスピードが上がる理由の一つとして、チームの並行作業が可能になることが挙げられます。コードのチェックインとチェックアウトのオプションを使用すれば、複数のチームメンバーが衝突することなく同じオブジェクトで作業することができます。また、自動的なフィードバックメカニズムによって、データエンジニア、インテグレーター、オペレーターといった異なるペルソナ間の摩擦が取り去られます。さらに、リアルタイムのフィードバックを活用することで開発者の反復作業がよりスムーズになり、チームは運用上のオーバーヘッドを自動的に最適化できるため、あらゆる点においてプラスとなるのです。

バージョン管理:バージョンを追跡することで透明性が促され、所有権もより明確になります。これにより、データエンジニアがオブジェクトにチェックイン、チェックアウトする際、他の人が同じオブジェクトに取り組んでいるかどうかやその他の依存関係を気にすることなく作業することができます。

標準化:DevOpsによって、プロセス、ツールチェーン、一般的なフレームワークなどにおける標準化がスムーズになります。疎結合のモジュラーシステムやアプリケーションを基本要素として使用すると、その後のテクノロジーやプロセスの変更への適応が容易になります。たとえば明日、データパイプラインを最適化するためにテストの層を追加したい場合などは、DevOps手法を使用するとプロビジョニングを簡単に行えます。しかし、手作業のコーディングや不規則なカスタマイズを使用すると、求める変更がうまく行えない場合もあります。組織全体にわたる標準プロセスを備えることで、変化していく状況を追跡し、適応させるのに役立ちます。

実験を可能にする:新しいバージョンがうまく展開しなかった場合に以前のバージョンへいつでも戻ることができるよう、DevOpsではアジャイルな実験をやりやすい環境が整っています。開発者は新たなテクノロジーやタスクを試すことができ、ゲートキーパーは品質が途中で低下しないかを確認することができます。

監視:アラートや応答のシステムが自動化されていることで、CI / CDパイプラインのトラブルシューティングと監視が容易になります。ワークフローに中断や問題が生じていた場合、開発者は運用チームを煩わせることなくスムーズに修正を行うことができます。役割ベースの特権と権限によって、パイプラインの信頼性とセキュリティが保証されます。

DataOps、MLOps、AIOpsへの準備が整う:会社が保有するデータの成熟度レベルに応じてDevOpsの知識を取得し、将来的なデータ製品、機械学習モデル、人工知能プロジェクトへ向けたカスタマイズができます。

インフォマティカの顧客であるガイカーペンター社の、ハイブリッドクラウドに関するDevOpsアプローチをご紹介します。同社ではリリース関連で複数の段階において、データプロセスの合理化、自動化を行いました。まず開発の段階では、タスクの作成とユニットテストを行います。いちど取り掛かると、コードがシステム統合テストの環境に入ります。続いて、品質保証テスト、実稼働前のパフォーマンスもしくはユーザー受け入れテストを通過し、最終的な実稼働となります。すべてのプロセスが自動で行われるため、処理も自動で行われ、アジリティ、生産性、効率性を備えたビジネスを展開することができるようになります。

インフォマティカがサポートできること

インフォマティカのクラウドネイティブなデータ統合ソリューションを利用することで、CI/CD機能をスムーズに展開させることができます。これにより、開発、運用、セキュリティ全般のサイロを解消し、開発ライフサイクル全体で一貫したエクスペリエンスがもたらされます。

詳しくはこちらの動画をご覧ください。


本ブログは2021年8月8日のSUDIPTA DATTAによる10 Reasons You Should Extend DevOps and CI/CD Practices to Your Data Pipelineの翻訳です。