DevOpsを初心者に紹介するための有効な定義は何でしょうか?


16

多くのSCM関連のプレゼンテーションを作成/作成しましたが、現在はDevOpsの後継者に「アップグレード」しようとしています。

私がいつもプレゼンテーションでやろうとしていることは、私が伝えたいメッセージを含む紹介スライドを作成することです(そして、残りのプレゼンテーションで詳しく説明します)。そうするとき、私は自分の質問に答えようとします。「1〜3のフレーズは、10〜20秒(だけ!)になったら、それを使って新しい人に説明しますか?* 「。

DevOpsが実際に何を意味するのか、そしてそれが何についてなのかを知っていると思いました。しかし、DevOpsの奇妙な使用法/コンテキストを見てきました(DevOps.SEでも...)。DevOpsが何であると思うのか、完全に間違っているのではないかと思う。

それでは、DevOpsの定義として一般的に同意されているのは何ですか?


コメントの履歴はチャット移動され、質問をどのように改善できるかを記録します。
テンシバイ

1
私が多くの人々と話すことから学んだ主なことは、合意された定義がないということです。
モニカチェリオのボイコットSE

merci @XiongChiamiov ...他の定義の1つに気づいているように聞こえます...余分な答えとして投稿してみませんか?
Pierre.Vriens

回答:


11

簡単に言えばDevOps

ウィキペディアから:

DevOpsチーム(クリッピングされた化合物「のソフトウェアDEVの elopment」と「情報技術OPの eration Sは」)の両方のコラボレーションとコミュニケーション重視の慣行のセットを参照するために用語を使用しているソフトウェア開発者および情報技術を(IT)専門家自動化しながら、ソフトウェア配信とインフラストラクチャの変更のプロセス。

ソフトウェアの構築テスト、およびリリースを迅速、頻繁に、より確実に行うことができる文化と環境を確立することを目的としています。

概要から:

ここに画像の説明を入力してください

開発 (ソフトウェアエンジニアリング)、運用品質保証 (QA)の交差点としてDevOpsを示すベン図

DevOps用の単一の「ツール」ではなく、DevOpsツールチェーンとも呼ばれる一連のツールがあります。

ここに画像の説明を入力してください

DevOpsツールチェーンの段階を示す図

DevOpsのイラスト

以下は、DevOps.SEに関するいくつかの質問からの引用です。これらはすべて、上記のDevOpsの説明の一部に何らかの形で当てはまるようです。

DevOpsは役割ではありません

以下は、DevOps.SEに関する質問のいくつかからの引用です。これらはすべて、DevOpsが役割ではないことを示しているようです。


10

私は現在約5年間、さまざまなクライアントとコンサルタントとしてDevOpsを実践し、アドバイスを行っています。現在の職務に就く前は、ソフトウェア開発、Web運用、およびシステム管理の役割を担っていました。私の個人的な経験では、DevOpsには多くのフレーバーがあります。

組織パターン

DevOpsアンチパターン:

  • NoOpsNoDevs-厳密な意味でのDevOpsではありませんが、これらのチームは開発と運用を分けることなくソフトウェアを構築および運用します。これらのチームの課題は成熟度にかかっており、開発チームはソフトウェア開発のエキスパートであるかもしれませんが、初心者のオペレーターやその逆の場合もあります。

  • DevOpsブリッジ -これは、1つ以上のチームが開発チームから作業を引き受け、それを「実稼働化」して運用可能にする責任を与えられる場所です。これまでの課題は、開発→DevOpsとDevOps→運用という2つのハンドオフがあります。

  • DevOpsチーム -これは、おそらく、チームがDevOps対応オペレーティングモデルをサポートするツールを構築する責任がある場合に機能しますが、おそらく「ツールチーム」または「プラットフォームチーム」と呼ばれるべきです。

DevOpsパターン:

  • 組み込みDevOps-より一般的にプラットフォームエンジニアリングと呼ばれ、チーム内に責任はあるが、ソリューションのプロビジョニングと展開のための自動化、ツール、インフラストラクチャの提供を担当する人がいます。 、実際にはDevOpsを代表するのは後者です。

  • 制度化されたDevOps-プロジェクトチームが共同で所有権と正のフィードバックループを構築するソフトウェアパッケージの開発と運用の両方を担当します。

慣行

DevOpsの実際のプラクティスは、他のいくつかのプラクティスの上に構築されています:

上記の各プラクティスは他のプラクティスに基づいて構築されているため、プラクティスに従わないこともありますが、重要なフィードバックサイクルが欠落していることを意味します。他のプラクティスに従うこととDevOpsを行うことの主な差別化要因は、実稼働環境でのソフトウェア運用です

DevOpsプラクティス

3つの方法

ではフェニックスプロジェクトジーン・キムと彼の共著者説明DevOpsチームの3つの方法

システム思考

システム思考

最初の方法では、特定のサイロの作業や部門のパフォーマンスとは対照的に、システム全体のパフォーマンスを重視します。これは、部門(開発やIT運用など)の規模の大きさや個人の貢献者(たとえば、開発者、システム管理者)。

私の経験では、開発者が運用上の懸念を考慮し始め、非機能要件がこの目標を達成します。これは、DevOpsの文化的側面の大部分です。

フィードバックループの増幅

フィードバックループの増幅

2番目の方法は、右から左へのフィードバックループを作成することです。ほとんどすべてのプロセス改善イニシアチブの目標は、フィードバックループを短縮および増幅して、必要な修正を継続的に行えるようにすることです。

私は通常、継続的インテグレーション/配信/展開および共有モニタリングとアラートによってこれを達成します。したがって、DevOpsのツールコンポーネントに非常に適合します。

