初めに
先日Microsoft主催のOpenHackのイベントに参加したのでどういったものかをご紹介させていただきたいと思います。残念ながら課題の内容は書けませんが、イベントの流れや良かった点を中心にお伝えします
OpenHackとは
OpenHackの公式サイトがあります。残念ながら日本語のページは無いようですが、Webサイト内にOpenHackの説明として下記記載があります。
Microsoft OpenHack is a developer-focused engagement that connects development teams (Open) with experts to tackle a series of real-world challenges through hands-on experimentation (Hack) in person or online (Virtual).
OpenHack provides a unique and fun upskilling experience for Microsoft employees, customers and partners. Participants work together in teams to complete challenges that increase in complexity and are actively engaged, requiring deep collaboration, as they learn together.
---------------------------------------------------------------------------------------------
Microsoft OpenHackは、開発者向けのイベントで、開発チーム(Open)と専門家を結びつけ、対面またはオンライン(Virtual)で実践的な試行(Hack)を通じて一連の実世界の課題に取り組みます。
OpenHackは、マイクロソフトの社員、顧客、パートナーに、ユニークで楽しいスキルアップの機会を提供します。参加者はチームで協力しながら、複雑さを増していく課題をクリアしていきます。積極的に参加し、深いコラボレーションを必要としながら、共に学んでいくことができるのです。(機械翻訳)
つまり現実社会を想定した課題を参加者一人一人ではなくチームで解決するハンズオンイベントです。そしてOpenHackは下記の8つのシナリオがあります。
- AI-Powered Knowledge Mining
- App Modernization with NoSQL
- Containers
- DevOps
- Migrating Microsoft workloads to Azure
- Serverless
- Modern Data Warehousing
- Security, Compliance,and Identity
今回私が参加したのはAI-Powered Knowledge Miningになります。社内に溜まっている知見をAIを使って収集し分析して検索できるようにするという内容になります。使う技術としてはAzure Cognitive Services、Azure Functions、QnA Maker、Language Understanding Service (LUIS)、Form Recognizer、Azure Machine Learningと記載がありますが、ほとんどがAzure Cognitive ServicesのAzure Cognitive Searchです。
参加方法や条件
基本的にはオープンなイベントなのでMicrosoftのサイトから申し込めばどなたでも参加できます。サイトには前提条件として
参加者は C#、JavaScript、Node.JS、Java などのプログラミング言語の知識が必要です。参加者は、REST/JSON インターフェイスを含む API (アプリケーション プログラミング インターフェイス) を介してさまざまなサービスがどのように相互作用するかについての基本的な理解が必要です。Azure の基礎に関する知識も必要。
とあります。APIを使ったことがない方や、Azureを全く触ったことがない方はなかなか厳しいかもしれません。C#、JavaScript、Node.JS、Java などのプログラミング言語とありますが後述している通り、言語は選べますのでいずれかが出来れば問題ないかと思います。こちらの前提条件には記載がないですがPythonでも問題ないです。むしろPythonが一番良いかもしれません。
プログラムの概要
言語:日本語
公式のサイトは英語ですがプログラムは日本語で用意されており、日本マイクロソフトの方が日本語で提供してくれます。
開催形式:オンラインでTeams会議を利用します。
日程:3日間で1日目は2日目は9:00-17:00、3日目は9:00-16:00となっています。
進め方など
今回参加者は4人でしたので4人1チームになり、その中から一人がDriverとなって画面を共有してコードを書いていき、もう一人がNavigatorとなって課題や、やることの整理をします。残りの2人もドキュメントを読みつつ意見を出し合って進めていきます。役割はキリの良いところや時間で変えていきます。
基本的には4人で休憩時間などのタイムスケジュールも含めてすべて決めて進めていきます。またコーチ役としてMicrosoftの方がずっと参加していてチームで行き詰った際に適切なアドバイスをしていただけます。
また、参加者の開発環境や得意な言語がバラバラなので最初に決める必要があります。今回、開発環境はVisual Studio Code、言語はC#と決めて、GitHubにRepositoryを作って進めていくことを最初に決めました。これが後々良かったなと思っています。
1つ1つの課題に対して成功基準というゴールが設定されていて、成功基準を達成すると次の課題に挑戦するということを繰り返します。そして、ある一定の数の課題をクリアするとバッチが貰えます。
良かったところ
Azure Cognitive Searchの理解が深まったところ
私はAzure Cognitive Search自体は使ったことがあったのですが、GUIで操作することが多く、今回REST APIで様々な操作をしたことにより、あいまいだった部分をより正確に理解することが出来ました。
便利な拡張機能を使えたこと
中盤でも記載しましたが、今回開発環境をVisual Studio Codeに決めたことにより、便利な拡張機能の活用が出来ました。
Rest Client
この拡張機能は、Visual Studio Code上でHTTPリクエストを送信してレスポンスが確認できるというものです。この拡張機能を使うことによって、言語に依存せず手軽にREST APIを試すことが出来ました。またコードをGitHubで共有できるのでDriver交代などもスムーズにできました。
Live Share
この拡張機能は、コードの共同編集機能で、一つのプロジェクトを複数人で編集閲覧できるものです。この拡張機能を使うことによって、Driverのコードを書いて他の人がコメントや注釈を書く事が出来ますし、他の人がコードのどの部分を見ているかもハイライト表示されるので、非常にわかりやすくに進めることが出来ました。
最後に
開発者向けのハンズオンイベントなので今後Azure Cognitive Searchを使って開発したい開発者の方にはお勧めです。また社外の方やマイクロソフトの方と3日間一緒に開発を進めるので開発手法であったり、情報のシェアの仕方であったりとAzureのプログラム以外も学びになったり刺激になったりする点が多かったです。
次回開催予定やお申込みは貴社をご担当されている日本マイクロソフトの営業の方へお問い合わせください。
今回ご一緒させていただいたチームの方やコーチの皆様ありがとうございました。3日間疲れましたが楽しく課題を進めることが出来ました。
上田 英治(日本ビジネスシステムズ株式会社)
エンジニアとしてインフラ構築、システム開発やIoT基盤構築等を経験し、現在はクラウドアーキテクトとして先端技術の活用提案や新規サービスの立ち上げを担当。
担当記事一覧