レガシーシステムのエンジニアが技術を最新化したいと考えたとき、CNCFが提供するCloud Native Trail Mapにのっとって勉強してみることをおススメします。
Cloud Native Trail Mapは既存のシステムをクラウドネイティブ化するステップなのですが、レガシーシステムのエンジニアの技術修得の道しるべになるのではないかと思い、一つ一つのステップを紹介したいと思います。
先日、Containerization(コンテナ化)について紹介しましたが、今回はその次のステップとなるCI/CDについて紹介していきたいと思います。
CI/CDとありますが、CIとCDとで分けて説明したいと思います。
CIとは
CIとはContinuous Integrationの略で、日本語では継続的なインテグレーションと訳します。
Githubなどのリポジトリに対し、pushしたのち、自動的にコードチェック、ビルド、テストを自動的に実行することで、バグの早期発見、対処することによりソフトウェアの品質を高めていくことを目指すものです。
テストコードを書くことになるので、高頻度でテストを実施するというところもポイントとなります。
昔々であれば、手順書を書いて、手作業によるデプロイおよびテスト実行をしていたかもしれませんし、私も実際行っていたことがあります。
よく使っていたプロダクトとしてはTravis CIやCircle CIなどです。また、CDも含めてJenkinsもよく使っていました。
CDとは
ビルドやテストが終わったコードを商用の本番環境へリリースすることを指します。継続的にデリバリーすることということで、CD、Continuous Delivery を実現します。
高頻度でCIおよびCDとすることで、市場のニーズを取り込み、必要に応じて軌道修正ができることになります。
カナリアリリースなど、少しずつ市場へ流して、試す方法もあります。
ミドルウェアレベルでのコード化が実現できるようになったため、ここまで自動的に実現できるようになったのだと思います。
Trail Mapで紹介しているプロダクト
CNCFのTrail Mapで紹介しているプロダクトとしては、Argo CDを紹介しているようです。
技術の進化によって、継続的なインテグレーションおよびデリバリーが実現できるようになってきています。
お客様へは価値を提供できるように使いこなしていきましょう。