はじめに
こんにちは。エムティーアイでシステム運用を担当している遠藤です。
先日、10/23〜10/25の3日間で、マイクロソフトのOpenHackというイベントに参加してきました。
内容の詳細については非公開との事なので、
イベントの概要と参加して得た事を書こうと思います。
会場は港区 日の出にあるTABLOIDさん
①新しい形のハックイベント「MS OpenHack」
MS OpenHackはマイクロソフトが去年から新しく始めた完全招待制の参加型イベントです。
今回のテーマは「Serverless」でした。
4人1組のチーム制で、与えられた要求をAzureを駆使して1つずつ実現していきます。
今回のイベントのために海外からMSのデベロッパーの方が大勢来ており、
チーム毎にアドバイザーとして付いてくれました。
このハックイベントの特徴は以下の点だと思います。
- 実際の開発シーンでありそうな要求を実現するための解決策を考える。
- アドバイザーの方はヒントをくれるが答えは教えてくれない。
そのため、やり方を全て教えてくれるハンズオンや、
作るものから自分達で決められるハッカソンとは違い、
「課題解決」という側面が非常に強かったです。
弊社でも、ハッカソンを定期的に行っていますが、
この形式も面白そうだなと思いました。(準備が大変そうですが)
参加者は100名超えでした
②課題解決におけるモブプロ方式の優位性
私たちのチームでは、モブプログラミングの方式で実装を進めました。
実際にコーディングをしていたのは一部のみでしたが、
1人が作業者となり、1つのモニターを見て議論しながら進めました。(作業者は交代制)
最終日になって分かったのですが、どうやら他チームより進みが早かったらしく
MSの某エヴァンジェリストの方が声をかけてくださり、進め方が良かったのだと感じました。
モブプログラミングの方式で進めたメリットとしてはこの辺りかなと思います。
- 自然と議論が増えるので楽しい。
- 情報が共有されるので知識レベルの偏りがなくなり全員学べる。
- 手が止まる時間が減り、トライアンドエラーを細かく繰り返せる。
手分けをして作業するより、考えながら試行錯誤する時間が多いイベントだったからこそですが、
プログラミング以外でも、思考錯誤が必要な場合にこのやり方は効果があると実感しました。
③Azureはサーバレスの機能が充実している
個人的には以下のサービスを新しく学びました。
- FunctionApp
- LogicApps
- Event Grid
- API Management
- Application Insights
3日間通してAzureに対して感じたのは「サーバレスのサービスが充実していて高機能」ということでした。
イベント駆動の処理を実装する際に、まずFunctionApp(AWSで言うところのLambdaのようなFaaSサービス)が思いつきましたが、
LogicAppsもかなり強力で、条件分岐やループ処理を含めたイベントトリガーのワークフローをGUIで簡単に組むことができます。
得たノウハウとしては、
まずはLogicAppsで組んでみて、実装したい処理が複雑で対応できないものをFunctionAppとして実装すると良さそうです。
非同期処理や、複数処理を待機して発火するような処理は作り方に悩みますが、
LogicAppsのBatchMessageや、FunctionAppのDurableFunctionで実現できそうです。
「この処理をするにはこのサービスでないといけない」というのはなさそうなので、
各サービスを知ったうえで、適材適所にベストな選択ができるようになりたいところです。
おわりに
Azureを知れば知るほど便利なサービスがたくさんあることを知り、もっと踏み込んで使ってみたいと思いました。
改めてマイクロソフトの皆さん、同じチーム皆さん、ありがとうございました!
今後さまざまなOpenHackを計画中とのことなので、機会があればまた参加したいです。