DevOpsの「正しい」コマンド構造

こんにちは、Habr 銀行での2幎目は、開発チヌムず運甚チヌムを適切に線成する方法を理論ず実践で議論しおきたした。 最近、実務経隓の新しい郚分によっお匷化された議論が次のラりンドに入り、それがアむデアず議論の次の怜玢ぞず私を促したした。









その結果、私は非垞に奜奇心across盛な資料に出くわし、できるだけ倚くの聎衆ず共有したいずいう欲求が怠ず翻蚳の時間䞍足によっお克服されたした。 「サむロ」ずいう蚀葉にふさわしいロシア語を芋぀けようずするたびに远い぀くずいう完党な萜胆にもかかわらず。 サむロ ドむツのオスカロビッチは、「よく」ずいう蚀葉を䜿甚したこずを芚えおいたす...圌の同僚ず盞談した埌、私は「プロット」ずいう甚語に぀いお考えるこずにしたした。



この蚘事の䜕が奜きでしたか たず第䞀に-提䟛されるさたざたなオプション。 ゚バンゞェリストやコンサルタントからよく聞かれる「それだけで、あなたは幞せになりたす」ずいうこずはありたせん。 以䞋は、組織で詊すこずができる9぀の「正しい」オプションず7぀の「間違った」オプションで、さたざたな方法で組み合わせお、実行可胜なものではないにしおも、少なくずもいく぀かのアむデアを「詊す」こずができたす。 第二に、これらの物語は「流血の䌁業」の実䞖界から明らかに取られおいたす-ほずんどは5人のスタヌトアップではなく、最初からすべおを正しく行っおいるが、独自のレガシヌ、耇雑な組織構造、耇雑な人間を持぀倧芏暡オフィス向けのDevOpsモデルを提䟛したす関係。 結局のずころ、 最近のHabrのヒットからわかるように、最も先進的な組織でさえ、䞀定のサむズに達するず互いに䌌たものになりたす。



だから、マシュヌ・スケルトンずマヌ゚ル・パむスの蚘事、 DevOpsを開発するための最高のチヌム構造は䜕ですか 。 最初のバヌゞョンは2013幎に登堎したした。それ以来、著者は倚くの修正ず修正を行っおいたす。



アンチタむプのDevOpsトポロゞヌ



「アンチタむプ」ナビキタスな甚語「アンチパタヌン」ではなくず呌ばれる可胜性のある悪い慣行のアむデアを持っおいるこずは垞に圹立ちたす



アンチタむプAプロットの開発ず運甚



これは、「゜フトりェアを壁から投げる」ずいう原則に基づいた、開発者ず運甚者間の叀兞的な分離スキヌムです。 実際には、Devにずっお、これはタスクの遂行を早期に認識するこずを意味したす「完了」は「戊闘で働く」よりも「機胜を䜜る」を意味したすが、Devは産業で実際に䜕が起こっおいるかを知らないため、゜フトりェアの䜜業胜力が䜎䞋したす環境、Opsには、ナヌザヌのアプリケヌションの新しいバヌゞョンがリリヌスされるたで、Devが問題を解決する胜力も時間もありたせん。



私たちは皆、このトポロゞヌが最良ではないず聞いおいたすが、私は個人的にはさらに悪い遞択肢があるず思いたす。











アンチタむプBDevOpsコマンドのプロット



原則ずしお、このアンチタむプは、特定の䞊玚管理者が「このDevOpsを少し必芁ずする」ず刀断し、「DevOpsチヌム」堎合によっおは「DevOps people」で構成されるこずもありたすを䜜成するように指瀺したずきに発生したす。 このようなチヌムは、開発者ず運甚者を互いから遠ざけお、それぞれのコヌナヌ、スキル、およびツヌルをこれらの「曲がった開発者」たたは「愚かな管理者」から保護できるように、個別のプロットで非垞に迅速に自身をシヌルドしたす。



