DevOps のチュートリアル - 概要
DevOps チュートリアルでソフトウェア デリバリープロセスを向上させる
DevOps にはさまざまな段階、概念、およびコンポーネントがあります。この DevOps チュートリアルは、DevOps の概要と、この DevOps がソフトウェア デリバリープロセスの向上にどのように役立つかを学習する際に使用することをおすすめします。
DevOps を理解する
この DevOps チュートリアルを開始するために、DevOps の概要と、DevOps がソフトウェア開発プロセス全体にどのように関係しているかを理解するうえで役立つ基本的な定義をいくつか紹介します。
-
DevOps とは、開発と運用の間の連携を促進するソフトウェア開発プラクティスで、ソフトウェア デリバリーにかかる時間を短縮し、信頼性を高めます。一般に "カルチャ" と呼ばれますが、DevOps は、継続的に価値を提供するために、人、プロセス、およびテクノロジーを結び付けます。
-
ソフトウェア開発プロセスでは、手作業が大半になることがあるため、かなり多くのコード エラーが発生します。開発チームと運用チームが上手く連携できないことも多く、ソフトウェア配信が遅くなり、ビジネス関係者を失望させる可能性もあります。DevOps により、ソフトウェアの開発、デプロイ、およびメンテナンスに関連するタスク全体の効率が上がります。
開発と運用を結び付けることで、可視性が向上し、要件の正確性が増すほか、コミュニケーションの改善と市場投入までの時間短縮が実現します。
-
DevOps により、開発と運用のギャップが解消され、ソフトウェアの開発およびデプロイ全体の効率性が大幅に向上します。DevOps では自動化に重点を置いており、全体的なエラー数を減らすのに役立っています。
-
DevOps は、プロジェクトのあらゆる面において完全エンドツーエンドの責任を負う、という理念に基づいています。従来のソフトウェア開発方法とは異なり、DevOps により、開発チームと運用チームのギャップ、つまり、よく欠落していて、ソフトウェア配信プロセスを大幅に遅らせる可能性があるものがなくなります。
DevOps では、ソフトウェアを開発およびリリースするための包括的なフレームワークを提供することで、開発チームと運用チームをつなげ、ソフトウェア デリバリーにおける課題と非効率性を生じるギャップを解消します。
-
DevOps とアジリティーは両方ともソフトウェア開発プラクティスですが、重視している点が少し異なります。DevOps では、ソフトウェアの開発、デプロイ、およびメンテナンスに関与するすべての関係者の効率を重視しています。アジャイルは無駄のない製造プロセスで、ソフトウェア開発運用フレームワークを提供する際に役立ちます。アジャイルは開発チームに固有であることが多く、一方、DevOps の対象は、ソフトウェアの運用およびメンテナンスに関与するすべての関係者に及びます。DevOps とアジリティーを共に使用すると、非常に効率的なソフトウェア開発環境を構築できます。
これらのタスクで DevOps の学習を深める
この DevOps チュートリアルの各セクションには、DevOps プラクティスの構築手順を実行する際に役立つタスクがいくつか含まれています。少し時間を取って、次のチェック項目に回答してください。
- ソフトウェアを開発およびデプロイするとき、どのような課題がありましたか?
- ソフトウェアの開発およびデプロイで、効率性の向上を期待しているのはどの領域ですか?
DevOps プラクティスの基礎
この DevOps ハンドブックでは、次に、DevOps プラクティスで使用される主な概念について学習します。このセクションは、主要コンポーネントを説明および明確化するのに役立ちます。
-
アジャイル開発はソフトウェア チームでよく使用されるデリバリー アプローチで、無駄のない製造に関連します。開発は短い増分スプリントで完了します。DevOps とは異なりますが、この 2 つのアプローチは相互に排他的ではありません。アジャイル プラクティスとツールは開発チームの効率性を高め、DevOps カルチャ全体に貢献しています。
-
ソフトウェア開発をチームで正確かつ効率よく進めるには、バージョン コントロールが非常に重要です。 Git などのバージョン コントロール システムではファイルのスナップショットが取得されるため、ユーザーはいつでも任意のバージョンに完全に戻ることができます。バージョン コントロールシステムにより、現在行っている変更で競合が絶対に発生しないという安心感を得ることができます。
-
継続的インテグレーションは、ビルドを自動化してテストするプロセスで、コードが完了してシステムにコミットされるときに実行されます。コミットされたコードは、自動化プロセスに従って検証されます。そして、テストと検証が完了したコードのみがメイン ソース コード (master ブランチ、メイン、またはトランクとよく呼ばれます) にコミットされます。継続的インテグレーションによりこのプロセスが自動化されるため、効率が大幅にアップします。任意のコードがマスター ブランチにマージされる前に、早い段階ですべてのバグが特定されます。
-
継続的デリバリーは、DevOps で実施される基本的なプラクティスであり、高速で信頼できるソフトウェア デリバリーを実現します。プロセスは DevOps の包括的な概念に似ていますが、継続的デリバリーはフレームワークであり、このフレームワーク内で、完了したコードのすべてのコンポーネントがテスト、検証、およびコミットされます。これにより、ソフトウェアをいつでも提供することができます。継続的インテグレーション プロセスは、継続的デリバリーのコンポーネントです。
-
オンプレミスでもクラウドでも、リソースのプロビジョニングと構成は環境の運用には重要です。プロセスを自動化し、インフラストラクチャの宣言型定義を提供するツール (テキストベースの定義ファイルなど) を使用することで、信頼できる繰り返し可能な方法で、チームとしてリソースをデプロイし、構成できます。テキストベースの定義ファイルは、バージョン管理が可能なコードとして管理できるため、複雑な環境を容易にロールバック、再作成、およびティアダウンすることができます。Terraform、Ansible などのテクノロジーは、コードとしてインフラストラクチャを実装するための一般的なソリューションです。
-
DevOps の対象範囲は開発だけではなく、デリバリーされたソフトウェア (ソフトウェアのパフォーマンスを含む) に対する責任も対象となります。DevOps のプロセス全体からフィードバック ループが作成されるため、最終的に提供されたデータ ポイントは、今後のプロジェクトの改善と、ソフトウェア デプロイに関する決定の検証の両方に役立ちます。監視とログ記録は、検証による学びをサポートする重要なコンポーネントで、これによりソフトウェア開発およびデリバリー プロセスの効率性の向上に一貫して取り組むための、全体的なイニシャティブがサポートされます。
-
ライフサイクル全体を通して、次のサイクルでの意思決定に役立つフィードバックと利用統計情報が収集されます。この情報は検証による学びと呼ばれます。検証による学びは、分析情報を新しい方法に反映させるうえで役立ち、これにより 1 サイクルの時間が短縮されます。収集されたデータは、自動化を進める方法、プロセスを改善する方法、およびデプロイをより迅速かつ効率的に準備する方法を見つけるために使用されます。
これらのタスクで DevOps の学習を深める
DevOps プラクティスの重要な概念については説明しました。ここで少し時間を取って、次のチェック項目に回答してください:
- 開発プロセスのどの部分が手動で、自動化によってメリットを得られますか?
- チームのビルド プロセスに継続的インテグレーションを導入する機会はありますか?
- 現在、チームではどのようにインフラストラクチャを管理していますか? 現在のプロセスは繰り返し可能で、信頼できますか? あるいは、コードとしてのインフラストラクチャを使用して改善できますか?
- どの利用統計情報データの情報が、作業に役立つと思いますか?
- 他にどのデータ ポイントが、検証による学びをサポートすると思いますか?
DevOps カルチャの構築
この DevOps チュートリアルでは、次に、DevOps カルチャを構築する方法について説明します。ビジネスに DevOps を導入する準備を行っていると、ソフトウェア配信へのアプローチが今と違うことに気が付くことは少なくありません。
新しいカルチャの構築は一朝一夕でできるものではありません。また、新しいツール セットを購入するように簡単でもありません。チームが DevOps を覚えて、実際に使いこなせるようにさせるには、そのチームの今の構造、ワークフロー、そして習慣を変えなければならない可能性があります。
これらのタスクで DevOps の学習を深める
この DevOps チュートリアルの各セクションには、DevOps プラクティスの構築手順を実行する際に役立つタスクがいくつか含まれています。少し時間を取って、次のチェック項目に回答してください。
- ソフトウェアを開発およびデプロイするとき、どのような課題がありましたか?
- ソフトウェアの開発およびデプロイで、効率性の向上を期待しているのはどの領域ですか?
その他の DevOps チュートリアル
Azure DevOps を使用して作業を開始する
一連の最新開発サービスを使用して、ソフトウェアのデリバリーをより迅速かつ確実に行います。よりスマートに計画を立て、より効率的に共同作業を行い、より迅速に出荷しましょう。DevOps の機能をすべて使用することも、必要に応じてご自身で選択することもできます。