ポエム記事です。
よくAnsibleとかTerraformを使ったシステムを開発するとき「自動化」って言葉を使いますよね?
あれ、かなり前からものすごく違和感あるんですよね。
いやわかりますよ? サーバとかNW機器とか、従来はコマンドを手打ちして設定してましたが、その必要がなくなるわけで。だから、手動での作業に対して、自動化。当然の解釈じゃないですか。
ですが、自動化ってただ「単純に効率化するだけ」ってイメージに留まりませんか?
作業しなくて済むわー楽だわーってイメージしか湧かないんじゃないですか???
「自動化をすると、オペミス防止や作業の標準化といった副産物がありますよ!」っていう宣伝もよく聞きますが、別にそれって「運用でカバー」できちゃうんですよ。ある程度スキルが必要なこともあるだろうけど。
気をつければいい、別にコストかけて自動化を覚える必要はない。
レガシーなシステムだと特にそういう意識強くなっちゃうし、興味も持つことができない気がするんですよね。
自動化の本質ってそういうことなのかなぁって疑問に感じてるんですよね。
AWXとかAAPを触ってると感じることなんですが、コードによって構成管理をする世界があって、UIを設けることで敷居を下げて、知識や経験の浅いエンジニアでも正しく運用できるようにする。ここまでやって自動化の最終ゴールなんじゃないだろうかって。
自動化って言っちゃうと、自動化して終わりって感じがしてしまうんですよね。より多くのエンジニアが適切に運用できるようになるところをゴールにしたほうがいいように思うんですよね。それは自動化の更にその先にあるものだと思うんですよね。
なので自動化って言葉がものすごく矮小に感じるんですよね。
で、近年新しいワードが出てきましたよね。プラットフォームエンジニアリング。
いろんな記事とか見てふわっとしたことはわかるけど、ぶっちゃけ意味わかりませんよね。プラットフォームってどのプラットフォームだよ。自動化と何が違うんだよ。何か新しい需要を無理に作ろうとひねり出した言葉じゃないのって。
ここ半年ほど、積極的に自動化を取り入れていこうぜ!って現場に入りました。
そこでなんとなくですが、プラットフォームエンジニアについても少しずつ掴めてきたところがあります。
プラットフォームエンジニアリングって、つまり運用に自動化を組み込むこと、運用をシステム化することなんですよね。
例えばACLを追加したり削ったりする運用業務があるとするじゃないですか。これがとてもわかり易いと思うんですが、この業務をエンジニアの介入なしでするのが自動化の最終ゴールなんですよね。ACL追加/削除という運用業務をエンジニアに投げるのではなくシステムに投げる。そういうものがプラットフォームエンジニアリングというわけです。
で、そのための手段としてAnsibleだったりTerraformで自動化をする。これらのツールはフレームワークとして仕様が固まっているので扱いやすい。それだけの話だと思うんです。
ここまでの解説でイメージできました? できない? まぁポエム記事ですからね。仕方ないですね。呑みながら書いてるし。
ここで、プラットフォームエンジニアリングを正しい日本語訳にしましょう。
正しい母国語に訳すのはその概念の正しい理解を深めるために必要なことです。
プラットフォームエンジニアリングは「自動化」ではありません。
プラットフォームエンジニアリングは「運用基盤開発」です。
運用基盤というものは今までに聞いたことがない言葉だと思いますが、これならなんとなくイメージできるんじゃないでしょうか。運用するためのシステムを乗せるための基盤、という意味でのプラットフォームです。
近年、IT技術が高度化してきたことにより、システム運用の負担もどんどん大きくなってきています。
その中で、機能追加や不具合対応に迅速な対応を求められたり、人為的ミスの削減が求められるようになってきました。
それらはインフラエンジニアの人力運用によって支えられてきました。
しかし、その運用もそろそろシステム化してもいいんじゃないでしょうか?
そのために必要なのが運用基盤です。運用基盤を用意することで、エンジニアの手を介さずにシステムの構成変更を行うことが出来るようになるため、機能追加や不具合対応を迅速に行うことが出来るようになります。
どうですか? こういう言い方ならプラットフォームエンジニアリングが腑に落ちるところありませんか?
少なくとも、僕的には自動化と呼ぶよりしっくりきてます。
……まとめです。
AnsibleやTerraformで開発することは自動化ではありません。
プラットフォームエンジニアリングとは、自動化をすることではありません。
プラットフォームエンジニアリングとは、運用基盤開発であり、運用するためのシステムを用意することです。
運用基盤を用意することによってエンジニアを介さずにシステムの構成変更が出来るようになります。
今後の自動化界隈、こういう方向に持っていきませんか?
そろそろ、運用基盤開発界隈に進化を遂げませんか?