DevOps-image2

IT 部門向け DevOps の初歩

IT 部門向け DevOps の初歩

ソフトウェアエンジニアリングと IT 運用のトレンドである DevOps では、高品質のビジネス成果を達成するために開発部門と運用部門の間のコラボレーションを促進する一連のプロセス、ツール、プラクティス、相互作用などを取り決めます。このブログでは、DevOps の Ops (オペレーション) の方を重点的に考察します。IT 部門が、インフラストラクチャのプロビジョニングとアプリケーションの展開プロセスに DevOps の原則をまだ採用していないとすれば、すでに遅れをとっている可能性があります。

従来の IT と DevOps

IT 部門は、多くのことを処理する必要があります。従来の IT 部門は、様々な運用部門が相互にうまく機能できるよう結び付けるような処理を行ってきました。各運用部門は、意図的に編成されるか、結果的にそうなったかの違いはあるかもしれませんが、通常、サイロ(運用の特定の機能を担当するスペシャリストのチーム)に分かれています。あるチームがコンピューティングを担当し、別のチームがファイル転送を担当し、また別のチームがネットワークを担当するといったように。運用部門間の作業引継ぎには数時間、場合によっては数日かかる場合もあります。単一のサーバーを完全にプロビジョニングするには数日から数週間かかるかもしれません。こういったことによって業務に遅延が発生するのは、経営幹部が嫌う、避けたい問題です。

このような従来の IT が抱える問題を解くカギは DevOps であり、従来プロセスから根本的にシフトすることが必要になります。“Dev”(開発)と “Ops”(運用)というスタンダードな役割を取り払って両者を融合し、チームとして密接に連携できる方策が必要です。DevOps チームは、結果と結果を出すまでのスピードに責任を負います。組織化することで達成を目指す場合も、高品質な製品を迅速に提供するための目標、成果、およびインセンティブを共有して達成を目指す場合もあります。サービスを迅速に提供する上で重要な役割を果たすのは自動化です(もちろん、自動化以外にも多くのことが必要なのは言うまでもありませんが)。

インフラストラクチャ展開プロセスはすでに自動化されていると考えたり、”DevOps はすでに実施している” と考えたりしていても、もう一度、チームがどのように連携しているか、またはチームが本当に連携しているのか、問い直してみてください。チーム(またはプロジェクト)の全員に共通の目標がありますか?ここでの共通の目標とは、ソフトウェアやシステムの迅速な配信を可能にするために連携することを必要とするものであり、従来の配信方法で遅延が生ずるプロセスを、可能な限り自動化することによって達成できるような目標です。1つのステップが完了すると、次のステップが始まるというようにスムーズに流れていくことを目指します。

プロセス全体をチェックして、サーバープロビジョニングやソフトウェア展開プロセスが最初から最後まで完全に自動化されているかどうかを考えます。プロセスの中に承認を必要とする事項があるか、どういうメールを送信しなければならないか、記入するべき書類はあるか、ある環境から別の環境にコピーするべきファイルはあるか、などなど、様々なことをチェックする必要があります。承認や書類記入といった特定ポイントでの人的介入が、監査やコンプライアンスに必要な場合もあります。そのような特定ポイントは、それまでの手順が正常に完了したことを確認するためにプロセスに存在する必要がありますが、処理の流れをブロックしたり遅らせたりすることがないようにするべきです。チェックポイントや中間ステップを定義するプロセスも自動化の対象になります。

自動化のためのツール

プロセスの自動化にはツールが不可欠ですが、プロセスの各ステップで使用できる様々なツールがあります。ソース・コントロール、システム構築、ソフトウェア・テスト、製品デプロイメントなど、構造を追加したり自動化を有効にしたりするツールがあり、複数のベンダーが提供しています。各種オプションもありますので、チェックしてみてください。

すべてを実行するツールを見つけようとして時間を浪費しないよう気を付けてください。パイプラインがきっちり自動化されるようにするには、いくつかのツールが必要になります。さらに、優秀なソフトウェアエンジニアがアドホックなアイテムを追加する必要も出てくるかもしれません。

たとえば、MOVEit Automation は、ファイル転送を安全かつ確実に自動化するツールです。チーム間や外部との間で機密データをやりとりする必要がある場合は、自動化ソリューションの導入を検討してみてください。

 

高いパフォーマンスを発揮するIT

DevOps には、「障害が起きても、早期に対処して速やかに回復する」などというコンセプトがあります。このコンセプトの「障害が起きても」の部分に拒否反応を起こしてしまう人もいるようです。特に患者の治療にかかわる医療機関では、治療に影響が及ぶダウンタイムを引き起こす問題は容認できないと見なされます。2016年の DevOps レポートでは、頻繁にデプロイメントを行う「パフォーマンスの高い」IT 企業では、デプロイメントが頻繁に行われない「パフォーマンスの低い」IT 企業と比較して、障害発生率がおよそ3分の1、回復までの時間は約24倍速いという統計結果が示されています。

DevOps のカギを握るのは人

DevOps の成功は、経営幹部、開発者、テスト担当者、IT 運用担当者間のチームワークに大きく依存します。それぞれがチームの一員として目標と責任を共有して有機的に協業することによって、成功に必要な一貫性と集中力を高めることができます。DevOps という視点からは、サイロを取り払って、真の意味のチームワークを発揮できない組織は大きな問題を抱えることになります。

従来のプロセスがしみついた組織にとって、DevOps は業務の進め方を根本的に変更することを余儀なくさせられることと受け取られるかもしれません。まあ、そうなのですが。ただ、アプリケーションとデプロイされるインフラストラクチャのライフサイクル全体を、最初から全部、一気に切り替える必要はありません。ビジネスのニーズを正確に理解することから始めます。プロセスを迅速化するのにどういったことが可能でしょうか?業務上クリティカルではない小さなプロセスで、チーム全体が協力してそのプロセスを高速化できるものを探します。プロセス構築とフィードバックのループまでうまくいけば、その部分は自信を持ってデプロイできます。繰り返すうちにコツもつかめてくるでしょう。

IT 部門は、迅速なデプロイメントのための基盤を構築することから始める必要があります。その基盤とは、自動化、しっかりしたテストのフレームワーク、共通の目標で結ばれたチーム、適切なツールセットなどから構成されます。構築するそれぞれのブロックは、利用者に利便性を提供できる適切な DevOps として、必要な品質とスピードを確保することに焦点を合わせる必要があります。


Comments
Comments are disabled in preview mode.
Loading animation