Open5

DevOpsとSREの関連性

i-hrmi-hrm

データ基盤エンジニアであってもDevOpsに対する理解がなければ開発効率や生産性の向上を考えることはできない
どのようなエンジニアであってもDevOpsはある程度理解しておく必要がある

i-hrmi-hrm

DevOpsについて調べる

https://ja.wikipedia.org/wiki/DevOps

DevOps(デブオプス[1])は、ソフトウェア開発手法の一つ。開発 (Development) と運用 (Operations) を組み合わせたかばん語であり、開発担当者と運用担当者が連携して協力する(さらに両担当者の境目もあいまいにする)開発手法をさす[1]

ソフトウェア開発手法についてwikiを見てみる

https://ja.wikipedia.org/wiki/ソフトウェア開発方法論

ソフトウェア開発方法論(英: software development methodology; SDM)は、ソフトウェア開発に用いられる一連のルール・ガイドライン、またそれを扱うソフトウェア工学の一分野である[1]。システム開発方法論(英: system development methodology)とも。

よく DevOpsは手法SREはDevOpsの実装 と言われ、役割について混乱しがちなので、この辺も調べてみる

https://www.redhat.com/ja/topics/devops/what-is-sre#devops-と-sre

DevOps とは、高品質かつ迅速なサービス提供によりビジネス価値や対応スピードを向上することを目的とした、企業文化、自動化、およびプラットフォーム設計に対するアプローチです。SRE は DevOps を具体化したものと考えられます。

i-hrmi-hrm

DevOpsはSREの抽象的な概念で、SREはDevOpsよりも実践レベルの話
レイヤーが違うだけで関係性は有る

企業毎に実装の内容は異なるはずなのでSREの一般論みたいなのはなさそう
ただ共通している部分も有るはずなので、それは必ず抑えておきたい

i-hrmi-hrm

DevOpsのクラウド活用(クラウドネイティブ化)にはいくつかのフェーズが存在している
https://licensecounter.jp/devops-hub/blog/splunk1/

  1. Retain & Optimize
    モノリシックなアプリケーションをウォータフォール開発しているようなサイクル
    DevとOpsが切り離されている状態
    使用インフラ:DC(データセンター)

  2. Lift & Shift
    アプリケーションの動作環境がIaaS
    ただアプリケーション自体はまだモノリシックでDevとOpsには距離が存在している
    使用インフラ:DCとクラウド(VM)

  3. Re-Factor
    クラウドのマネージドサービス(RDS etc)やオートスケールを活用してシステムのアーキテクチャの見直しがされる
    モジュール化は進んでいるがアプリコンポーネントは相互に依存している状態
    使用インフラ:クラウド(VM、コンテナ、k8s)

  4. Re-Architect / Cloud-Native
    クラウドサービスを利用したマイクロサービスアーキテクチャが採用されている
    サービスを構築しているモジュールごとに言語やフレームワークが多様化が起きている
    使用技術の範囲が広くなっているのでDevとOpsが密接である必要が出ててきている状態
    使用インフラ:クラウド(コンテナ、k8s、クラウドサービス)

i-hrmi-hrm

(国内での話)
10年くらい前からあるIT企業であれば Lift & Shift 状態が多い気がする
中規模のIT企業であれば Re-Factor 状態が多そう
Cloud-Naitive まで行けているのはサービス規模が小さければ(少ないが)企業としてありそう

ただ少ないメンバーでマイクロサービスを運用するケースを散見することが多い
言語やフレームワークが多様化していくので、基本的には人数が多い状態で運用されることを想定されている
少人数規模でのマイクロサービス導入は返って保守運用コストが高くなるので、導入には慎重になる必要がある