DevOpsのススメ! AWSのマネージドサービスを活用します
近年のソフトウェア開発の特徴として以下のようなものがあげられます。
- 開発手法が多様化(ウォーターフォール式、アジャイル式 .etc)
- システムや製品の拡張、多機能化に伴い、並行開発や派生開発が増加
- 国内、海外でアウトソーシングによる分散型開発の増加
多くの企業では、開発規模が大きくなるにつれ、これらのような多種多様なソフトウェア開発が行われるにつれ、ソフトウェア資産(ソースコード)の管理、品質維持が困難になってきています。
具体的には次のような様々な問題が起こります。
- ソースコードの記述ミスや、品質管理チェックを怠ること
- テスト早期不実施によるバグやテスト工程のコスト増大
- コミットされた(変更が適用された)ソースコードのビルドが通らない
- ソフトウェア更新したのにも関わらず、品質が劣化
- 不具合の修正の管理が行われていない
このような問題発生をプロジェクトマネージャが目を光らせて、大きな問題にならないうちにつぶしていくことが重要です。しかし、これらの問題は、予め、品質を担保するための定義やルールの徹底で解決することができると考えられます。
継続的にシステムの状態を更新する
CI/CD(継続的インテグレーションと継続的デリバリー)という用語をご存知でしょうか?
CI(継続的インテグレーション)
バージョン管理サービス内にコミットされたソースコードのビルドとテストを自動的に実行する手法です。これにより、ソフトウェアのバグを早期に発見し、その発見に対処することができます。CIのおかげで、開発のスピードを上げることや、コードの品質を保証することが可能となります。
CD(継続的デリバリー)
継続的インテグレーション(CI)を拡張した手法で、ビルドやテストだけでなく、リリースプロセス全体を自動化することです。これは、“いつ”、“どこの環境に”、デプロイすればよいのかという開発プロセスを自動化することを意味しています。
AWSで実現するCI/CD運用環境
長々と書きましたが、CI/CDとはソフトウェアの開発を自動化しようとする考え方なのです。このようなCI/CDを実現するツールは数多くあります。
AWS(アマゾン ウェブ サービス株式会社)のCI/CDサービスを見ていきましょう。
図:CI/CDのフロー図
AWS CodeStar
AWS でソフトウェア開発のプロジェクトを作成、管理をするサービスのことです。プロジェクトの設定は数分で完了することができます。
また、プロジェクトをまとめて視覚化、操作、必要なすべてのツールで反復処理をすばやく実行することができます。このツールを使用するとソフトウェアを構成するサンプルのコードが自動的に生成されるため、初めてソフトウェア開発を試みる方を含む初心者の方にはこのツールを使用することをお勧めします。CodeStarを使用すること自体には料金は発生しません。
AWS CodeCommit
AWSが提供するGitベースのバージョン管理サービスのことです。他のバージョン管理サービスと違い、初期設定がわずか数分で完了すること、サーバの管理が不要であること、月額料金が他と比較して安いというメリットがあります。このツールを使うと、AWSにおける他の開発ツールとの連携が非常に容易になります。
AWS CodeBuild
バージョン管理サービス内のソースコードをビルドし、テストを自動的に実行するためのCIサービスです。オンプレミス上で使用するツールと違い、構築に必要なサーバのアップデートや管理も不要です。使用料金がビルドにかかった時間分だけであるため、コストの削減が期待されます。
AWS CodePipeline
ソースコードのビルドからテスト、ステージング、デプロイまでのワークフローを定義し、自動的にワークフローを実行してくれるCD(継続的デリバリー)サービスです。AWS CodeBuildではできないデプロイまでのサービスを自動化することができます。
AWS CodeDeploy
アプリケーションを構成しているソースコードをステージング環境のサーバ群に自動的に配置し、結合テストや負荷テストなどを行ってくれるサービスです。CodePipelineやCodebuildと連携することにより、コードのコミットからデプロイまですべてを自動化することもできます。このサービスを利用すること自体は無料で、使用料金はEC2インスタンスの起動時間のみとなります。
以上のようなAWSが提供するサービスによってCI/CDの運用環境を用意に手に入れることができます。弊社のお客様からもご導入いただいて、次のような声をいただいていますので、自社の運用について検討してみてはいかがでしょうか。
- 管理およびメンテナンス作業に費やしていた時間が95%短縮した
- デプロイに費やした期間が6週間から1週間に減少した
- 以前よりもはるかに早く新機能やアプリケーションを公開することができるようになった
作成日:2022年8月5日