このモデルが実甚的である唯䞀の状況は、DevOpsチヌムを限られた期間最倧12か月から18か月などで䜜成し、圓初の目暙であるDevずOpsをより近づけ、DevOpsチヌムを排陀するこずに぀いお明確な声明を出すこずです。この時間の満了。 この堎合、 タむプ5ず呌ばれるDevOpsモデルが実装されたす。











アンチタむプCDev-Opsは必芁ありたせん



このモデルは、開発者ずそのマネヌゞャヌの玠朎さずand慢さの組み合わせから生たれたす。特に新しいプロゞェクトやシステムが立ち䞊げられた堎合は特にそうです。 IT Opsが過去からのむメヌゞであるず仮定するず「珟圚、私たちの呚りにクラりドがありたすか」、開発者は運甚スキルずアクティビティの耇雑さず重芁性を過小評䟡し、それらがなくおも存圚できる、たたは実行できるず信じ始めたす。 「自由な」時間。



アンチタむプCは、リリヌスされた゜フトりェアが実際の運甚負荷を䜜成し、開発時間を吞収し始めるず、 タむプ3 IaaSずしおの操䜜たたはタむプ4 倖郚サヌビスずしおのDevOpsに倉わる可胜性がありたす。 このチヌムが専門分野ずしおIT運甚の重芁性を認識した堎合にのみ、痛みや䞍必芁な運甚゚ラヌを回避できたす。











アンチタむプDツヌルチヌムずしおのDevOps



開発者の珟圚の生産性を犠牲にするこずなく぀たり、機胜的な機胜を実装するこずなく「DevOpsになる」ために、DevOpsチヌムがDev内に䜜成され、開発パむプラむン、構成管理システム、環境管理アプロヌチなどのツヌルセットをDevに提䟛したす。 同時に、Opsは単独で動䜜し、Dev-「壁を越えお゜フトりェアを投げる」。



このようなスキヌムのDevOpsチヌムは、ツヌルの導入により実際のメリットをもたらすこずができるずいう事実にもかかわらず、最終的な効果は制限されたす。 基本的な問題は未解決のたたです。Opsの早期関䞎の欠劂ず、゜フトりェアラむフサむクル党䜓にわたる機胜の盞互䜜甚です。











アンチタむプEブランド倉曎されたシステム管理者



このアンチタむプは、゚ンゞニアリングの成熟床が䜎い組織に䞀般的です。 圌らはプラクティスを改善し、コストを削枛したいのですが、ビゞネスの重芁な成功芁因をITで把握するこずはできたせん。 業界にずっおのDevOpsの利点はすでに明癜であるず考えられおいるため、「DevOpsを行う」こずも望んでいたす。 残念ながら、チヌムの構造や関係の実際の問題を解決する代わりに、Opsチヌムの「DevOps゚ンゞニア」を雇っお間違った道を遞択したす。



「DevOps」ずいう甚語は、システム管理者の圹割をブランド倉曎するために䜿甚され、プロセスの文化や組織に実際の倉曎は発生したせん。 無差別のリクルヌタヌが自動化スキルずDevOpsツヌルを備えた人々の怜玢に参加するに぀れお、このアンチタむプはより䞀般的になり぀぀ありたす。 実際には、DevOpsを機胜させるのは人々のコミュニケヌションスキルです。











アンチタむプFOps Inside Dev



この組織は、別の運甚チヌムを持぀こずを望たないため、開発チヌムはむンフラストラクチャ、環境管理、監芖などを担圓したす。 このアプロヌチでは、プロゞェクトたたは補品チヌムで、運甚タスクがリ゜ヌスの制玄たたは䜎優先床の犠牲になり、その結果、品質の䜎い生補品に぀ながりたす。



このアンチタむプは、効果的なIT運甚の圹割ずスキルの重芁性に察する過小評䟡を瀺しおいたす。











アンチタむプG開発ずDBAのプロット



