de:code 2019 参加してきました!! - Day 2 -
続編です。
Day 1はこちらです
2日目は前日のお尻の痛みとの戦いです。
むしろもう麻痺してしまって何も感じない程ですが…
張り切っていきましょう!!
注意:出来るだけまとめはしましたが…
書きたい事がうまくまとめれてないので長いです。
1時間前に会場に着いたのですが、既にかなりの行列で先頭が見えませんw

DT07:.NET とクラウド ネイティブ ~ 本格化するクラウド移行とそのアーキテクチャ (前編)
Microsoft グローバルブラックベルト チャックさんこと井上 章さんのセッションです!
もちろん最前に陣取って拝聴させて頂きます。
セッションは前後半に別れており前半は.NET5のロードマップと現存するアプリケーションの今後の展開の紹介です。
Buildで紹介された”.NET5”のロードマップ
2年に一度メジャーアップデートして行くみたい

マルチプラットフォーム開発
.NET Core 3.0 Preview 5
Blazor
- Browser + Razor
- OSSのSPAフレームワークでC#をブラウザ上で実行可能
- C#をJavascriptにトランスパイルしている訳ではなくて、”.dll”をブラウザに読み込みILを解釈し実行しているらしい
- サイズが大きくなりがちなので初回実行は重たい
Client-side-Blazor
- dllファイルがブラウザに落ちてくる
- 作り方によってはオフライン実行が可能に!
Server-side-Blazor
- dllファイル落ちてこない
- SignalRでサーバーサイド側とバイナリ通信
- Visual Studioでデバッグ可能
- こちらが先にGAされるみたい
- ページがコンポーネント化されているので簡単呼び出し
gRPC
Service Worker
- バックグラウンドで動作するイベント駆動型Javascript実行環境
- プッシュ通知
-
オフラインキャッシュ
C#フルスタックでの開発が可能
frontend
Blazor
backend
.NET Core
serverside
gRPC
Service Worker
.NET 5 これから

