2020年7月13日月曜日

私の「de:code夏まつり #3」[完全版]

2020年7月8日(水)にオンラインで開催された「de:code夏まつり ~よりコミュニティを楽しくするためのコミュニティのすすめ #3」にて、タイトル「AzureとSDKとGoと私」で発表をさせて頂きました。


以下、自分目線ながらそこに至るまでの経緯を記録として。

de:code 2020

今年もマイクロソフト主催のITエンジニア向け技術カンファレンス「de:code 2020」が開催されました。しかしながら世界的なコロナウィルスの流行により今年はデジタルイベントとして6月17日(水)から7月17日(金)までの1ヶ月間のオンライン開催となりました。

de:code夏まつり

日本では、コミュニティサイドから「de:code 2020」を盛り上げたり楽しんだりしようとMicrosoft Open Tech Night主催でコミュニティイベント「de:code夏まつり」が6月に2回、7月に1回開催されました。

なぜ私が発表することになったのか?

2020年6月24日(水)に第2回の「de:code夏まつり」が開催されました。

その中で「MS Techクイズまつり」があり、第5問で「Azure Functions(3.x系のランタイム)でサポートされていない言語はどれ?」という問題が出題され、その答えは「Go」でした。

私的には「おぉ、マイクロソフトさんのイベントで"Go"の二文字が!」と喜んだのも束の間、Goがサポートされていないことへの悔しさが湧き上がりました。


2014年にサティア ナデラ氏がマイクロソフトCEOに就任して以降、マイクロソフトのOSSへの貢献や対応には目を見張るものがあり、Goに関してもAzureでの対応が多くなりました。

  • Azure App Service:GoでのWebアプリ作成
  • Azure SDK:Goのサポート
  • Azure Kubernetes Service:Go製OSSの採用(Docker、Kubernetes、など)

しかしながら、他のプログラミング言語と比べて「対応サービスの少なさ」「正式リリースまでの長さ」「公式サイトへ掲載されるまでの遅さ」など、Goには出遅れ感があります。

原因のひとつとが「Goの開発者」および「Goで使うユーザー」が少ないという現実です。

私は「マイクロソフトにはGoもしっかりサポートして欲しい!」と願っており、マイクロソフトとGoの繋がりをもっと知ってもらおうとツイートしたり発表したりしていました。

2018年からは、その思いは大きくなり、できるものなら「de:code」でGoを発表したい!と思うようになりました。2020年も「MS Techクイズまつり」のAzure FunctionsでのGoの未サポートを見て思わず「やはりde:codeでGoを発表したい!」とツイートしました。

その日の夜遅く、タマコナさん(@tamagawaconan)と「de:codeでの発表、出来るものなら」「口にしたことは、実現しますよ。」と話をしていました。


その直後、突然ちょまど(@chomado)さんから「de:code夏まつりでAzure SDK for Goについて発表できませんか?」とのお声掛けを頂きました。


この時は「会話をしていたすぐ後に」「ちょまどさんから」「de:code関連イベントで発表」という予想だにしなかった流れが一気に押し寄せて、何が何だかで驚きまくり動揺しまくり。


私はちょまどさんをフォローしていませんでしたが「こんな奇跡は二度と来ない!」と神速でフォロー&快諾して「de:codeでの発表」へ導いて頂くことになりました。

 
私とAzure SDK for Go

マイクロソフトの有識者を認定する制度「MVP アワード」において、唯一Goが絡める部分ということもあり、Azure SDK for Goは2016年のv8のころからウォッチしていました。

2020年に入って本格的にやって行こうと、ブログやQiitaに記事を投稿したり、ツイートしたり、GitHubでドキュメントを日本語化したりコントリビュートしたりしています。

 
発表スライドの作成

イベントにはITエンジニア以外の方々も多く参加されるため、Azure SDK for Goはニッチ過ぎると考え、Goの紹介やAzureやSDKや私のことを交えて、お伝えしたいことをまとめることにしました。

発表時間は10分ということで、スライド作成後に何度かリハーサルを行なったのですが、12分の壁が超えられませんでした。発表スライドは後から公開して見て頂くことが出来るため、内容の削除は行わず、当日は少し早口で詳細な部分を読み飛ばして進めることにしました。


2日間のリハーサル

2020年7月6日(月)、7日(火)の2日間、オンラインにて全体リハーサルが行われました。

1日目は、主に各発表者のスライドや音声の確認、YouTube Live画面の調整などが行われました。今回はMicrosoft Teamsを使っての接続で、私は使うのが初めてでしたので、そちらの操作の確認なども行いました。

