初めに、CI・CDを定義し、CI・CDの活用のメリットを説明しました。
CIはContinuous Integrationの略語で、継続的インテグレーションを示し、開発チームのメンバーが最低限1日に1回、ソフトウェア自動開発のために、システムに自分の作業結果を取り入れるようにする、自動化開発プロセスを意味します。
一刻も早くバッグを見つけるために、作業結果を統合すると、開発中の商品がすぐ自動的に「ビルド」され、テストされます。この開発プロセスの活用によって、統合のタスクを減らし、より速くソフトウェアが開発できるようになります。
Continuous Integrationは自動的に開発商品をビルド・テストされるプロセスである一方、CD(Continuous Deliveryの略語)は継続的デリバリーを意味し、全部の作業結果が自動的にコードに変更され、ステージング環境に展開される、CIより高いレベルの開発プロセスです。
継続的デリバリーによって、単体テストを含める様々なテスト方法の同時に、自動化テストを活用することができるようになります。
このプロセスの自動化テストには、UIテスト、統合テスト、APIテストなどが含まれます。
これはほぼ自動的なソフトウェア開発のプロセスです。
CDがContinuous Deployment(訳:継続的デプロイメント)だとよく間違われていると強調しました。
この開発プロセスはだいたい継続的デリバリーと似ていますが、相違点は本番環境で自動的に展開されるところです。
継続的デプロイメントはいずれの会社のシステムに適応できるわけではありませんが、アプリやソフトウェアやサービスなどの商品をより速く、高品質で開発できるように、継続的デリバリーは絶対に適切です。
最後にCIについて分析し、Travis CI、Circle CI、Jenkinsなど、世界で普及しているCIツールの各種類の比較を明らかにしていました。
セミナーで述べられた理論や実例によって、参加者がCI・CDについての概要から詳細までの知識を習得できました。
参加者のみんながその理論や実例をめぐり、にぎやかに話し合っていました。
セミナーでの最も特徴的だったのは自分自身でCIを利用し、開発したデモを紹介したことでした。