
システムのインテグレーションからデリバリーまでの自動化を支援
あまり耳慣れない方も多いかもしれませんが、システム開発や運用の現場において、ソフトウェアの変更を常にテストして自動で本番環境にリリース可能な状態にしておく「Continuous Integration/Continuous Delivery(CI/CD)」(継続的インテグレーション/継続的デリバリー)という手法があります。
某社様では、CI/CDを導入できていない開発部署向けに「標準のデプロイメントパイプライン」を構築しています。これにより、各開発部署では以下のメリットがあります。
- デプロイメントプロセスの自動化以外に、導入提案・成果報告を含めたサポートを受けることができます
- システムを新規開発する際に独自にパイプラインを開発することなく、簡単な設定ですぐに利用し始めることができます
- システムをリリースする為の仮想マシン(VM)の生成からサービスインまで全ての作業を宣言的且つ簡単に設定し利用することができます
出典:https://www.redhat.com/ja/topics/devops/what-is-ci-cd
当デプロイメントパイプラインはコスト削減のため、以下のオープンソースソフトウエア(OSS)の製品を採用しています。
Gitホスティングサーバー: GitLab
Pipelineツール: ConcourseCI
プログラムの静的解析及び品質基準の解析: SonarQube
構成管理ツール: Ansible/Ansible AWX
また、各種ツール間を疎結合に保つためのWebAPIを独自開発しています。
リリース作業にかかる累計時間は、システムの生存期間が長くなればなるほど膨大になります。すなわち、リリース作業を自動化した場合としない場合の年間コストの差は大きくなります。自動化を取り入れることにより、コストの削減効果に加えて、これまでリリース作業にかかっていた時間を他のリソースに充てることが可能となります。
またコロナ禍の昨今、「テレワークが進んだが商用リリースの為に出勤しなければならない。」という話をよく耳にしますが、そのようなケースにもリリースまでのプロセスが自動化されていれば、自宅からいくつかの簡単な操作で商用リリースを済ませることができます。
「本質的なものにこそ、よりコストをかけられる環境をつくる」
そんな当たり前のことを後押しできるシステムの実現に向けて、エヌ・エイ・シーのエンジニアが活躍しています。