本セッションで伝えること

伊藤雅人氏:みなさまこんにちは。株式会社カサレアルの伊藤と申します。本セッションではクラウドネイティブエンジニアの育成について実践していることを話します。どうぞよろしくお願いします。

まず、本セッションで話すことを伝えます。本セッションでは、クラウドネイティブエンジニアを育成するためのアプローチについて、弊社で実践していることを話します。

前置きとして、クラウドネイティブエンジニアの採用は数年前から、あるいはもっと前から急増しており、みなさまの中にも採用に苦労されている方がいるのではないでしょうか?しかしながら、募集をしてクラウドネイティブエンジニアに実際に出会えているでしょうか?  私が調べたところ、ITの転職求人倍率が10倍に達したそうです。平均は2.8倍だったので、その競争力の高さがわかります。そうすると、転職市場やSNSなどで簡単には出会えませんよね。それに、クラウドネイティブエンジニアは未経験者や微経験者がポンッとジョブチェンジできるものではないと思います。

例えば、弊社でも私が所属しているクラウドネイティブを推進する部署には、新卒は配属されないようです。しかしながら「人がいないのでおしまい」というわけにはいけません。また、仮にいたとしても不足しているので、クラウドネイティブエンジニアの育成を考えられるかと思います。そこでタイトルに戻りますが、弊社がどのようにクラウドネイティブエンジニアの育成をしているかを紹介します。

自己紹介と会社紹介

(スライドを示して)自己紹介です。あらためまして伊藤と申します。簡単ですが今までの経歴について話します。私はC言語での組み込みソフトウェアの開発から始まり、ネットワークトラフィックの帯域制御装置の技術検証や、製造業での生産管理や情報システム部門での業務改善、Ansibleによるネットワーク運用自動化などを経験してきました。

現在は2022年秋リリース予定のクラウドサービス「テクマトリックスNEO」の開発に従事しています。また、今はフルリモートなので、健康の現状維持のために昼休みにリングフィットアドベンチャーなどをやっています。よろしくお願いします。

(スライドを示して)会社紹介です。弊社はテクマトリックスグループの中の1社で、2022年12月に品川シーズンテラスに移転します。移転後はお昼事情が気になります。

続いて事業紹介です。(スライドを示して)カサレアルはこれら3つのサービスを展開しています。まずはスライド一番左のラーニングサービスです。こちらは研修事業として、JavaやSwiftなどの開発言語を中心に、1社向けあるいはオープンでさまざまなコースを展開しています。ほぼ毎日何らかのコースを開催しています。

今聞いている方々の中でカサレアルを知っている方がいるとすれば、この研修を受けたことがある、もしくは研修で名前を聞いたことがある方が多いのではないかと思います。

次に、一番右のビジネスソリューションです。こちらは受託開発やSESといった、いわゆる開発支援サービスや声優/モデル業界向けのクラウド型スケジューラの「ボイスケ」と「モデスケ」を自社開発しています。

最後は中央にある、クラウドネイティブ推進サービスです。私が所属している部署が提供していて、DevOps環境の構築支援や「クラウドネイティブ道場」というトレーニングを提供しています。ここが本日お話しする育成アプローチと関わってきます。

“クラウドネイティブ”の解釈

(スライドを示して)目次です。上から順にクラウドネイティブ技術の認識合わせ、クラウドネイティブエンジニア研修における弊社の背景。それから本日のメインとなる、クラウドネイティブエンジニアの育成で弊社が実践していることです。ここは育成の課題、弊社の育成アプローチ、アンチパターンの3つの構成になっています。そして最後にまとめとして、クラウドネイティブエンジニア育成のアプローチを話していきます。

(スライドを示して)まず、クラウドネイティブの認識合わせです。こちらはCNCF(Cloud Native Computing Foundation)の原文を翻訳したものです。

「クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどのモダンでダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。

このアプローチの代表例にコンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。これらを堅牢な自動化を組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます」。

個人的にはわかるようでわからない、少しわかったような気がする程度なので、次のスライドで個人的な解釈をまとめています。

私の解釈は、クラウドネイティブは「こういう技術を活用していこうぜ!」という具体的な技術。先に挙げたコンテナやサービスメッシュ、マイクロサービスなどを採用して促進することだと考えています。もちろん今挙げた技術は一例で、CNCFのランドスケープに記載されている多数の技術のいずれかを使っていれば、とりあえず「クラウドネイティブである」と言えるのではと思っています。

こちらは下段です。下の画像はCNCFのランドスケープのスクショ画面です。OSSや商用製品も含め、クラウドネイティブに関するさまざまなツールやサービスがグループ分けされて、包括的に可視化されています。私のモニターでは少なくても1画面に収まらないほど記載されています。技術の範囲がとても広いですね。

