はじめてのDevOps

 これまでのITシステムは、業務効率化やコストを削減するための「Tool」として利用されてきました。しかし、近年では「Tool」としてだけにとどまらず、ITを利用したサービスを顧客に提供することで他社との競争優位性を得るなど、「自社ビジネスに直結する」、「直背的な価値を生みだす」面でも活用されています。

 そこで重要となるのが、提供しているITサービスが、顧客からの要望にどの程度応えられるのか、という点です。迅速な対応のためには、今までのような半年に1回といった定期的なバージョンアップではなく、顧客の声を聴き、「適時」(頻繁に)ソフトウェアを改修することが求められます。
 インフラ環境としてパブリッククラウドを利用した場合、基盤の柔軟性、俊敏性は向上しますが、それだけでは肝心のソフトウェア開発・改修のスピードには直結しません。では、どうすればスピードを加速させることが出来るのか。その答えとして、DevOps、CI/CDについて分かり易く解説いたします。








1. DevOps とは

 DevOps の概念は下記になります。

「開発チーム(Development)と運用チーム(Operations)がお互いに協調し合うことで、開発・運用するソフトウェアによってビジネスの価値を高め、それをもって顧客に価値を届ける」

 もともと開発チーム運用チームはそれぞれに役割があり、一般的には両者は対立するケースが多く、皆様も身近によく見る光景ではないでしょうか。例に挙げて説明します。

    1. 開発チームは、運用チームが柔軟にシステムを受け入れてくれないため、改修スピードが上がらない。
    2. 運用チームは、開発チームがシステムへの影響を考えずに改修した結果、障害が発生した。

 開発チームとしては役割が「システムに新しい機能を追加する」に対し、運用チームとしては役割が「システムの安定稼働」であるため、両者は役割の相違から、しばしば対立しがちです。

 しかし本来は、どちらも「顧客に価値を届ける」という目的のもと、業務を実施しているはずです。(開発チームが機能を追加するのは顧客の要望に応えた結果であり、運用チームが安定稼働させるのも顧客に安心して利用してもらうため)

 そのため、「本来の目的は共通なのだから一緒に頑張ろうね」、というのがDevOpsの本質と言っていいでしょう。

 DevOps の言葉が生まれる契機となったプレゼンテーションタイトルが「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr」(DevとOPSが協力して、1日10回以上のデプロイ)となります。

 さて、文字通り、1日に10回以上のデプロイを本番環境で実施するとなった場合、「ステージング機への反映、確認テスト、本番環境へデプロイ、環境切り替え」などを手動で実施していた場合、全く間に合いません。

 これを実現するために、「プログラムの反映から切り替え」まで自動化しよう!となるわけです。




2. DevOps の 4 つの軸

 「プログラムの変更から環境切り替え」までの自動化を一般的にCI/CD(継続的インテグレーション/継続的デリバリー)と呼びます。

 この自動化を行うためには、やはりそれなりのツールが必要になってきます。例えば、Codeを格納、バージョン管理するためのGitHub、CodeをBuildしたりIntegration 等するためのJenkinsなどが有名です。

 ここで重要なのは、「自動化のためのツールを導入してもそれだけでDevOpsが出来るようになり、ソフトウェア開発・改修のスピードが上がる訳ではない」ということです。

 なぜならツールを導入しただけでは、「会社の文化がDevOpsとかけ離れている」、「担当者のスキル不足により思うようにスピードが上がらない」などの問題が発生するためです。

 DevOps の言葉自体に厳密な定義はありませんが、今回、もう少しわかりやすくするために4つの軸で分類してご案内いたします。




2-1. DevOps の 4 つの軸

i. Culture(文化)

  • Processes、People、Technologiesが互いに影響する環境

ii. Process(プロセス)

  • ビジネスと従業員のニーズに対応する為の構造

iii. People(人)

  • 知識、スキル、プロセス能力を提供

iv. Technology(技術)

  • コミュニケーションと業務効率の為に活用されるツールと技術

「Technology(技術)」として分類したツール以外に、「Culture(文化)」、「Process(プロセス)」、「People(人)」の3つの変革も同時にできなければ、想定した成果が出ないという事になりかねません。

2-2. 4つの軸での変革

下記は、4つの軸をそれぞれ同時に変革した場合と、しなかった場合の比較となります。

DevOps 4 つの軸での変革

