Your story on what is the advantage of Continuous Integration and Continuous Delivery~エンジニアの英語面接対策~

your-story-on-what-is-the-advantage-of-continuous-integration-and-continuous-delivery

どうも、ヤバWEBです。

さて、このブログではたまーに

エンジニアの英語面接対策

を自分用メモ程度に記事にしております。

このシリーズの記事はこちらをご覧ください。

=> 「エンジニア英語面接対策」の記事一覧

今日の想定質問はこちら

“Your story on what is the advantage of Continuous Integration and Continuous Delivery”

ではその回答を書いていきます。

あなたが考えるCIやCDのメリットを教えてください

今回の質問は直訳すると

「あなたが考えるCIやCDのメリットを教えてください」

といった感じになるかなと思います。

この質問は実際に

BLUE HARVESTという会社の面接で聞かれる質問とのことです。

まず、今回の質問で聞かれている

CIとCDについて簡単に説明しておきます。

CI(Continuous Integration)とは

CIは日本語で

継続的インテグレーション

と呼ばれます。

いまだとCI用の便利なツールがあり

などなどこの他にも色々あります。

最近だと、

GitHub Actions

が発表されたのも記憶に新しいですね。

これらのツールを使うことで
例えばGitHubで開発している場合

GitHubのリポジトリにソースコードの変更をpushする度に

それをトリガーにして

ソースコードの

  • ビルド
  • テスト

などを自動で実行してくれるようになります。

もしテストでエラーがあればすぐにエラーに気づけるようになります。

こういうのは手元でテストし忘れた場合などによく起こりやすいですね。

人間はミスをする生き物なので

小さいサイクルの中でも機械的に常時チェックしてくれる仕組みは大変ありがたいです。

CD(Continuous Delivery)とは

CDは日本語で

継続的デリバリ

と呼ばれます。

継続的デリバリーとは、DevOps ソフトウェア開発手法の 1 つで、
コード変更が発生すると、
自動的にビルド、テスト、および本番へのリリース準備が実行されるというものです。
継続的デリバリーは継続的インテグレーションを拡張したもので、
すべてのコード変更が、ビルド段階の後にテスト環境または本番環境、
あるいはその両方にデプロイされます。
継続的デリバリーを適切に実装することにより、
開発者は、標準化されたテストプロセスに合格し、
デプロイ準備の整ったビルドの成果物を常に手元に持つことになります。

ref: 継続的デリバリーとは?

このようにCDはCIの拡張で、

ビルドやテストだけでなく

本番環境やステージング環境へのリリース準備も実行されるものであるということがわかります。

実際に、リリースまで行うことで

単体テストだけでなくUIテストやロードテスト、統合テスト、APIテストなどなど

リリース後のテストまで検証することが可能になります。

CIと同じく、CDを用いることで

  • 問題の早期発見
  • リリースプロセスの自動化

などが可能になります。

A. “Your story on what is the advantage of Continuous Integration and Continuous Delivery”

というわけでこちらの質問に回答していきます。

I have used some CI Tool such as CircleCI, TravisCI.

There are two major advantages.
Firstly, we can discover and address bugs earlier.
We can automate build and test processing for source code by using CI tool such as CircleCI.
If there is a error while CI process, we can share the error message easily.

Secondly, we can automate the software release process so that the software delivery is more efficient and rapid.
We can also automate UI testing, load testing, integration testing, API reliability testing, etc.

以上ですw

今回は出来るだけシンプルに答えるようにしてみました。

今までは質問に対して出来るだけ長く答えるようにしてましたが、

実際の面接だと長々話すよりも会話のような感じで進んで行くと思うので

今後は要点だけしっかり自分の中で抑えておくという意味もこめて

シンプルに回答できるようにしていければなと思います。