Agile育成ブログ
未来を変える喜びを
未分類

DevOps

DevOpsが目指すのは、開発部門と運用部門の間にある伝統的な「壁」を取り払い、組織全体で協力し、ビジネス価値をより早く顧客に届けることです。

🛠️ DevOpsを支える主要なプラクティス

DevOpsは、以下の主要なプラクティス(実践手法)をツールで自動化することにより実現されます。

1. 継続的インテグレーション(CI: Continuous Integration)

開発者が作成したコードを、頻繁に(一日に複数回)メインのコードベースに統合し、自動でビルド(構築)とテストを行うプロセスです。

  • 目的: バグやコードの競合を早期に発見し、開発の初期段階で修正することを可能にします。

2. 継続的デリバリー/デプロイメント(CD: Continuous Delivery/Deployment)

CIでテストが完了し、問題がないと判断されたソフトウェアを、自動的に本番環境にリリースできるように準備する(Delivery)、あるいは自動で本番環境にデプロイ(Deployment)するプロセスです。

  • 目的: リリースの手間を減らし、市場の要求に対して迅速に対応できるようにします。

3. インフラストラクチャ・アズ・コード(IaC: Infrastructure as Code)

サーバー、ネットワーク、データベースなどのITインフラを、手動操作ではなく、コード(設定ファイル)として定義し、バージョン管理する手法です。

  • 目的: インフラの構築を自動化し、環境間の差異(開発環境と本番環境の違い)による問題を解消し、再現性を確保します。

4. 監視とロギング(Monitoring & Logging)

アプリケーションが本番環境で稼働している間、パフォーマンス、エラー、ユーザーの行動などを継続的に監視・記録し、異常が発生した際に迅速に対応できる体制を構築します。

🔗 DevOpsを実現するためのツール群

DevOpsを実現するには、これらのプラクティスを自動化するための様々なツール群が連携して使用されます。

段階プラクティス代表的なツール
計画/コーディングGitによるバージョン管理GitHub, GitLab, Bitbucket
ビルド/テスト(CI)継続的インテグレーションJenkins, GitLab CI, GitHub Actions, CircleCI
デプロイ(CD)継続的デプロイメントKubernetes, Ansible, Terraform, Spinnaker
インフラ管理IaCTerraform, CloudFormation, Ansible
監視/フィードバック監視・分析Prometheus, Grafana, Datadog, Splunk