エンジニア100人でAWS学習コンテンツ<DevAx Academy MONOLITHS TO MICROSERVICES>を受けてみた(※日本初)

開発本部 Chief Technical Leaderの佐々木です。 2021年6月~9月にかけてDevAx Academy MONOLITHS TO MICROSERVICES という学習イベントを実施しました! 本記事ではイベントについてご紹介しようと思います。

DevAx Academyとは?

以下からの引用&翻訳ですが、「DevAxチームがお客様の開発チームと長期間直接連携して、ワークショップと共同開発セッションのカリキュラムで社内の開発コミュニティをスキルアップします」とのこと。 workshops.devax.academy

具体的には以下のようなものでした。

  • AWSのDevAx講師による全8回の勉強会
  • 今回はC#/.NETの環境で実施(ほかの言語の選択肢もアリ)
  • 勉強会は講義とHands onを織り交ぜたもの
  • Zoomによるオンラインでの開催(コロナの関係で・・・)

尚、DevAx Academy MONOLITHS TO MICROSERVICESのデリバリは弥生が日本初とのこと。 多い日では100人を超えるエンジニアが参加したのですが、100人という参加者数はAWS社内でも話題になるくらいの規模の大きさだったそうです。
私は2021年3月入社なのですが、弥生規模の会社で研修にここまで投資する会社は初めて見ました。100人×6.5時間×8回=約32人月って凄いですよね

尚、弥生では講師を呼んで大規模に実施しましたが、コンテンツは公開されているので自習も可能です

Monoliths To Microservices :: DevAx::Academy - Monoliths To Microservices

テーマは以下の8つです

  • 第1回:モノリスを移行する:6.5時間
  • 第2回:アプリケーションリリースの自動化:6.5時間
  • 第3回:マイクロサービスを作成する:6.5時間
  • 第4回:データのリファクタリング:6.5時間
  • 第5回: メッセージングとイベント駆動:6.5時間
  • 第6回:マイクロサービスのための認証認可:6.5時間
  • 第7回: コンテナ Immersion Day:6.5時間
  • 第8回: GameDay:4.5時間

※ 第7回の本来のテーマはAI/MLでしたが、弥生のエンジニアからコンテナの学習希望者が多く上がったため内容を差し替えました

それぞれの内容について簡単にご紹介します。

学習した内容

1. モノリス を移行する

IIS で稼働しているウェブアプリケーションを Elastic Beanstalk を利用して、AWS 上へ移行します。移行後の変更を AWS Toolkit for Visual Studio や AWS CLI を利用して、デプロイします。 とりあえず、オンプレミスやAzure上で動作しているアプリケーションを最小限のコストでAWSへ移行したい場合には、特に参考になります。また、Windows OS や Azure での開発に慣れていて、AWS 環境を試してみたいという場合にも良いと思います。

2. アプリケーションリリースの自動化

「 1. モノリス を移行する 」 で、Elastic Beanstalk へ移行したアプリケーションを CodePipeline や CodeDeploy などのサービスを利用して、デプロイを自動化していきます。 アプリケーションのデプロイを自動化するには、どのようなサービスをどのように利用すればよいのかについて参考になります。継続的インテグレーション/継続的デリバリー(CI / CD)に興味がある場合にも良いと思います。

3. マイクロサービスの作成

このモジュールでは、Lambda というサーバーレスを実現するサービスで、関数の作成していきます。また、S3 といった他サービスとの連携して、関数を起動したりします。そして、前のモジュールのアプリケーションの一部機能をLambda に移行します。 Lambda というサービスについて知りたい、Lambda を利用したマイクロサービスの作成方法について知りたい場合には、参考になります。また、AWS サーバーレスアプリケーションモデル (SAM) について知りたい場合も参考になります。

4. データのリファクタリング と ワークフロー

単一のRDB(Relational DataBase)に保存されているデータをマイクロサービスにアーキテクチャに適したデータストアに移行していきます。移行するデータストアには、DynamoDB を使用します。また、AWS Step Functions を利用したマネージドワークフローを作成していきます。 単一のデータストアに保管されたデータを分割について知りたい場合は参考になります。分割したデータを同期などするために AWS Step Functions の利用も検討することができます。

5. マイクロサービスメッセージング & EVENTING

このモジュールでは、Amazon SNS、SQS、Kinesis のような非同期にメッセージを交換するサービスについて学んでいきます。

異なるサービス間で非同期に情報を受け渡す際、AWSのサービスを使ってどのようにすればよいのか知りたい場合に適しています。

6. 認証された単一ページアプリケーション (SPA) の作成

Amazon Cognito を使って、Webアプリケーションに認証を追加する方法について学んでいきます。また、マイクロサービスであるLambda関数へのCI/CDの導入について学んでいきます。 Amazon のサービスを使って、Web アプリケーションやモバイルアプリケーションに認証を追加する方法について知りたい場合や、CI/CDの導入の仕方について知りたい場合に適しています。

7.コンテナ Immersion Day

このワークショップでは、Amazon ECS (Elastic Container Service)、Fargate、EKS (Elastic Kubernetes Service) というマネージドなコンテナ実行サービスの利用方法について学んでいきます。 コンテナ技術をつかって、ウェブサービスの構築を検討していて、AWS でのコンテナ実行するサービスを比較したい場合に参考になります。

8.GameDay

詳細な内容についてはネタバレ防止のために伏せますが、4名のチームに分かれてマイクロサービスをデプロイ、修正、運用します。 ある条件を満たすと点数が加算されて、ゲーム終了までの得点を競うゲーム形式のWorkshopです。

ゲーム中は様々な障害が発生するので実際の運用をイメージしたトラブルシューティングの技術について学ぶことが出来ます。

実施してみてどうだったか

弥生はオンラインサービスやデスクトップアプリ等の様々なエンジニアが在籍しており、AWSやマイクロサービスについての理解度についてもまちまちです。 今回DevAxを実施したことにより、エンジニアのAWSに対する理解度の底上げを図ることが出来たと感じています。理解度についてのアンケートを見るとDevAx実施後は平均値が向上し分散が小さくなっていました。 今回は大人数でのオンライン開催でサポートに不安を感じていたのですがAWSのSAの皆さんのサポート、弥生の部署を跨いだエンジニア間の助け合いが活発に行われたことにより回を重ねるごとにスムーズになっていった事が印象的でした。

お知らせ

弥生では一緒に働く仲間を募集しています!
herp.careers