ページの先頭です
IIJ.news Vol.174 February 2023
昨今、1人のITエンジニアが担う領域が広がり続けている。
本稿では、そうした現状の背後にある、開発(Development)と運用(Operation)の組んず解れつの関係について述べる。
IIJ ネットワーク本部SRE推進部長
田口 景介
Developerはソフトウェアの開発を、Operatorは運用を、それぞれ考えていれば良かった時代は、遠い昔となりました。
DeveloperにもOperatorにも無数のカテゴリがあるので一概には言えませんが、いっさい運用を知らないでバックエンドエンジニアは務まりませんし、いっさいソフトウェア技術を知らずに運用が務まることもありません。この点に異論を差し挟む余地はないでしょう。ゆえに、“DevOps”(開発: Devと運用: Opsからなる複合語)と呼ばれるコンセプトがIT業界に受け入れられたのは、ごく自然なことでした。
かくして、技術的にも組織的にも両者には歩み寄りが求められ、それこそがインターネットサービスを成功に導く重要な方法論であると考えられるようになりました。プラネットスケールとまで呼ばれる大規模サービスは、そうした方法論が定着し、効果的に機能する組織を実現した賜物ではないでしょうか。
ですが、その境界線は数年ごとに移ろい続けているように感じられます。1人のITエンジニアがカバーする本来の分野を超えて、専門分野外で境界線がオーバーラップする傾向が見られるのです。おかげで多くのITエンジニアは、年を経るごとに自分に求められるエリアが際限なく広がり続けている、と感じているはずです。
この傾向は、クラウドの普及によりさらに複雑化しています。クラウドには多くの側面がありますが、DevOpsの文脈では、プログラマブルであることが大きな意味を持ちます。 APIを通じてITインフラがコントロール可能になり、あたかもアプリケーションの一部であるかのようにサーバ、ストレージ、ネットワークといったリソースを制御できるようになった結果、両者の境界はとてつもなく曖昧になりました。
冒頭で述べたように、異なる分野のITエンジニアが互いの理解を深めるほど、アウトプットの質が向上することは間違いありません。ですが、技術が複雑化するにつれ、良かれとした歩み寄りも、結局のところ、器用貧乏な人材を生むだけかもしれません。互いの理解は必須なれど、やはり開発者は開発の専門性を、運用者は運用の専門性を追究・専念できたほうが、高い競争力を備えたビジネスを生み出す源泉になります。さらなる発展を目指すには、相互理解だけでなく、同時に組織を疎結合に保つ技術が欠かせない時代になったということです。
例えば、近年急速に発展した技術に「コンテナ」があります。DockerやKubernetesといったプロダクトに代表されるコンテナ技術には多くの側面がありますが、Developerによる開発物を運用環境含めてパッケージ化し、環境への依存性を極力そぎ落としたかたちでOperatorへ引き渡す仕組みと考えることができます。つまり、運用環境が小規模なオンプレミスであろうが、大規模なパブリッククラウドであろうが、どんなネットワーク構成でも、事前に開発者が理解することなくコンテナイメージへとパッケージ化できるため、必要以上にコミュニケーションをとらずとも連携が可能なのです。
技術の発展がコミュニケーションのあり方を変えていくのは今に始まったことではありませんが、大事なのがインタフェースであることは、いつになっても変わることはなさそうです。
ページの終わりです