Slide 1

Slide 1 text

前職 クラウドネイティブエンジニアの育成について 実践していること 2022.11.22 CloudNativeDaysTokyo 2022 伊藤雅人 @mito0538

Slide 2

Slide 2 text

前職 本セッションで話すこと 本セッションでは、クラウドネイティブエンジニアを育成するためのアプローチ について、弊社で実践していることを話します。 数年前からクラウドネイティブエンジニアの採用は急増しており、皆さまの中に も採用をされている方がいらっしゃるのではないでしょうか。 しかしながら、募集をして実際に出会えていますか? ITの転職求人倍率は10倍に達したそうです(DODA転職求人倍率レポートより) そうそう出会えるわけではないのであれば、出会えたとしても、クラウドネイ ティブエンジニアの育成を考えられるかと思います。 そこで、弊社がどのようにクラウドネイティブエンジニアを育成しているかを紹 介します。 2

Slide 3

Slide 3 text

前職 自己紹介 氏名 :伊藤 雅人 経歴 :組み込みソフトウエア開発から、生産管理や情報システム部での業務改善、  AnsibleによるNW運用自動化などを経験し、2022年に株式会社カサレアルへ入社。  現在は今秋リリース予定のクラウドサービスの開発に従事。  昼休みにリングフィットアドベンチャーをやります。 3

Slide 4

Slide 4 text

前職 目次 ● クラウドネイティブ(技術)の認識合わせ ● クラウドネイティブエンジニア育成における 弊社の背景 ● クラウドネイティブエンジニアの育成について 弊社が実践していること ○ 育成の課題 ○ 弊社の育成アプローチ ○ アンチパターン ● クラウドネイティブエンジニア育成の アプローチまとめ 4 4

Slide 5

Slide 5 text

前職 クラウドネイティブ(技術)の認識合わせ ● CNCF Cloud Native Definition v1.0 (掲載の原文を翻訳) クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなど のモダンでダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するため の能力を組織にもたらします。このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロ サービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で 頻繁かつ予測どおりに行うことができます。 5

Slide 6

Slide 6 text

前職 クラウドネイティブ(技術)の認識合わせ ● 私の解釈 クラウドネイティブは「こういう技術を活用していこうぜ!」という具体的な技術、例えばコンテナや サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、宣言型APIを採用・促進 することです。挙げた技術は一例で、CNCFのランドスケープに記載されている多数の技術のいずれかを 使っていれば、とりあえず言えるのではと思っています。 ● CNCFのランドスケープ OSSや商用製品も含めて、クラウドネイティブに関連する 様々なツールやサービスが、グループ分けされ、 包括的に可視化されています。 6

Slide 7

Slide 7 text

前職 クラウドネイティブエンジニア育成における弊社の背景 カサレアルでは、ラーニングサービスやトレーニングを社外に提供しており、 ほぼ毎日何らかの研修が開催されています。 研修はJava・Swiftなどによるアプリ開発から、今回の話につながるDockerや Kubernetesを始めとしたクラウドネイティブ道場があります。 また、顧客の要望や課題に合わせカスタマイズしたり、企画より新規研修として 開発することもあります。 弊社社員は、これらを受講しクラウドネイティブ技術を身に着けていきます。 7

Slide 8

Slide 8 text

前職 クラウドネイティブエンジニア育成における弊社の背景 弊社のトレーニングは、社内の限られたエンジニアだけではなく、社外の多数の エンジニアも受講されています。 そのメリットが以下になります。 ● トレーニングの受講に至る(至った)課題が聞ける ● 受講者数が多いため、フィードバックの数が多い ○ 受講者の役割や経歴も様々なので、多種多様なフィードバックが 得られる 8

Slide 9

Slide 9 text

前職 弊社の育成アプローチ 弊社の育成アプローチは以下の2つです。 技術面 ● 広く浅く、まず全体像のイメージを持つ(→拡げていく) 組織面 ● 1人ではなく複数人(チーム)で取り組む 9

Slide 10

Slide 10 text

前職 前職 クラウドネイティブエンジニアの育成について 弊社が実践していること 10 10

Slide 11

Slide 11 text

前職 育成の課題 クラウドネイティブエンジニア育成の 課題には、 技術面と組織面があります。 11 11

Slide 12

Slide 12 text

前職 技術面の課題 クラウドネイティブエンジニアを育成するにあたって、技術面では、 以下の課題があります。 ● とにかく技術の範囲が広く、どこから手を付けて良いのか分からない ● 情報量がとても多く、1つ1つのツールやサービスの習得に時間がかかる ● サービスの組み合わせは無限大で、どの組み合わせが良いのか分からない ● そもそも実業務で経験した事がなく(例えばコンテナアプリケーション)、 イメージが持てない 12

Slide 13

Slide 13 text

前職 組織面の課題 クラウドネイティブエンジニアを育成するにあたって、技術を習得する際の 組織面では、以下の課題があります。 ● 学ぶための場を提供できるのか ● 1人や一部の頑張る人だけでは、 クラウドネイティブにシフトするのが難しい ○ 本番環境には、複数人・複数チームが 携わっている 13

Slide 14