- ランタイム、ベースクラスが統一される
- .NETCore Xamarin は Monoベースなので共通化
- ASP.NET Forms → Blazor
- WC → gRPC for WCF server and remoting
- WF → Open source core workflow for WIndows workflow
.NET Frameworkどうなるの?
- .NET Framework4.8が最終メジャーアップデート
以降はOSのライフサイクルに従う - だからと言って無理に既存のアプリケーションをリプレイスするべきではない
- 新規開発→.NET Core で作ることが好ましい
DT08:.NET とクラウド ネイティブ ~ 本格化するクラウド移行とそのアーキテクチャ (後編)
続いて DT07のセッションの後編です。一度外に出されて再入場ですw
後半はCloud Native、マイクロサービス、DevOps、クラウドプラットフォームへのマイグレーションのお話です。
冒頭に、大量のリクエストに自社のサーバーを心配する上司と、何事もなかったかの様に椅子に座っているエンジニアという2002年に放送されていたMicrosoftのテレビCMからスタートです!(動画みつからなかったーw
AzureはIaaS〜PaaSまでをサポート

Cloud Native
- クラウドの様なダイナミックでモダンな環境においてコンテナ、サービスメッシュ、マイクロサービス、宣言的、API、自動化の様な技術やアーキテクチャを使って回復性、管理力、監視・問題監視能力があり、変化に強い、疎結合されたシステムを実現する

Web App for Containers
- Dockerコンテナの実行基盤として最適化されたPaaSプラットフォーム
※シングルコンテナである事
Microservices
AKS
- Azure Dev Spaces
開発時に独自環境を準備することなく自分専用のネームスペースにデプロイ〜デバッグするインナーループを作成
ダイレクトコミュニケーションの課題
.NET マイクロアーキテクチャリファレンス
Migration
- アプリのモダナいズとクラウドネイティブ
- とりあえずPaaSにする(アーキテクチャは変えない)
- サーバーレス、マイクロサービス
.NET Framework → WebApp
.NET Core → LinuxContinar
勉強の為に購入しました!!

TOYOTA×HoloLens体験ブース
こちら出張報告用ミッションです。
写真撮られてたらしく、口あけっぱでとても残念な顔してますねw

コンテンツは全部で4つ

プリウスを利用して体験出来るみたいです。

※一番見たかったDinamics 365 Guides使った作業手順指示は今回は時間の関係上、見せれないとの事w
コンテンツ
- MR×AI 作業チェック
HoloLensを使って撮影したエンジンルームの写真をCognitiveServicesを使って作業チェックを実施。オイルキャップ等の閉め忘れを視覚的に表示する。 - Energy Flow 機能説明
お客様に対してハイブリッド車のメインバッテリ〜Frモーター〜タイヤまでのエネルギーの伝達状態を視覚的にお伝えする為にとの事。確かに回生ブレーキとか言われても何言ってんのってなりますもんねw - Wire Harness 配線図
これはサービス担当者がドアの配線図を修理書を見ずに把握する為のもの。
ドアの開閉にイメージが追従しないので、条件付きなのが残念ポイントw - DInamics 365 Guides 作業手順
例えばサービスでドアをバラしたいと思った時に、通常であれば修理書を見ながらドアを決められた順番通りに取り外して行くのだが、次に行うべき動作を視覚的に表示してくれる素敵機能。たまに面が裏返ってしまいイメージがドアの裏に行ってしまう事もあるみたい。
製造業におけるMRがもたらす効果は計り知れないものがあると思います。
現在はサービスにのみ特化されているみたいですが、設備保全、製品の組立/検査等活用できるシーンは無限大ですね。
ちなみに簡単なコンテンツはUnityを使って内製、それ以外は外注してるみたいです。
AI91:ノン コーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services × LINE メッセージで自動スケジュール登録
Miicrosoft MVP オルターブース 松本さんのオープンシアターでのセッション。
到着した時には既にオープンシアターは超満員でした!!
ちなみに松本さんは初日の基調講演でもMicrosoft MVP パーソナルスポンサーとしてスクリーンに登場されてましたね!

Logic Appsを使ってLINEからテキストor音声でGoogleカレンダーに予定を登録するチャットボットの作り方のお話。
これだけで即戦力間違いなしのアプリケーションですが、ここは流石の松本さん!
なんとコードを一切書かずに作成しますとの事!!!
利用するサービス
- LINE Messaging API
- Azure Logic Apps
- Cognitive Services
Speech Services
LUIS
内容はスライド見てもらう方が間違いなく伝わるので割愛しますが、
要件の定義からアプリケーション実装までをしっかりと体系立てて丁寧に説明されており、しかもデザイナーさんだけあって資料がめっちゃ”見やすい”、”わかりやすい”!!
資料の作り方や話し方、全てにおいて超リスペクトです!!
会場の様子
Blog
Microsoft Flow、Logic Apps、Power BI、Power Apps、こういったサービスをうまく活用する事で、欲しいものが欲しい時に時間をかけずに誰でもすぐ作れる んです。
しっかり内容を把握して適切に使いこなす事で、
- 間違いなく組織の仕事の仕方が変わります。
- 間違いなく生産性が上がります。
- 間違いなくやるべき事に(やりたい事)に時間を使える様になります。
このブログを見てくれている方がどれくらいいるかはわかりませんが、見て頂いて気になった方は是非お試しくださいm(_ _)m
DT04:「ここでしか聞けないマイクロサービス on AKS 導入のなま苦労話 by オイシックス・ラ・大地」
こちらは、オイシックス・ラ・大地株式会社長尾さんとマイクロソフト クラウド・デベロッパー・アドボケイト寺田さんのセッションです。
約1年前にHackfestを実施し、自社サービスをマイクロサービス化した経験から成功体験、失敗体験、失敗体験、組織づくりの重要性など、これから同じ様な経験をされる方に対し少しでも参考になる様にとお話いただきました。
成功体験
なぜマイクロサービスに?
- 2000年〜システムがツギハギで作成されていて限界を感じていた
- モノリシック、開発の積み重ねがもたらしたもの…
・開発/ローンチスピード
・品質担保
・スケール困難
→ NginX+JSP+Oracle - 5Days Hackfest
・サービスを切り出し短期間でのスキル習得ができた - K8s Hackerson
だいたい3日で使えるようになる!
MSA化してよかった点
- 開発
・サービスのサイズが小さくなるため、開発テストが容易に
・中途エンジニアの方のプロジェクト参加の速度
・巨大なモノリスのアプリケーションでバグが発生した時に対象箇所を修正した事で起こる影響範囲 - 運用
・スケールアウトが楽になったマニフェスト書くだけ
※スケールアップが必要なところにK8sは向かない
→適材適所がある!なんでもAKSはだめ
・App作りが変わった スケール前提で作成される
・ログ管理が楽になった スプリングブートで標準出力に履くだけで集中管理できる
バッチ処理を切り出した事で処理時間が半分に!!
苦労した点
- 開発
・既存モノリスと並行管理
AppのみAKS、DBはそのまま
→検証機関が終わればクラウドへ
週一でプロジェクトの進捗管 - 学習コスト
APIマネジメント等マイクロサービスに必要なサービスにかける時間 - インフラを意識した開発
- 何が正解かわからない
→正解はない!!
システム構成、人、データの性質によって違う
他社の成功事例をそのまま自社で動かすことはしない - 運用
・スプリングブートで標準出力したログを3rdパーティー製のログツール障害
・サーキットブレイカー、分散トレーシングIstioの学習コスト
・各サービスの適切なクラスタ配置
→上限100ノードだが、せっかくAPPレベルでマイクロサービス化しても一つのクラスタに突っ込むとモノリスと同じ - K8sの更新はめちゃくちゃ早い!!!!
20-30ノードくらいのミニサービスで壊れてもいいシステム作りの方が運用が楽
デザインoaフェーラー - AKSのバージョンアップでの不具合
ノードが追加できなくなり、クラスタの作り直し - 構成変更による風具合
攻勢変更するとノードが作成できない
直近の課題
- オンプレOracleとの連携
・オラクルDB呪縛
・キャッシュとキューで対応
・オンプレ版AKSに期待・・・
Azure Stack お高いw - マイクロサービスのアーキテクチャパターンはたくさんある
実際にやってみて理想と現実の乖離は?
- 理想
Polyglot Language!! - 現実
メンバーがJavaerのみなので・・・
将来的には多言語対応していきたい - 1ノードあたり30はしんどい。
AZコマンドでポッド数増やすとIPが枯渇したw - 日本語のサイトでは情報の信頼性が低い
質の良い新鮮な情報を取得したい場合は、本家の英語サイトを見よう
なぜ乗り越えられた?
- モノリスの開発に比べると格段に楽
- トラブルが起きることを事前に想定していた
- 開発、運用のメリットが大きい
自動テスト
複数サービスを集約してデプロイしていたがサービス単位でデプロイできる
これから
組織的なところ ※マネージャーの観点から
- 組織づくりの重要性
エンジニアが足りない
→優秀なエンジニアは宝と感じた - いい人材を採用するために
エンジニアが楽しめる環境
→技術選定 - コミュニティ、イベントの開催、イベント登壇
自社アピール - 新規でこられた方がどうやってキャッチアップする?
開発環境/テンプレートの準備
チーム開発を主流化
モブプロを採用
情報をキャッチアップする際に最適
属人化を防ぐことができる - 社内ハックフェスト
- 社内勉強会
やる前後の違い
- ブランチ戦略の整備
GitHubフローをベース - CI/CDの整備
- APP品質管理チームの設定
これからの方へアドバイス
Blog
実際にMSA化を体験されたオイシックスさんの生々しいお話が聞けて本当に参考になりました!!…今後自社で間違いなく同じ道を歩むと思うので。
今回、MSA化という難所を乗り越える為にマイクロソフトやオルターブースという他社の力を借り乗り越えた事で、結果サービスとしての質の向上やチームの信頼関係、技術力の向上ができたという事が財産になると思います。
すごく心に響いた熱いセッションでした!!
MW02:Azure Serverless を活用したリアルタイム Web のすべて
こちらはMicrosoft MVPのしばやんこと芝村達郎さんとMicrosoft GBBチャックさんのセッション!
しばやん×チャックペアのやり取りがなんかほっこりします。
- 基調講演のServerlessからService Fabric消えてるけどまだあります
- Serverlessにはコンテナを高速、簡単に実行するACIが重要
- 昔はページ遷移するだけの単純なWebアプリケーションで良かったが、今はUXの観点からWebフレームワークを使ったSPAが主流
Vue.jsが最近熱い - 他のユーザーの行動がリロードなしでリアルタイムで反映される
Pull型→Push型への転換 - UXを改善するにはリアルタイムWebを利用するのがベストプラクティス
リアルタイムのインタラクションが重要 - リアルタイムなWebアプリを実現するには?
イベントドリブンで効率的に
gRCP/Websocketを利用してPush型に
Azure Serverlessを利用して簡単スケーラビリティ - Azure Serverlessを活用
スケーラビリティを考慮した設計に - イベントドリブンなAzure Serverless
EventGrid:フィルタリングやルーティング、リトライを実行(Hub、GW的な役割)
CosmosDB:ChangeFeedを利用する事でアトミックで順序が保たれたキューに
AzureFunctions:Premium利用でイベント単位でのスケーリングができるように
KEDA:K8s上でイベントドリブン+オートスケーリング、Kafka/Queue - リアルタイムWebの実装
何か一つのサービスに時間をかけすぎてサービス本体がおろそかになるくらいならフルマネージドを導入するべき
AzureMonitor、ApplicationInsightは必須
イベント処理はステートレスで設計する
どうしてもステートフルな処理が必要であれば、DurableFunctions
Blog
自身の業務でコーディングしている時に何度もしばやん雑記に助けられています。
今回のセッションでしばやんさんが仕切りに発言されていた通り、リアルタイムWebの実装はUXの向上に直結していると思うので是非とも押さえておきたいと思います!!
休憩…
この時間帯だし、お昼食べ損ねた事もありミスド食べながら休憩してると色々な方に
話しかけて頂きましたm(_ _)m
本当にありがたい…( ; ; )
オルターブースの加藤さんとde:code 2019オリジナルフォトブースで記念に一枚パシャり!!

マインクラフトを使った学習
EXPOでマインクラフトを使った教育についてお話を伺ってきました。
というのも我が家の長男が現在小学校1年生でして、通っている小学校では2年生から簡単なプログラミング教育が始まるとの事。
小学校でどの程度の教育が行われるのかはまだ謎ですが、せっかくNintendo Swichで毎日と言って良いほどマインクラフトをやっているのもあるので、PC版のマイクラに切り替えてPCの使い方も覚えさせてみるのも…と考えています。
価格はサブスクリプションではなく、3,000円でユーザーライセンスを購入するのみ!
しかもマインクラフトの中でピタゴラスイッチ的なプログラミングと化学まで習う事が出来るとか即買いですね!!
まぁ、無理にやらせても続かないし楽しくないだろうから興味を持っているマインクラフトをやってるうちに気がついたらPC使える様になってたーってのが狙いですw
MW51:C# ドキドキ・ライブコーディング対決 @ de:code - ONLY C#!! Blazor Web 開発バトル -
de:code 2019最後です!!
Microsoft MVP for Developer Technologiesの小島さん、鈴木さん、室星さん。
そして、元MVPの石井さんの4名でのセッションです。
石井さんが司会+お題を出題、残る3人がコーディングをして競い合うといもの。
会場は始まる前からゆるりとした雰囲気で何やら面白い事が始まりそう…と思っていたらw

いきなりのハードルの高さwwwww
こういう時ってテンパってるってのもあるし、見られながらってのもありさらにテンパって積みますよね。
挑戦者の画面を見ていると地道にif文作っている方もいれば、CultureInfo を使ってた方も!!こういう時に適切なクラス呼び位出せる人ってすごいなと思いますw
次のお題は全員で”7並べ”対決をしようとの事で、予め作成して来たアルゴリズムの説明と、Blazorの説明バトルが…
ルール
C#のみ+パスは3回まで、チートしたらBAN
石井さん:正攻法で勝つ
小島さん:MLを使い確率にかける
鈴木さん:パスの回数を書き換えて無限パス+あとは地道に勝つ
室星さん:DOMを書き換える
チートチェッカーを乗り越え鈴木さんの勝ち!!

小島さんの資料見つけましたw
皆さんの掛け合いがとても面白いセッションでした!
ふくてんでもいつかやってみたいですね^^
de:codeの2日間を通して
- これでもかってくらい情報を頭に叩き込んだ2日間でした
技術情報は勿論の事、セッションをされている方の話し方や立ち振る舞い、資料の見せ方に至るまで全てが勉強になりました。
がっつり真似させて貰おうと思います( - 本当に色々な方とお話出来て良かった
今年でde:codeは4回目の参戦ですが、来るたびに色々な方と知り合えたり、以前繋がった方に声をかけたりかけて頂いたり…本当ーーーに有難いです><。… - 今回、EXPOでオープンシアターでのセッションやハンズオンで活躍されていた方達を拝見させて頂き、本当にカッコイイと思いました。
自身もFukuoka.NET(ふくてん)のオーガナイザーをさせて頂いてはいるものの、こんなに活躍出来ているか?アウトプット出来ているか?と自問自答しながら反省した点もあり、今後しっかりとアウトプットしていこう!と思いました。 - 2日間本当に楽しめました!!
本当にイイ刺激頂きました!!
皆様、ありがとうございましたm(_ _)m
Twitter de:code Day 2 まとめ
めっちゃ長々と書いてしまいましたが、最後まで読んで頂きましてありがとうございましたm(_ _)m
明日はオルターブースさんのde:code振り返り会が開催されます!
楽しみ😃