テキストで少しやりとりをしていたちょまどさんを含めて、皆さまと顔合わせをするのは初めてで、画面越しに見ても皆さんの「つよつよさ」が伝わってきました。緊張しつつも会話できるところでは声を出したり笑ったりするなどして、少しでも早く馴染めるように心がけました。


確認事項は1日目で完了していたのですが、新参者のことを少しでも見知りしておいて頂けた方が良いかと思い、2日目も参加しました。2日目は「MS Techクイズ」のテスト運用も行われ、準備や技術や担当者の方々のすごさを垣間見れました。


進行役のおだしょー(@MS_odasho)さんからは、顔見知りの皆さんと分け隔てなく話かけて頂き、スムーズに会話をしたり確認事項をこなす事ができました。

天の声役(?)のRie(@Rie_Moriguchi)さんには、内輪のハッシュタグ(?)の存在が知られていてビックリしました。


Tadaさんチームの皆さま、配信の準備、調整、対応、お疲れ様でした!m(__)m

いざ、開催!

2020年7月8日(水)、ついに開催日となりました。

雰囲気作りの意味合いも含めて、関係者は開始1時間前に集合しました。

この時、おだしょーさんによるSpecial GuestのAI「りんな」の紹介テストが行われたのですが、ギリギリまで音声を出せずに焦りまくっていたおだしょーさんを皆さんでフォローすることで、リラックスできたり一体感が生まれたような気がしました。

オープニングでは、そんな「りんな」の音声出力に失敗するも、二度目に成功。


続いての「MS Techクイズ」では150人以上の方々が同時参加されて、ワイワイとお祭り気分が味わえました。

 
いざ、発表!

マイクロソフトな皆様にGoを知って使ってサポートして頂きたく、日本のGopherを代表する勢いで挑ませて頂きました。



元々発表スライドのボリュームがあったのと、私が発表する時点で時間が押していたため、拍車のかかった早口になってしまったことはGo了承ください。多少なりとも緊張していたのも理由のひとつかも。


発表後にJourneyman(@beajourneyman)さんがまとめられたTogetterにて自分の発表について確認させて頂きました。


個別で前向きなツイートを頂いたり、概ね良い方向に捉えて頂けたようで、ツイートして頂いた皆さま、ありがとうGoざいます!q@w@p



日本マイクロソフト公式TwitterのひとつであるMicrosoft Tech(@msdevjp)さんに「Go」をツイートして頂いたことは「Microsoft x Go」の大切な一歩を踏み出せた大事な証となりました。


皆さんの発表

改めて発表者の皆さんを見てみますと、MVPの方、コミュニティの関係者、社長さんなど「つよつよ」で「すごすご」の方々ばかり。お目当ての発表を見られた皆さんは、きっとご満足されたことでしょう!

 
クロージング

発表公募の第4回の開催告知のサプライズに、おだしょーさんの「じゃあな!」にはコミュニティ愛を感じました。

 
初夏の夜の夢...

携わってくださった皆さま、感謝ありがとう!引き続き、マイクロソフトにGoをサポートして頂くべく、Azure SDK for Goを中心にまったりと活動して参ります。

サンキューコミュニティ!フォーエバーコミュニティ!q@w@p

P.S. 個人的には、ちょまどさんから面と向かって「岩田プロ」と呼ばれる日が来るとは夢にも思っていませんでしたね...q@w@p その後、皆さんからも呼んで頂けました。

2020年7月10日金曜日

Azure Functions for Goの歴史

Azure Functionsは、関数単位で処理を実行するAzureサービスです。


2020年6月現在、Azure Functionsは

  • C#, JavaScript, F#, Java, PowerShell, Python, TypeScript

を正式サポートしていますが、残念ながらココにGoはありません。


Azure/azure-sdk-for-goにAzure Functions for Goに関するイシューがあります。


このイシューを読み進めると、Azure Functions for Goの歴史を垣間見ることができます。

2017年12月、当初、Private Preview版への招待が開始されました。


2018年頃は、開発が停滞したり再開したりしました。

2019年10月、開発担当者がマイクロソフト社を辞められていました。

2019年12月、別の実装方法が模索されることになりました。

2020年5月、その答えが「Azure Functions custom handlers」でした。


私もリアルタイムにその流れを目撃していたのですが、azure.microsoft.comに一瞬ブログ記事が掲載されたのですが、すぐに取り消されてしまいました。

現在「Azure Functions custom handlers」はPublic Previewであり、正式リリースされた暁には、公式サイトにも再度アナウンス記事が掲載されることでしょう。

Goなサンプル