これはアンチタむプAの皮類の1぀で、倚くの叀いシステムが集䞭型デヌタベヌスに関連付けられおいる䞭芏暡および倧芏暡䌁業で非垞に䞀般的です。 これらのデヌタベヌスはビゞネスクリティカルであるため、通垞はOpsフレヌムワヌク内の別のDBAチヌムが、障害の管理、構成、および埩旧を担圓したす。 このようなスキヌムは論理的です。 しかし、同時にDBAチヌムが境界の保護者ずなり、デヌタベヌス内のすべおの可胜な倉曎を遅くするず、これは定期的な゜フトりェア曎新の远加の障害になりたすDevOpsの䞻な目暙は加速です。



さらに、DBAチヌムが初期段階で゜フトりェアの開発に関䞎しおいない堎合、デヌタの移行やデヌタベヌスのパフォヌマンスなどに関するすべおの問題はラむフサむクルの埌期段階でのみ発芋され、管理者ぞの重い負荷ず盞たっお、絶え間ない戊いずDBAに察するプレッシャヌの増加。











DevOpsトポロゞヌのタむプ



悪いオプションに぀いお話した埌、DevOpsの動䜜に圹立぀モデルを芋おみたしょう。



タむプ1コラボレヌション開発および運甚



これは、非垞に「玄束の地」であるDevOpsです。必芁に応じお、開発チヌムず運甚チヌムの「スムヌズな」盞互䜜甚-専門性が適甚され、必芁に応じお-チヌムが連携したす。 このオプションでは、いく぀かの個別のDevコマンドがあり、それぞれが郚分的に独立した補品で動䜜したす。



私の意芋では、タむプ1の実装には、組織の倧幅な倉曎ずIT組織の管理における高いレベルの胜力が必芁です。 開発者ず運甚者には、明確で明確でわかりやすい共通の目暙が必芁ですたずえば、「信頌性の高い頻繁な゜フトりェア倉曎を提䟛する」。 Opsの人々は、開発テストによる開発TDDやバヌゞョン管理などに固有の問題に぀いお、開発者ず協力しお快適に䜜業できるはずです。 䞀方、Devは運甚䞊の問題に真剣に関䞎する必芁があり、たたOpsから入門しお新しい゜リュヌションを開発するよう努力する必芁がありたす。 これにはすべお、過去の埓来のアプロヌチず比范しお、重芁な文化的倉化が必芁です。









タむプ1の適甚可胜性匷力な技術コンポヌネントを持぀組織

朜圚的な効率 高



タむプ2完党に統合されたチヌム



Opsの埓業員が補品開発チヌムに完党に統合されるず、タむプ2のトポロゞヌが埗られたすが、この堎合、DevずOpsの違いはごくわずかであるため、すべおの埓業員は共通の目暙に完党に集䞭したす。 原則ずしお、これはタむプ1の皮類の1぀ですが、独自の特性がありたす。



単䞀の玔粋なデゞタル補品を顧客に提䟛するNetflixやFacebookのような䌁業は、タむプ2トポロゞヌを䜿甚したすが、組織が顧客に耇数の補品を提䟛する堎合、このアプロヌチの適甚範囲は限られるず思いたす。 通垞、耇数の補品を生産する組織で芋られる予算の制玄ずコンテキストスむッチングの必芁性により、開発郚門ず運甚郚門の間の距離が長くなる可胜性がありたす タむプ1トポロゞを䜿甚。



タむプ2は「NoOps」ず呌ばれるこずもありたす。これは、このモデルには別個たたは衚瀺可胜なOpsコマンドがないためですただし、NetflixのNoOpsモデルもタむプ3 IaaSなどのOpsに䌌おいたす。









タむプ2適甚性単䞀の完党デゞタル補品を提䟛する組織

朜圚的な効率 高



タむプ3IaaSずしおの運甚サヌビスずしおのむンフラストラクチャ



急速に倉曎できない、たたは倉曎しない埓来のIT Opsナニットを持぀組織、およびすべおのアプリケヌションにAmazon EC2、Azureなどのパブリッククラりドを䜿甚する組織の堎合、Opsをチヌムずしお扱うず䟿利です。これにより、アプリケヌションがむンストヌルおよび実行される柔軟なむンフラストラクチャが提䟛されたす。 このモデルでは、OpsコマンドはAmazon EC2、぀たりIaaSサヌビスずしおのむンフラストラクチャアプロヌチに䌌おいたす。



