開発環境を取り巻く現状
昨今、めまぐるしく変化するビジネス要求に対応するため、リリースサイクルの高速化へのニーズが高まっています。そのニーズに答えるべく、継続的インテグレーション(CI:Continuous Integration注1)や継続的デリバリー(CD:Continuous Delivery注2)は、さまざまなツールやサービスの登場と共に、開発に欠かせないものとなりました。実際に、「Jenkins参考1を使って○○を自動化した」という事例はよく耳にするようになり、特にOSS開発においては、TravisCI参考2、CircleCI参考3といったSaaSの利用も一般化するなど、ツールの進歩は顕著です。しかし、ツールやサービスが普及する一方で、CI/CDをうまく導入できないという事例も増えています。
- CI/CDの導入に向けて、まず何から始めれば良いのかが分からない
- ツールはたくさん存在するが、何をどう組み合わせて使えばよいのかが分からない
- CI/CDを導入したものの、担当者が変わってメンテナンスができなくなり、結局使われなくなってしまった
このような状況を打破する為には、CI/CDのプラクティスを活用し、効率的な開発環境とプロセスを作り込める人材が必要です。このような人材を"デリバリーアーキテクト"と呼んでいます。
デリバリーアーキテクトに求められるスキル
CI/CDをうまく導入する為には、CI/CDに関連するツール(CIツール、ビルドツール、テストツール、デプロイツール等)の幅広い知識だけではなく、プロジェクトの特性に応じてビルドからリリースまでのプロセスを適切に作りこめる人材が必要となります。では、CI/CDをうまく導入する為には、どのような分野の知識が必要でしょうか?大きく分類して、以下のような分野のスキルが必要であると考えています。
- 1.ビルド・リリース自動化
- 2.基盤構築自動化
- 3.仮想化・クラウドによる多面利用
- 4.APテスト自動化
図:デリバリー高速化の取り組みの全体像参考4~9
これらの分野において、リリースサイクル短縮を阻害する要因をCI/CDのプラクティスにより徹底的に自動化することで、リリースサイクルの高速化を実現することができます。
まとめ
今回は、リリースサイクルの高速化を実現するデリバリーアーキテクトというロールモデルについて紹介しました。今後、早期のリリースへのビジネスニーズが高まるにつれて、リリースサイクルの高速化を支える環境、プロセスへのニーズも高まる事が予想されます。ますます、デリバリーアーキテクトはシステムインテグレーションのプロジェクトで重要な位置付けになってくることでしょう。
注釈
- 注1継続的インテグレーション
1日に何度もビルドを実行し、ソフトウエアをインテグレーションしたときに発生するさまざまな問題を早期に検出し、フィードバックサイクルを短くすることでソフトウエア開発の品質と生産性を向上させる仕組み。XP(エクストリーム・プログラミング)のプラクティスの1つ。
- 注2継続的デリバリー
ビジネス要求の変化に応じる為、サービスを継続的に改善・リリースするプラクティス。継続的なリリース≒リリース回数の増加により、運用の煩雑化、デグレード、リリース稼働・リリース誤り等の増加といった問題が発生する為、ビルド・リリース、テストを自動化するなどして、運用の安定化を図る。