DevOpsアンチパターン
「DevOpsアンチパターン」という記事を見つけたのでメモ。
アンチパターンをもっと作れたら面白いだろうと思う。
【元ネタ】
DevOpsアンチパターンとは? - Publickey
【1】クラウドが出現して以来、Webインフラもプログラマブルになってきた。
そのおかげで、開発と運用が以前のようにチームとして分離するのではなく、一体化して作業していく方向へ進化している。
以前はWebの基盤構築作業は、設計書を事前に入念に作り、その設計書に従ってサーバーやメモリ、HDD、ルータなどのハードウェアを揃えて構築するというWF型開発が主流だった。
でも、仮想化技術やクラウドのおかげで、構築後にスケーラビリティを上げることもできるし、事前に入念な計画を作らずとも試行錯誤しながら基盤構築できる時代になってきた背景がある。
クラウドに関するデザインパターンは、下記の記事が有名だろう。
AWSに特化したパターンだが、そのノウハウは従来の基盤構築でも十分通用すると思う。
「クラウドデザインパターン」をAmazonが公開。システム冗長化、突発的トラフィック対応、動的コンテンツ処理など45種類 - Publickey
「クラウドアーキテクティング原則」。クラウドデザインパターンの背後にある、システム設計の原則とは - Publickey
僕も以前に記事を書いた。
クラウドデザインパターン~インフラ方式設計のベストプラクティス集: プログラマの思索
【2】上記の記事では、以下のアンチパターンが紹介されている。
クラウドでWebサイトを公開している経験があれば、こんな失敗例があったな、とか思うのではないだろうか。
(引用開始)
1)アンチパターン1:コミットが“完了”/Committed is “Done”
デベロッパーにとって、“コミットが完了”と考えるでしょう。システム管理者なら“スクリプトが実行され、それが理解できている”ことだといえます。でもみんなちょと待って。これはDevOpsなんだよ!
(DevOpsでは)あらゆるデベロッパーはエンドユーザーのことを考えなくてはならないんだ。
よいデベロッパーは、新しい機能のコードを書いたらそれだけではなく、テストをし、最終的にはユーザーへリリースされたことを確認しようとします。そのときこそが、本当にタスクが完了したということなのです。
2)アンチパターン2:僕の担当はここまで/My Responsibility Ends Here
コードの問題だろうと運用の問題だろうと関係なく、だれもが責任を感じ、問題発見に力を貸すべきだ。
3)アンチパターン3:彼らがやるべきだ/They Should
もしも“俺たちvsあいつら”といったことがあなたの組織で起ころうとしているなら、それと戦いなさい。だれもが自分たちの組織全体の成功に貢献し、そしてコミュニケーションの向上によって“俺たち”といった縄張りを解いていくのです。
自分たちは同じ組織に属しているのだと感じることが、コラボレーションを育て、DevOpsのカルチャーへと導いていくのだ。
(引用終了)
(引用開始)
1)Config Management = DevOps
構成管理ツールを入れればDevOpsができると思ってはいけない。協力し合うカルチャーを作り続けていくことが重要なのだとのこと。
2)Guerrilla DevOps
プロセスの一部だけをDevOpsっぽくしたからといってそれほど効果は期待できない。プロセス全体を統合すると。
3)Start a separate DevOps Group
DevOpsグループなんてのを作ったところで、また新しいサイロを1つ作るだけだ。全体で取り組むべき。
4)Silo X takes Over
開発者がプロセス全体を支配したところで、また彼らが運用を学び直すことになる。どちらかが支配するのではない。
(引用終了)
DevOpsに関するアンチパターンを読むと、開発チームと運用チームをいかに一体化して作業していくべきか、に関する内容が多い。
アジャイル開発の知識がある人ならば、アジャイルなプラクティスととても似ていることに気づくだろう。
だからこそ、とても面白い。
そしてこの分野は今なお、いろんなアイデアを試しながらノウハウや失敗例を収集し、整理して、普遍的概念を抽出しようと試みている時期なのだろう。
その意味ではとてもホットな分野であり、今後も注目していく。
| 固定リンク
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
「パターン言語」カテゴリの記事
- パターンカタログよりもモンスターカタログの方が面白いね #jasstkansai(2023.06.24)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
- 「大人の学びパターン・ランゲージ」の感想~知識と経験を行ったり来たりするタイミングを大切にする(2022.06.05)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- 「ハリウッドリライティングバイブル」のマインドマップ(2022.01.23)
コメント