Slide 14 text

前職 弊社の育成アプローチ 各課題に対して、弊社の育成アプローチをお話しします。 ポイントは2つあります。 技術面 ● 広く浅く、全体像のイメージを持つ(→拡げていく) 組織面 ● 1人ではなく複数人(チーム)で取り組む 14

Slide 15

Slide 15 text

前職 ポイント① 広く浅く、 全体像のイメージを持つ 15 15

Slide 16

Slide 16 text

前職 「広く浅く、全体像のイメージを持つ」とは 今までは、その技術のエキスパートを目指して、1つずつ確実に自分のモノにして きました。 ただし、クラウドネイティブ技術は1歩に時間をかけすぎると、バージョンアップ などにより周囲の環境やそれまでの道程が変化し、進めなくなります。 また、SaaSはバージョンを指定できないことが多いので、立ち止まるどころか 後戻りする恐れもあります。 16

Slide 17

Slide 17 text

前職 「広く浅く、全体像のイメージを持つ」とは 今までの価値観を変えます。 ● エンジニアの価値観として、技術の習得は「深く掘り下げる」イメージが 強いですが、このイメージを「広く浅く」習得するイメージに 変えていきます。 17

Slide 18

Slide 18 text

前職 「広く浅く、全体像のイメージを持つ」とは 18 クラウドネイティブ開発の全体像を広く浅く体験することで、クラウドネイティ ブにシフトした世界観がどのようなものかイメージを持ちます。 それにより、何から手を付けていけばいいのか道筋が分かり、目指すべき姿もつ かめてきます。 ● クラウドネイティブ開発の全体像 ○ Webアプリケーションを仮想マシン上で構築してから、 Docker、DockerComposeに移行しつつ、テスト自動化やCIを構築し Kubernetesに移行します

Slide 19

Slide 19 text

前職 「広く浅く、全体像のイメージを持つ」とは 19 ● 弊社のクラウドネイティブ開発の全体像(研修としても提供中) ○ 仮想マシンで移行前の環境を構築 ○ Dockerで環境構築 ○ DockerComposeで環境構築 ○ DBのコンテナ化(コンテナ連携) ○ テストの自動化 ○ リポジトリ連携(Git、Dockerイメージ) ○ CIの構築 ○ Kubernetesへの移行

Slide 20

Slide 20 text

前職 ポイント② 1人ではなく 複数人(チーム)で取り組む 20 20

Slide 21

Slide 21 text

前職 「1人ではなく複数人(チーム)で取り組む」とは 例えば、自身の役割での価値を上げるため1人でストイックに頑張るのではなく、 協力し合いながらチームで取り組まないと、クラウドネイティブにシフトするこ とが難しいです。 なぜなら、クラウドネイティブの技術範囲は広く、それに比例して、影響範囲や 関わるエンジニアが増えるため、1人でどうこうできるものではないからです。 ● 自身のエンジニアとしての価値を高める/競争に勝つために、自分が1人で頑 張るというイメージを変えていきます。 21

Slide 22

Slide 22 text

前職 1人ではなく複数人(チーム)で取り組む 複数人(チーム)で取り組むと、深掘りする余裕が生まれてきます。 それをチーム内で互いに知識を共有することで、「広く浅い」から「広く深い」 知識に変わっていきます。 22 「呼吸」 するように 学ぼう

Slide 23

Slide 23 text

前職 1人ではなく複数人(チーム)で取り組む 1人では、その担当領域すら変えることは難しいです。 複数人で取り組むことで、技術の変化を組織の変化へ繋げられます。 23

Slide 24

Slide 24 text

前職 アンチパターン クラウドネイティブの全体像を イメージせず、1人で進める 24 24

Slide 25

Slide 25 text

前職 アンチパターン 今までにあげた、クラウドネイティブエンジニア育成のアプローチに対する アンチパターンが以下になります。 ● 全体像のイメージを持たず、1つの技術を深く掘り下げる ○ 1歩に時間がかかり、パフォーマンスを発揮する前に状況が変わる ● 1人で頑張る ○ ただの個人努力になってしまい、業務に反映できず終わる ○ 疲弊するだけ 25

Slide 26

Slide 26 text

前職 前職 クラウドネイティブエンジニア育成の アプローチまとめ 26 26

Slide 27

Slide 27 text

前職 クラウドネイティブエンジニア育成のアプローチまとめ ポイント① 「広く浅く、まず全体像のイメージを持つ(→拡げていく)」 ● 何から手を付けていくべきか、道筋が分かる ● クラウドネイティブ技術の三角食べをし、広く浅く、それなりに触れる技術 領域を拡げていく ○ 1つを食べつくそうとしていると、その間にメニューが変わるので注意 27

Slide 28

Slide 28 text

前職 クラウドネイティブエンジニア育成のアプローチまとめ ポイント② 「1人ではなく複数人(チーム)で取り組む」 ● チームでカバーする技術の範囲を広げていくと、 その時点でのパフォーマンスが出せる ○ 得た知識や経験をチームで共有することが必要 ○ ビジネス的にも機会が増える 28

Slide 29

Slide 29 text

前職 ご視聴ありがとうございました。 29