また、2022年のKubeCon + CloudNativeCon 2022で、クラウドネイティブ2.0の話が出たとも聞きました。いずれCNCFの定義や、このスクリーンショットも適宜アップデートされていくのかなと思います。

クラウドネイティブエンジニアの育成アプローチ

次に弊社の背景を説明します。事業紹介でも話しましたが、カサレアルではラーニングサービスやトレーニングを社外に提供していて、ほぼ毎日何らかの研修が開催されています。研修はJava、Swiftなどによるアプリ開発や、今回の話につながる、DockerやKubernetesをはじめとした「クラウドネイティブ道場」という研修があります。

また、これらは顧客の要望や課題に合わせてカスタマイズしたり、新規研修として開発することもあります。弊社社員はこれらを受講して、クラウドネイティブ技術を身につけています。

クラウドネイティブエンジニア育成における弊社の背景として、今の話をここで終えてしまうと普通のことのように感じられるかと思うので、この背景を少し深堀りします。

何が特徴的なのかというと、弊社のトレーニングは社内の限られたエンジニアだけでなく、ありがたいことに社外の多数のエンジニアにも受講されています。純粋に受講者数が多いんですね。

そのメリットの1つ目として、トレーニングの受講に至った課題が聞けることです。受講に至らない場合は、それはそれで状況や理由が聞けるので活かせます。2つ目は、社内向けに実施するよりも受講者数が多いため、単純にフィードバックの数が多いです。受講者の役割や経歴もさまざまなので、いろいろな角度からのフィードバックが得られます。

それらが弊社のクラウドネイティブエンジニアの育成に活かされています。結論までの道のりが長いので、いったんここでどんな育成アプローチをしているのかを紹介します。

(スライドを示して)こちらが本日伝えたいことにもなります。弊社の育成アプローチは以下の2つです。技術面では広く浅く、まずは全体像のイメージを持つこと。組織面では、1人ではなく複数人(チーム)で取り組むことです。課題とこのアプローチに至った経緯について話していきます。

クラウドネイティブエンジニアの育成における技術面の課題

クラウドネイティブエンジニアの育成について、弊社が実践していることです。まずは課題について話します。クラウドネイティブエンジニア育成の課題には先ほども述べましたが、技術面と組織面があります。

まずは技術面の課題です。とにかく技術の範囲が広く、どこから手を付けて良いのかわからないということが一番大きいのではないでしょうか。ここで、あらためてCNCFのランドスケープを開いてみますね。

(画面を示して)こちらになります。

カテゴリ、グループ分けがされていますが、数が多いですね。私のモニターではかなり縮小していますが、これでも全体が見えません。そのくらい多いということです。

この中でクラウドネイティブを始めてみようと思ったら迷子になってしまいますよね。ここが課題の1つではあるかと思います。

(課題の)1つ目は、技術の範囲がとにかく広く、どこから手を付けて良いのかがわからない。2つ目は、これだけツールやサービスが記載されていると、範囲が広いからそれに比例して情報量もとても多く、一つひとつのツールやサービスの習得に時間がかかってしまうこと。

3つ目は、サービスの組み合わせは無限大で、どの組み合わせが良いのかがわからない。4つ目は、そもそも実業務で経験したことがなくイメージが持てない。

これら4つがお客さまから課題としてよくお聞きすることです。

クラウドネイティブエンジニアの育成における組織面の課題

(スライドを示して)次に組織面の課題です。課題としては、そもそも学ぶための場を提供できるのかという点と、1人や一部のがんばる人だけでは、クラウドネイティブにシフトするのが難しいという点です。

まず学ぶための場を提供するためには、その技術に精通している人と、指針となるテキストや環境諸々が必要です。技術に精通している人はどこの組織にもいると思います。

例えば「あなたの組織にスーパーエンジニアはいますか?」と聞いたら、誰かしら「あの人じゃないかな?」と思い浮かべるでしょうが、その方はなかなか育成までは手が回らない立ち位置にいるのではないでしょうか。そうすると、学ぶための場を提供するのは難しいです。また、本番環境には図の4本柱のように縦割りで複数人、複数チームが携わっていることが多いです。

ここでは基盤構築とアプリ開発、運用、セキュリティと分けています。みなさまの組織ではいかがでしょうか。数は違えど、やはり縦割り的な部分はあるかと思います。これらを変えていくにはそもそも大変な労力が必要で、1人や一部のがんばる人だけでは実現が困難です。特定のスーパーエンジニアだけががんばっていたら、嫌になってしまうかもしれません。

では、これらの技術面・組織面の課題をどのように解決していくかが次のスライドになります。

(次回に続く)