
セミナー⑨:CI・CD及びCIのツール(2020年2月20日)
会社の慣例として、2週間ごとの木曜日の午後5時に、フジテクノロジーのメンバーたちはまたわくわくしながら、きちんと準備された、有益な情報共有会を待っていました。過ぎた2020年2月20日には、アプリチームのメンバーのPham Van Manhさんが「CI・CD及びCIのツール」を自分のセミナーのテーマとして、プレゼンテーションしました。このテーマは実に多くのメンバーからの関心を引き寄せました。ただし、このテーマに関する用語はだれでも正しく、十分に理解するわけではないでしょう。
プレゼンテーションの初めには、ManhさんがCI・CDを定義し、CI・CDの活用のメリットを説明しました。
CIはContinuous Integrationの略語で、継続的インテグレーションを示し、開発チームのメンバーが最低限1日に1回、ソフトウェア自動開発のために、システムに自分の作業結果を取り入れるようにする、自動化開発プロセスを意味します。一刻も早くバッグを見つけるために、作業結果を統合すると、開発中の商品がすぐ自動的に「ビルド」され、テストされます。この開発プロセスの活用によって、統合のタスクを減らし、より速くソフトウェアが開発できるようになります。
Continuous Integrationは自動的に開発商品をビルド・テストされるプロセスである一方、CD(Continuous Deliveryの略語)は継続的デリバリーを意味し、全部の作業結果が自動的にコードに変更され、ステージング環境に展開される、CIより高いレベルの開発プロセスです。継続的デリバリーによって、単体テストを含める様々なテスト方法の同時に、自動化テストを活用することができるようになります。このプロセスの自動化テストには、UIテスト、統合テスト、APIテストなどが含まれます。これはほぼ自動的なソフトウェア開発のプロセスです。
Manhさんは、CDがContinuous Deployment(訳:継続的デプロイメント)だとよく間違われていると強調しました。この開発プロセスはだいたい継続的デリバリーと似ていますが、相違点は本番環境で自動的に展開されるところです。継続的デプロイメントはいずれの会社のシステムに適応できるわけではありませんが、アプリやソフトウェアやサービスなどの商品をより速く、高品質で開発できるように、継続的デリバリーは絶対に適切です。
最後には、ManhさんがCIについて分析し、Travis CI、Circle CI、Jenkins、などの世界で普及しているCIツールの各種類の比較を明らかにしていました。セミナーで述べられた理論や実例によって、参加者がCI・CDについての概要から詳細までの知識を習得できました。参加者のみんながその理論や実例をめぐり、にぎやかに話し合っていました。
それから、セミナーでの最も特別なのはManhさんが自分でCIを利用し、開発しているデモの商品を紹介したことです。Manhさんの承認の上で、フジテクノロジーサイトの読者の皆さんに彼のデモ商品は以下で添付させていただきます。
https://github.com/manhpham90vn/MPVPN