プラットフォームエンジニアリングの定義
こんにちは、riddleです。今日は一人でですね、プラットフォームエンジニアリングについて調べてきたので紹介したいと思います。
皆さん、プラットフォームエンジニアリングってご存知ですか?私は最近なんかずっと聞いてるけど、何なんだみたいなところをちょっと思っていて、
軽く本とかも読んだんですけど、なんか自分実はこれなんじゃねってちょっと思うことがあったんですけど、
なんかそんなあやふやで名乗っていいのかなと思ったので、今回ご紹介したいと思います。
プラットフォームエンジニアリングですね、なんか2022年の冬?具体的な時期は怪しいんですけれども、
アメリカの方で提唱されたような考え方らしくて、ガートナーのところから引用するとですね、
プラットフォームエンジニアリングとは、ソフトウェアの開発とデリバリーを目的としたセルフサービス型の開発者プラフォームの構築と運用に関する専門分野ですと書かれていました。
かいつまんで言うと、プロダクト開発とかをする際に開発者がより早く開発ができるようになったりとか、
それを支援するデベロッパーポータルサイトみたいなものを作るという役割ですかね、すごい具体的に言ってしまうと。
これはなんじゃいっていうところで、もう少し深掘ってみたいと思います。
続いてですね、クラウドナイティブコンピューティング技術を推進する団体でCNCFっていう団体があるんですけども、
よくいろんなCNCFのプロジェクトとかありますよね、アルゴCDとかフラックスなんとかとか、
ジェンキンスXとかテクトンとか全部GitOpsツールになっちゃいましたが、
クラウドネイティブコンピューティングファンデーションの方で、このプラットフォームエンジニアリングに関するホワイトペーパーが出てました。
そこにこの職業というか、このロールの人はこういうのやりますよ、こういうこと大事にしたいですよ、みたいなところが否定されていたので、それをいくつかご紹介しますと。
基本的には先ほど申し上げたような開発チームの認知負荷を軽減して開発とデリバリーを早くしましょうと。
また彼らがいかつして開発者に必要なツールとかを用意したりとか、ポータルサイトを用意することで認証とか認可だったり、
セキュリティ的な問題を軽減しますよという感じでした。
そもそも、じゃあプラットフォームって何なのって話じゃないですか。
これも書かれていて、すごい抽象的に言うと、プラットフォームの利用者のニーズに合わせて定義、提供された能力の集合体ですって書いておりますね。
ちょっとさすがに抽象的すぎて全然ピンとこないんですけれども、
一般的なイメージとしては、開発者が使ういろんなツールであったり、先ほどから言っているようなポータルサイト、また開発者が例えば実際に使用する開発環境。
MITENEの場合だとリモートに開発環境が用意されていて、開発者はSSHをつないでそこで開発をするという感じだったので、通称サンドボックスと呼ばれているその環境のことを管理するみたいなイメージですかね。
また他にもマイクロサービスを展開しているような会社であれば、新しいマイクロサービスを作るテンプレート、テラフォームのテンプレートみたいなものを提供管理しているというのもあるそうです。
プラットフォームチームの役割と課題
これらのプラットフォームチームはどういうことをミッションとして持っているかというところで、ミッションとしては先ほどの開発者の開発体験を良くしてデリバリーを早くするということなんですけれども、
いくつか課題がありまして、そのうち一番重要なものとしてプラットフォームチームは開発者に提供するプラットフォームを製品として扱わなければならなくて、ユーザーとともに作っていきます。
社内利用向けとはいえ製品として出すということなので、非常に高いクオリティが求められるというのが、このCNCFがホワイトペーパーで出しているところですね。
またですね、実際に作っていく際にはですね、初期パートナーのアプリケーションチームを慎重に選定する必要があると。
なので、会社内に10個ぐらいいろんなアプリ作っているチームがバラバラにあったら、その中で一番複雑そうなことをやっていて、歴史もあって、かつ標準に近い形のものをおそらく選ぶんでしょうね。
それを選んだ中で、どうプラットフォームを作っていけば開発者が楽になるのかを考えましょうということでした。
では次に、どうやったらプラットフォームエンジニアになれるんだという話ですね。
これも書いてありました。
すごいざっくり言うと、プロダクト開発チームにいた経験があり、インフラとアプリができて、ドキュメンテーションもできる人です。
全部盛りですね、これは。
インフラとアプリができて、ドキュメンテーションができるやつって全部できるから、そういう贅沢な人材を開発者の開発者体験、向上のところのチームに入れると良いという感じでした。
ちょっと身も蓋もないというか、へーって感じですね。
ここまで聞くと、SREとの違いはよくわからないなと個人的には結構思っています。
SREというのはサイトリライアビリティエンジニアリングというもので、Googleがだいぶ前に提唱して、結構もう世間には一般的なロールかなと思うんですけれども、
こことの大きな違いはですね、SREが本番環境をメインで見るのに対して、プラットフォームエンジニアリングチームは開発環境の方をメインで見るということでした。
具体的に言うと、SREは本番で問題が起こった際だったりとか、ユーザーに不利益が生じるようなことが起こった場合にそれをどんどん対応していくという感じに対して、
プラットフォームエンジニアリングチームは社内に目を向けて開発環境の維持効率の上昇みたいなところを焦点に当てているということで、
もともとSREの多くの人はプラットフォームエンジニアリングもやっていたと思うんですよね。
私もやってましたし、ミテネでSREされている方もやってるんで、もともとはSREの職務としても入った感じだと思います。
ただきっとSRE大変すぎるんですよね。やることひどすぎるんで。
そういうこともあって、プラットフォームエンジニアリングはそれで切り出しておこうよみたいな部分になったのかな。
ここはちょっとスイズドンでしかないんですけれども、そういうようないきさつな気がしますね。
このプラットフォームエンジニアリングなんですけれども、最近給食の媒体を見ていると結構この名前で募集もありまして、
だいたい金額としては加減が700でアッパーが1400とか、会社によっては2000とからしいんですけど、結構高めですね。SREぐらい。
メンバーでも最低700ぐらいあるということなので、結構目指していきたいロールの一つではありそうです。
ただやっぱりインフラとアプリができた上でドキュメンテーションもできるっていうのが結構ハイスキルなので、
業界経験でいうと最低5年以上はやっている人っていうのが対象になってくるかなと思いますね。
あとプラットフォームエンジニアリングがどのフェーズなのかっていうのも結構大事だと思っていて、
今のところ1人ですとか2人ですとかだったら立ち上がっているんでこういうことをやっておけばいいのかなわかるんですけど、
ゼロ人とかになるとこれから立ち上げる必要がある。もちろん採用枠があるという時点で必要性は周りが理解してくれているとは思うので、
そこに関しては少し安心できるかと思うんですけれども、すでに各チームでいい感じなものが用意されているので、
それをうまく剥がして標準化して入れるみたいなことをしていくって考えると結構大変なのかなと思います。
プラットフォームエンジニアのキャリア
今回は最近いろんなところで飛び交っているプラットフォームエンジニアリングという仕事と裏側と成り立ちみたいなところを簡単に調べてお話ししました。
個人的にはやってきたことなのでそんなに違和感はないんですけれども、
外向けにプロダクトを出すよりも内向けに生産性をどんどん上げていきたいという人にはとてもお勧めな職業かなと思います。
このポッドキャストはハッシュタグUITで感想やコメントをお待ちしております。
またチャンネルの概要欄やエピソードの概要欄にGoogleフォームのリンクもありますので、そちらからのご投稿も大歓迎です。
ありがとうございました。