DevOpsはここから始めよう

2022年10月19日(水)
シャロン・ゴーディン(Sharon Gaudin)佐々木 直晴 (翻訳者)
これからDevOpsを始めるチームのための入門編。DevOpsのライフサイクル、セキュリティのシフトレフト、CI/CDなど、今から最新のDevOpsをキャッチアップするために必要なことを解説します。

はじめに

DevOpsはかなり浸透してきましたが、DevOpsを始めるチームやエンジニアのために現場で役立つ連載を開始します。本連載は、これからDevOpsを始めるチームのための入門編となります。第1回の今回は、DevOpsのライフサイクル、セキュリティのシフトレフト、CI/CDなど、これから最新のDevOpsをキャッチアップするために必要なことを解説します。

DevOpsを始めるには、理解すべきテクノロジーやプロセス、フェーズがあり、新しいマインドセットにも慣れていく必要があります。

DevOpsプロフェッショナルの需要は高く、給与は上昇を続けています。そのためDevOpsのスキルや経験は今後のキャリアにも有利です。DevOpsを目指すエンジニアも多く、何から学べば良いか模索している人も多いでしょう。

DevOpsを学ぶためのリストには多くの項目があります。まずはDevOpsとは何か。DevOpsのライフサイクルにはどのような段階があるか、独自のコラボレーションカルチャーなど、DevOpsの理解に必要なことを順に解説していきます。

DevOpsの本質、メリット、影響力は?

これまでのソフトウェア開発は、ツールやワークフローを組み合わせて使っていたため複雑で難解でした。またプロジェクトやチームは常にサイロ化しており、作業調整やベストプラクティスの共有が難しい環境でした。プロセスは非効率で本番環境に反映するまでの間に交通渋滞が発生し、時間や予算を浪費することになるといった課題が当たり前でした。

DevOpsはプロセス全体の効率性を維持しながら、開発とデプロイを簡素化するための方法と考えてください。DevOpsを進めていくと、サイロ化されていたチーム、ツール、ワークフローがソフトウェア開発エコシステムに統合されます。このエコシステムでチームはより効率的かつセキュリティ面で安全になり、協力して計画、開発、リリースできるようになります。

ほかにもDevOpsは自動化、セキュリティのシフトレフト、実践を繰り返し行えるだけではなく、測定できるようにすることにも重点を置いていることが特徴です。これにより開発サイクルを短縮し、新機能の設計から本番環境への運用開始までの時間も短縮できます。

こうした効率性とチームワークは、より早くソフトウェアデプロイを行えるだけではなく、会社全体のスピードアップにも寄与します。ビジネスを迅速に方向転換したり、新しく獲得した重要な顧客のニーズに応えたり、市場の変化に迅速に対応したり、競争力を高めるための調整を素早く実行できるようになるのです。

将来のキャリアに必要なのは
コミュニケーションとコラボレーションのスキル

チームの仲間がアイデアを共有し、コラボレーションして互いに助け合うこと。これはDevOpsが推奨していることです。こうした文化はただ「提案」するだけではなく、数回の会議の場で実践するだけで足りるものでもありません。コラボレーションを続けることはDevOpsの核となる原則です。

DevOpsを学ぼうとするとき「プログラミング言語、セキュリティ、CI/CDにフォーカスすれば良い」と考えるのはやや安直です。もちろんこれらのスキルやテクノロジーは重要ですが、DevOpsで重要なことは「協力して新しいものを生み出し、問題を解決すること」です。そのためDevOpsを極めていくと、セキュリティやマーケティング、経営幹部など他部門と協力し、企業全体で同じ方向へと進むことにも注力するようになります。

GitLabが実施した「2021 Global DevSecOps Survey」では、回答者の多くが将来のキャリアの鍵となるものとしてコミュニケーションとコラボレーションのスキルだと答えています。

DevOpsのライフサイクル