図 1. 4 つの軸での変革 

4つすべてを変革した場合、「変革した変化」が発生するのに対し、どれか1つでも変革が抜けた場合、何かしらの停滞であったり、障壁があることが発生することがわかると思います。





3. CI/CD を AWS で実現する

しかしながら、ツールを導入せずにDevOpsを実施するというのはあり得ません。

変化が目に見えて分かりやすいため、まずはツールの導入から検討したいという方も、非常に多いことが予想されます。

では、ツールとして何を使えば良いのでしょうか。
ひとつの答えとして、AWSからDevOpsのためのツールが提供されています。既にAWSをご利用中の方であれば、今日からでも、以下にご紹介するツールを利用することが可能です。

● AWS CodeCommit

  • ソースコードリポジトリ機能を提供するサービス。ソースコードバージョン管理ツールであるGitをサポートする。

● AWS CodeBuild

  • ソースコードのインテグレーションビルドの自動化をサポートするサービス。

● AWS CodeDeploy

  • アプリケーションのデプロイの自動化をサポートするサービス。

● AWS Code PipeLine

  • 上記3つのツールを結合しパイプライン定義、実行管理をサポートするサービス。

 

DevOpsを実現するためのAWSツール(サードパーティ含む、全体像

図 2. DevOpsを実現するためのAWSツール(サードパーティ含む、全体像)

 AWSを利用した場合、上記ツールについても月額課金のため、とりあえず触ってみることが可能です。ご興味をお持ちの方はぜひ、ご自身でも利用されてみてください。

 各ツールについて更に詳しく知りたいという方は、利用例を記載した以下の記事をご参照ください。





4. 自動でCI/CD環境を作成するIgnite™とは

 AWSサービスを利用したCI/CD環境の構築に関して、自分たちで設定を行うことが、難しい、面倒であると思われる方も多いでしょう。

 CI/CD環境の構築でのポイントは、プログラムを更新した際に、どのようなフローで本番機へリリースするかを規定する、という部分です。これを「パイプラインを設定する」と定義したとき、この設定に悩む方が多いのも事実です。

 

 そのようにお悩みの方へ向けて、AWSの機能を利用したCI/CD環境を自動的に構築する仕組みをご紹介します。
 パイプライン、およびサンプルアプリケーションを自動で構築、プロビジョニングする環境が、以下のサイト「Ignite™」内で無償で提供されています。

 

ignite

URL : https://www.ignite.ci/
 

 上記サイト内にて、アカウント登録するだけで、すぐにAWS環境でCI/CDを試すことが可能です。

「CI/CDに興味はあるが、どこから始めていいのか分からない」という方は、ぜひIgnite™の利用を検討してみてはいかがでしょう。数クリックでCI/CDを体感いただけます。

 Ignite™について、より詳細に知りたい方は、以下の記事をご参照ください。

 

 Ignite™を利用することで、はじめての方でも数クリックで簡単に、CI/CD環境を導入することが出来ます。
 しかしながら、CI/CD環境を導入しただけで、DevOpsが目標とする「顧客へビジネス価値を届けて高める」部分まで到達するわけではありません。

 前述したように、ツール以外でも「Culture(文化)」、「Process(プロセス)」、「People(人)」の領域も並行して進め始める必要があります。この変革には非常に時間と手間がかかります。






5. CTC による DevOps 支援

 伊藤忠テクノソリューションズ株式会社 (CTC) ではDevOpsを促進するための前出のIgnite™ とあわせて、これらの変革をお手伝いするコンサルティングサービスを提供しています。

CTCによるDevOps支援

図 3. CTCによるDevOps支援

 このコンサルティングサービスでは、テクノロジー領域だけではなく、お客様と一緒にプロジェクトを進めることで、DevOpsに対応する「Culture(文化)」、「Process(プロセス)」、「People(人)」の変革に対しても、お手伝いすることが可能です。DevOpsをはじめたいけれど・・・とお悩みの方は、ぜひ以下よりお問合せください。



お問合せボタン
-

著者プロフィール

著者アイコン
園田一史
伊藤忠テクノソリューションズ株式会社在籍中。
クラウドアーキテクト。
国産IaaS型クラウドサービスの企画導入設計を歴任。
その経験を活かし、現在はAWSの導入・運用支援サービス「CUVIC on AWS(キュービック オン エーダブリューエス)」の運営を担当。