このスキヌムでは、別のチヌム仮想の堎合もありたすがDev内で䜜業し、運甚機胜、メトリック、監芖、サヌバヌ展開などの専門知識の䞭心ずしお機胜したす。 圌女はたた、IaaSチヌムずのすべおのコミュニケヌションの面倒を芋るこずができたす。 このチヌムは本質的に開発者であり、TDD、CI、反埩開発などの暙準的なプラクティスを䜿甚しおいたす。



実装を簡玠化するために、IaaSトポロゞの有効性は限られおいたすOpsチヌムずの連携が倱われたためが、 タむプ1を盎接実装しようずする堎合次の開発ステップになる可胜性がありたすよりも速く結果を埗るこずができたす。









タむプ3の適甚可胜性埓来のIT運甚郚門を持぀、いく぀かの異なる補品ずサヌビスを持぀組織。 アプリケヌションがパブリッククラりドで完党に実行される組織

朜圚的な効率 äž­



タむプ4倖郚サヌビスずしおのDevOps



䞀郚の組織、特に小芏暡な組織では、゜フトりェアに関連する運甚タスクに適切に察凊するための財源、経隓、たたは有資栌者がいない堎合がありたす。 この堎合、開発チヌムは、Rackspaceなどの倖郚サヌビスプロバむダヌを芋぀けお、テスト環境システムの構築、むンフラストラクチャの自動化、監芖の構築を支揎し、開発䞭に実装する必芁がある非機胜芁件に関するアドバむスを提䟛できたす。



このオプションは、小芏暡な組織や、自動化、監芖、たたは構成管理ぞの最新のアプロヌチに぀いお実践的に孊びたいチヌムに圹立ちたす。 将来、組織が成長し、運甚掻動に重点を眮いお人々が組織に登堎するず、組織はタむプ3たたはタむプ1モデルに移行できるようになりたす。









タむプ4の適甚可胜性 IT運甚の経隓が少ない小芏暡のチヌムおよび組織

朜圚的な効率 äž­



タむプ5ラむフタむムDevOpsチヌム



このモデルは、 アンチタむプB 「プロット」DevOpsず同じように芋えたすが、DevOpsチヌムのタスクず寿呜は根本的に異なりたす。 䞀時的なDevOpsチヌムは、DevずOpsを近づけ、理想的にはType 1たたはType 2に持ち蟌み、無甚のために自己排陀するずいう䜿呜を持っお䜜成されたす。



䞀時的なチヌムのメンバヌは、最初に開発チヌムず運甚チヌムの間の「翻蚳者」ずしお働き、䞀方で運甚チヌム甚のスタンドアップやかんばんボヌドなどのクレむゞヌなアむデアを提䟛し、䞀方で、蚭定のような䜎レベルの「キッチン」を考えおいる開発者チヌムず協力したすバランサヌ、SSLオフロヌド、たたはネットワヌクコントロヌラヌの管理。 十分な人が開発ず運甚の融合に䟡倀を芋出し始めれば、DevOpsチヌムは目暙を達成する本圓のチャンスを埗たす。 重芁アプリケヌションの実装たたは運甚に察する長期的な責任は、䞀時的なチヌムに「ハング」させないでください。そうしないず、このスキヌムはすぐにアンチタむプBに倉わりたす。









タむプ5適甚性これはタむプ1の前兆ですが、 アンチタむプBになるリスクがありたす。

朜圚的な効率 䜎から高



タむプ6DevOps゚バンゞェリストチヌム



DevずOpsの間に倧きなギャップがあるたたはこのギャップを広げる傟向がある組織内では、DevずOps間の通信をサポヌトするDevOpsチヌムを䜜成するこずが圹立぀堎合がありたす。 これは、DevOpsチヌムが継続的に存圚するタむプ5ベヌスのバヌゞョンですが、そのタスクは、DevチヌムずOpsチヌム間のコミュニケヌションず盞互䜜甚を促進するこずです。 このDevOpsチヌムのメンバヌは、DevOpsプラクティスに関する知識を広めるため、しばしば䌝道者ず呌ばれたす。









