DevOps とは

DevOps は、ソフトウェア開発ライフサイクル全体で開発チームと IT 運用チームが連携して作業する考え方です。組織は、DevOps を導入することで、設計から導入までの時間を短縮しながら、生産性とパフォーマンスを最大限に高められます。 

DevOps の主な要素

継続的インテグレーション/継続的デプロイ(CI/CD)

CI/CD を採用することで、品質を高めながら、ソフトウェアの更新/導入に要する時間を短縮できます。 

  • 継続的インテグレーションによって、共通のビルド領域でコンポーネントを統合するまで、チームメンバーがモジュール単位で独立して作業できるため、効率的に進められます。
  • 継続的デプロイでは、実稼働環境でビルドをテストすることにより、品質が保証されます。

シスコの継続的デリバリソリューションを確認


自動化プロセス

自動化により、人的エラーを減らし、開発環境の利用効率を高められます。自動化ツールによって以下が可能になります。

  • プロセスの標準化による容易な複製
  • メンテナンス、アップグレード、設備投資コストの削減
  • 実装時間の削減によるソフトウェア開発ライフサイクルの短縮
  • コンポーネントの信頼性と再利用性の向上

DevOps カルチャの
確立

開発チームと IT 運用チームを統合して強力な DevOps チームを形成するには、カルチャの転換が必要です。まず以下から始めます。

  • チーム間のコミュニケーションを促進する
  • コラボレーションの機会が得られる小規模なプロジェクトから始める
  • DevOps エンジニアになりうる主要な担当者を定める
  • 客観的データを共有できるツールを導入する

DevOps による効果の測定

重要業績評価指標を定めることで、DevOps の取り組みの効果を測定できます。次のメトリクスから貴重なインサイトが得られます。

  • デプロイ頻度
  • 実稼働環境の変更に伴う障害発生率
  • 平均修復時間(MTTR)
  • リードタイム
  • 変更の量
  • 障害回避率
  • カスタマーチケット数

DevOps とアジャイルの違い

  • DevOps は、製品の開発サイクルとデプロイサイクルを短縮するために、開発チームと IT チームを統合してコラボレーションを促進することに焦点を当てたアプローチです。
  • アジャイルソフトウェア開発は、ソフトウェアの各要素を段階的に開発することで更新頻度を高め、製品を進化させることに焦点を当てた手法です。

DevOps で利用するツールの種類

ビルドサーバー

ビルドサーバーは自動化ツールの 1 つで、ソースコードリポジトリ内のコードを、実行可能なコードベースにコンパイルするために利用します。主なものに、Jenkins、SonarQube、Artifactory などがあります。


ソースコードリポジトリ

ソースコードリポジトリは、継続的インテグレーションの重要な要素の 1 つで、開発者がさまざまなバージョンのコードを管理し、互いに独立してコードを変更できる場所です。ソース コード リポジトリ ツールには、Git、Cloudforce、Bitbucket、Subversion などがあります。


構成管理

構成管理とは、IT インフラストラクチャの要件、機能属性、プロパティを一貫して管理し、品質を確保することです。広く使用されている構成管理ツールの例として、Puppet、Ansible、Chef があります。 


仮想インフラストラクチャ

仮想インフラストラクチャは、Platform as a Service(PaaS)としてインフラストラクチャを提供するクラウドベースのサービスです。Amazon Web Services(AWS)や Microsoft Azure などがあります。自動化ツールと組み合わせて使用することで、システム管理者が新しいコードを自動的にテストできるため、DevOps を促進できます。 

AWS モニタリングソリューション

Microsoft Azure モニタリングソリューション


コンテナ

Linux コンテナは、開発プロセス中に特定のワークロードまたはアプリケーションをホストシステムから分離する、仮想化コンポーネントです。仮想コンポーネントの主なベンダーおよびツールとして、Docker、Kubernetes、ElasticBox、CoreOs などがあります。 

Docker モニタリングソリューション

Kubernetes モニタリングソリューション