継続的な実験と学習の文化

継続的な実験と学習の文化

第三の方法は、2つのことを促進する文化を創造することです。継続的な実験、リスクを取ること、失敗から学ぶこと。そして、繰り返しと実践が習得の前提条件であることを理解します。

これは、文化を成長させるためのツールとプロセスに大きく依存しますが、文化空間に非常に適合しています。


素晴らしい答え!ただし、さまざまなプラクティスのグラフ比較につまずきました...特にアジャイルに関して。そこに属するにはあまりにも広すぎる用語だと思います。一部のアジャイル手法では、テストを実践の中心に置いていますが、テストは除外されています。かつて、DevOpsは非常に機敏である(または実装方法に応じて異なる)と主張することができました。アジャイルマニフェストは、しっかりと束縛された実践ルールよりも哲学をより多く描写しています。文句を言うだけでなく、それは本当にいい答えです!
ニュートピア

私はその図を完全に信用することはできません。世界中の多くのホワイトボードで私の前に多くのコンサルタントによって描かれています。私は、チームが短い反復で潜在的に使用可能な製品の構築に焦点を合わせたアジャイルのプラクティスを説明していると思います、CIはその作業の一部を自動化するプラクティスとして続きました。そのビルドを展開し、DevOpsは本番環境でソフトウェアを運用します。
リチャードスレーター

4

DevOpsの多くの異なる定義を聞いたことがあります。以下が含まれます。

  • 運用タスクを処理する開発者
  • 1人が2倍の仕事をする(同じ時間内に)
  • 開発者と運用チームが互いに協力し合う
  • 開発者ツールの運用(「Web Ops」の流れ)
  • 開発者ツールを作成および保守する人の役職
  • 運用における自動化の使用
  • 運用におけるパブリッククラウドの使用
  • 運用、開発、および品質保証の側面を組み合わせたジョブ
  • 開発チームと運用チームの連携を支援する仕事
  • チーム間の障壁を打破するという哲学
  • インフラストラクチャをコードとして扱う
  • 元ソフトウェアエンジニアが業務に移行したときに得られるもの
  • 完全に意味のない流行語

実際にDevOpsチームどのように何のパブリックコンセンサスがないですが。数年前、「アジャイル」で同様の問題が発生しましたが、これには定義が書かれています

あなたのコンセプトを新人に紹介するとき、ラベルを適用するのではなく、コンセプトを紹介することに焦点を当てます。たとえば、インフラストラクチャをコードとして説明しようとしている場合、インフラストラクチャをコードとして説明していることを伝えます。合意された定義であっても、ほとんどの企業は哲学の特定の部分により重点を置いているため、具体性が高いほど優れています。


2

この状況で常に使用する定義は次のとおりです。

「ソフトウェア開発プロセスとインフラストラクチャの変更を自動化しながら、ソフトウェア開発チームと運用チーム間のコミュニケーションとコラボレーションを重視するソフトウェア作成文化。DevOpsの目標は、ソフトウェアの構築、テスト、および展開プロセスを頻繁に、迅速に、可能な限り行うことです。」

ただし、定義とともに、DevOpsが必要な理由を理解することも重要ですDevOpsはソフトウェアの欠陥をより迅速に軽減し、リソース管理の改善、人的エラーの低減、バージョン管理の改善、安定した動作環境などを可能にすることを必ず伝えてください。


1

この質問「DevOpsとは」を正確に探求する次の科学研究論文により、DevOpsの派生定義の提案は次のとおりです。

DevOpsは、開発(Dev)と運用(Ops)の間のギャップを埋めることを目的とした開発方法論であり、コミュニケーションとコラボレーション、継続的な統合、品質保証、および一連の開発プラクティスを利用した自動展開による配信を重視しています。

[Jabbari et al。]「DevOpsとは?:定義と実践に関する体系的なマッピング研究」(2016)


-2

Devopsは、ビジネスドメインがオペレーションであるアプリケーションを作成する開発プラクティスです。ほとんどのアプリケーション開発は、金融、ヘルスケア、ロジスティクス、または猫のビデオを行うアプリケーションの構築に焦点を当てていますが、devopsは、ビルド、展開、監視、およびメトリック収集を可能にするアプリケーションに焦点を当てています。

最も重要な目標は、意思決定意思決定になることを常に可能にすることです。銀行のモバイルアプリケーションを想像してください。転送をリクエストすると、ボタンを押すと発生します。あなたは作られ、その後、決定を取った決断を。あなたの操作と同じこと。適切な人が、本番環境にデプロイする準備ができていると判断した場合、ボタンを押すと「正しいこと」が発生するはずです。同様に、彼らは正しいビジネス上の意思決定を行うために必要なすべての必要な情報を持っている必要があります。

それは、ビジネスマンにサーバーへのシェルアクセスを与えることではありません-それは実装と混乱する目的です。適切な情報と適切なガードレールを適切な人に提供することで、意思決定者が意思決定者になります。


1
whose business domain is operations:これを拡張したり、いくつかの例を挙げたりできますか?
Dawny33

私は同意しません、devopsはそれ自体では開発プラクティスではなくソフトウェア開発をサポートする組織モデルであり、devopsモデルで極端なプログラミングを行うことができます(mixin dev、ops、クライアント、テスターなど) )
天柴街

「Devopsはビジネスドメインがオペレーションであるアプリケーションを作成する開発プラクティスです」の基本的な定義は、他の人が購読しているのを見たことがありません。ドメインや目的に関係なく、アプリケーションの作成は開発であり、DevOpsではありません。
エイドリアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.