タむプ6適甚性 DevずOpsに距離を眮く傟向がある組織。 危険- アンチタむプBぞのスラむド

朜圚的な効率 䞭から高



タむプ7SREチヌムGoogleモデル



DevOpsは通垞、電話で勀務䞭のDevチヌムを巻き蟌むこずを掚奚しおいたすが、これは必須ではありたせん。 実際、䞀郚の組織Googleを含むは異なるモデルを䜿甚しおおり、開発チヌムから運甚を担圓するチヌムSRESite Reliability Engineeringぞの゜フトりェア転送の明瀺的な儀匏がありたす。 このモデルでは、開発チヌムはSREチヌムに蚌拠ログ、メトリックなどを提瀺し、送信されたアプリケヌションがSREでサポヌトされるのに十分な信頌性があるこずを明確に瀺す必芁がありたす。



重芁なこず-SREチヌムは、SRE暙準を満たさないアプリケヌションをサポヌトしない堎合があり、アプリケヌションが商甚操䜜モヌドになる前に特定の「機胜」をやり盎すように開発者に芁求する堎合がありたす。 開発チヌムずSREチヌムの盞互䜜甚は運甚指暙を䞭心に展開されたすが、SREチヌムがアプリケヌションの品質に満足するず開発チヌムではなく、SREはこの゜フトりェアのサポヌトを開始したす。









タむプ7適甚可胜性タむプ7は、゚ンゞニアリング文化ず組織の成熟床が高い組織にのみ適甚されたす。 そうしないず、SRE / Opsコマンドが単に゜フトりェアをむンストヌルするための指瀺を受け取り、それに埓っおいるAnti-Type Aを取埗するリスクがありたす。

朜圚的な効率 䜎から高



タむプ8コンテナベヌスのコラボレヌション



アプリケヌションランタむムをコンテナに配眮するず、開発ず運甚のコラボレヌションの本圓の必芁性がなくなりたす。 この堎合、コンテナは開発郚門ず運甚郚門の責任範囲の区切り文字ずしお機胜したす。 ゚ンゞニアリングの成熟床が高い堎合、このモデルはうたく機胜したすが、Devが運甚䞊の問題を無芖し始めるず、このオプションは叀兞的な「私たちは圌らに敵察する」察立に倉わる可胜性がありたす。









タむプ8の適甚可胜性コンテナヌは正垞に動䜜する可胜性がありたすが、Opsチヌムが開発チヌムが投入するものをサポヌトするこずが期埅される堎合、このオプションはAnti-Type Aに倉曎できたす

朜圚的な効率 䞭から高



タむプ9Dev-DBAコラボレヌション



このオプションは、 アンチタむプGで説明されおいる状況ぞの応答です。 開発者ずDBAのギャップを埋めるために、䞀郚の組織では、䞭倮デヌタベヌスの改良を専門ずする別の開発チヌムにDBAチヌムを近づけおいたす。 これは、デヌタベヌスをアプリケヌションデヌタが栌玍されおいる開発オブゞェクトず芋なすこずに慣れおいる人ず、同じデヌタベヌスを膚倧な量の耇雑なビゞネス情報ず認識する人ずの間のコミュニケヌションに圹立ちたす。









タむプ9の適甚性耇数のアプリケヌションが1぀以䞊の集䞭型デヌタベヌスず連携する組織に適しおいたす

朜圚的な効率 äž­



PS私たちRaiffeisenbankは、今幎の倏、 タむプ1 すべおの人にずっおの基本的なオプションずタむプ2 タヌゲットずなるこずが刀明した「高床な」を怜蚎するこずに同意したした。 人生は、この遞択が正しかったこずを瀺したす。



PPSそしお元気ですか 組織にはどのような皮類のDevOpsがありたすか



All Articles