DevOpsには明確な流れが定められており、プロセスは「計画」「開発」「展開(デプロイ)」「監視」「フィードバック」に至るまでずっと続きます。開発者視点で特に重要になるのがビルド、テスト、デプロイの3つのステージ(フェーズ)です。

  • 計画(プラン):コード記述前に発生するすべてに焦点を当てる
  • 作成(コードとデプロイ):設計と開発に該当。アプリケーションと依存関係をパッケージ化してコンテナを管理し、アーティファクトを構築することで一貫したソフトウェアのサプライチェーンを維持する
  • 検証(テスト):コードの品質をチェックする
  • リリースとデプロイ:コードの更新を本番環境に移行すること。構成はアプリケーション環境の作成、管理、保守に重点を置く
  • 運用(オペレート):アプリケーションとその環境を運用・保護する
  • 監視(モニター):ソフトウェアとネットワークの状態を確認する

ソフトウェア開発ライフサイクル全体を通してアプリケーションの実行をエンドツーエンドで管理し、権限とプロセスを制御します。

セキュリティを「シフトレフト」する意味

先のDevOpsライフサイクルに「セキュリティ」のステージがなかったことに気づいたでしょうか。セキュリティは全てのステージに織り込まれるものなので、単一のステージにはなりえません。開発でシフトレフトとは、従来のようにビルドの最後までソフトウェアにセキュリティを組み込むのを待たないことを意味します。

計画の初期段階からセキュリティを検討し、最後まで重点的に取り組み続けることで問題を回避、または発見して対処する機会が増えます。シフトレフトは開発中のコードが意図した通りに機能し、脆弱性やコンプライアンスの問題が検出され、修正できるようになるのです。

CI/CDを理解しよう

CI/CDとは「継続的インテグレーション/継続的デリバリー」を意味します。継続的な開発の方法論とプラクティスを組み合わせることで、開発ライフサイクルの早い段階で脆弱性とエラーを検出し、本番環境にデプロイされる全てのコードが従うべき標準に確実に準拠するようにします。またCI/CDにより、ビルド、テスト、デプロイを自動化して開発チームと運用チームおよびプロジェクトを結びつけます。

そのため、CI/CDはコードの変更を頻繁かつ確実に実施できるようになります。組織が1日数回など頻繁にソフトウェアを自動配信できるため、DevOpsプラットフォームでは重要になる部分です。これは開発チームだけではなく企業のビジネスにとっても重要で、組織が顧客のニーズにより迅速に対応できるようになります。

著者
シャロン・ゴーディン(Sharon Gaudin)
GitLab Senior Content Marketing Manager
「Computerworld」「Network World」「InformationWeek」などのテクノロジー系メディアの記者として、アプリケーション開発、セキュリティ、AI、ロボット、量子コンピュータなどについて記事を執筆。その後、ウスター・ポリテクニック・インスティチュート(WPI)のコミュニケーション学部でリサーチ・ライターを務め、現在に至る。
著者
佐々木 直晴 (翻訳者)
GitLab合同会社 シニアソリューションアーキテクト
国内のSIerで金融系・産業系等の業界のプロジェクトに対して方式設計や標準化、共通化、テスト戦略策定やCI/CD環境構築などを主に担当。また顧客へのアジャイル開発の導入や、自社社員向けのトレーニングコンテンツの開発などに従事。2021年より、シニアソリューションアーキテクトとしてGitLab に参画し、顧客のDevOps導入時におけるアーキテクチャ設計や新プロセスの策定などを行う。IT、アジャイル開発、ガジェット、旅、子育て、等の幅広いトピックを扱うPodcast「jamming.fm」メインパーソナリティ。

連載バックナンバー

システム開発技術解説
第10回

ソフトウェア開発の生成AI導入による生産性向上を阻む「3つ」の課題

2024/10/3
今回は、2024年にGitLabが発表した「グローバルDevSecOps調査レポート」をもとに、ソフトウェア開発の生成AI導入による生産性向上を阻む課題点を考えていきます。
システム開発技術解説
第9回

【事例】DevOps環境で使うツールを統一することで生産性向上や高速化を実現

2024/2/5
今回も、実例を通じてアジャイル開発やCI/CDなど、モダンな開発環境と運用をどのように実現していくのかを紹介していきます。
システム開発技術解説
第8回

【事例】すべての機能を利用可能なDevSecOpsプラットフォームで生産性向上

2023/10/24
今回も、実例を通じてアジャイル開発やCI/CDなど、モダンな開発環境と運用をどのように実現していくのかを紹介していきます。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています