🚀

CI/CD入門第1回 なぜ今DevOpsが重要なのか?〜CI/CDの全体像〜

に公開

はじめに

皆さん、こんにちは!オアシステクノロジーズの古本です。

今日から全6回にわたって、皆さんがアプリケーションアーキテクトとして活躍するための土台となる「DevOps基礎」についてライトニングトーク(LT)をしていきます。

我々の強みは「0→1でアプリケーションを構築できること」です。この強みをさらに伸ばすためには、アプリケーションを作るだけでなく、高速かつ安全にユーザーへ価値を届け続ける仕組みが不可欠です。

その鍵となるのが、今回お話しする DevOpsCI/CD です。


1. 昔ながらの開発、つらくないですか?

皆さんも一度は経験したことがあるかもしれません。

  • 機能開発が終わった後、手作業でファイルをサーバーにアップロードする。
  • 深夜にリリース作業をして、ミスがないかヒヤヒヤする。
  • 「自分のPCでは動いたのに、サーバーだと動かない!」という問題に悩まされる。
  • ちょっとした修正でも、リリースに半日かかってしまう。

これらは、開発(Dev)と運用(Ops)が分断されている現場でよく起こる「つらみ」です。
0→1のスピード感が求められる開発において、このような手作業によるボトルネックは致命的です。


2. DevOpsとは? 〜文化の話〜

そこで登場するのが DevOps という考え方です。

DevOpsとは

DevOpsとは、単なるツールや技術のことではありません。
開発チーム(Dev)と運用チーム(Ops)が協力し合い、ビジネス価値を迅速かつ確実にエンドユーザーに届け続けるための「文化」や「考え方」のことです。

手作業を自動化し、コミュニケーションを円滑にすることで、開発サイクル全体を高速化・安定化させることを目指します。


3. CI/CDとは? 〜DevOpsを実現する具体的なプラクティス〜

DevOpsという文化を実現するための具体的なプラクティスが CI/CD です。

  • CI (Continuous Integration / 継続的インテグレーション)
  • CD (Continuous Delivery / 継続的デリバリー or Continuous Deployment / 継続的デプロイ)

この2つを合わせて「CI/CDパイプライン」と呼びます。

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

目的:バグを早期に発見し、コードの品質を常に高く保つこと。

開発者が書いたコードを、git push などのタイミングで自動的にビルドし、テストを実行する仕組みです。

  • メリット
    • マージする前に問題がわかるので、安心して開発を進められる。
    • 「自分のPCでしか動かない」といった環境依存の問題が減る。
    • 常にコードが正常に動く状態を維持できる。

CD: 継続的デリバリー / デプロイ

目的:CIをパスしたコードを、迅速かつ安全に本番環境へリリースすること。

CIが無事に完了したら、その成果物を自動的にテスト環境や本番環境へデプロイする仕組みです。

  • 継続的デリバリー (Delivery)
    • 本番環境へのリリース準備までを自動化。
    • 最終的な本番反映は、人間の判断(ワンクリック)で行う。
  • 継続的デプロイ (Deployment)
    • 本番環境へのリリースまで完全に自動化

0→1開発では、まず「継続的デリバリー」を目指すのが現実的です。


4. CI/CDパイプラインの全体像

言葉だけだと分かりにくいので、フローチャートで見てみましょう。

手動デプロイの場合

多くの工程が手作業で、ミスが発生しやすく、時間もかかります。

CI/CDを導入した場合

開発者は git push するだけ。あとはパイプラインが自動で処理してくれるため、開発者は次のタスクに集中できます。


まとめと次回予告

今日のポイント

  • DevOps は、開発と運用が協力してビジネス価値を迅速に届けるための 文化
  • CI/CD は、DevOpsを実現するための 具体的な自動化の仕組み
  • CI/CDを導入することで、開発速度と品質を両立できる。

CI/CDパイプラインは、まさに現代の開発サイクルの心臓部です。

さて、このパイプラインを構築する上で、現在最も重要な技術の一つが コンテナ技術 です。
次回は、その代表格である 「Docker」 について、「なぜそれが必要なのか?」という視点から解説します。

お楽しみに!

Discussion