きなこもち.net

.NET Framework × UiPath,Orchestrator × Azure × AWS × Angularなどの忘備録

de:code 2019 × 2日目 × 振り返り

この記事の目的

この記事では、
de:code 2019を振り返ること
を目的としています。


本題

★.NET とクラウド ネイティブ ~ 本格化するクラウド移行とそのアーキテクチャ

www.microsoft.com
www.microsoft.com

2日目のセッションは、
Akira Inoue (井上 章) (@chack411) | Twitter
さんのセッションを聴講しました。このセッションは、前後編の2コマで構成されていました。
.NET Frameworkとを中心に、.NET coreの最新機能や、Blazar(クライアントサイド/サーバーサイド)のデモ、.NETでクラウドネイティブなシステムを構築するための情報など、様々な情報を得ることができたセッションでした。

いくつか気になったところをピックアップしてまとめておきます。

自己完結型パブリッシュの1ファイル出力

自己完結型のパブリッシュを実行することで、.NET coreがインストールされていない環境へもアプリケーションを配置し、実行することができるようになります。しかし、アプリの実行に必要なすべてのモジュールが入ったフォルダをコピーする必要があるので、ファイル数が非常に多くなります。これを、一つのファイル(EXE)にまとめて配布することを可能にするのが、Publishing Single EXEsオプションです。この機能は、.NET Core 3.0 preview 5から使えるようになったようです。
まだプレビュー段階なので、コマンドは変わるかもしれないとのことでしたが、現時点では以下のような/pオプションをつけることで1ファイルに圧縮した形でアプリケーションをパブリッシュすることができます。実行時には、圧縮されたファイルを展開してから実行することになるため、初回実行時のパフォーマンスは落ちますが、一度起動してしまえば、あとは圧縮しないバージョンと同様に動作させることができるとのことでした。
チョイツールを作ったときとかに、「これ適当なところにおいて実行してみて」って言えるお手軽なところが良いなと感じました。

dotnet publish -r win10-x64 /p:PublishSingleFile=true

引用:
https://devblogs.microsoft.com/dotnet/announcing-et-core-3-0-preview-5/devblogs.microsoft.com

ASP.net core のWEBサーバー

あまり意識しないで使っていたので、今日この情報を知ることができてよかった!という情報です。
ASP.net coreのWebアプリケーションを開発したとき、何のWebサーバーにのせて実行するかという点になります。ASP.net coreでは、kestrelとhttpsysの2つがサポートされています。

kestrelではhttpsysでサポートされている以下の機能が利用できないですが、.NET coreがサポートされているすべてのプラットフォーム/バージョンで実行がサポートされています。
Windows 認証
・ポート共有
・直接ファイル伝送
・応答キャッシュ

HTTP.sys は、Windows 上でのみ動作する ASP.NET Core 用 Web サーバーです。 HTTP.sys は Kestrel サーバーの代替製品であり、Kestrel では提供されていない機能がいくつか用意されています。

Kestrel は、ASP.NET Core 向けのクロスプラットフォーム Web サーバーです。 Kestrel は、ASP.NET Core のプロジェクト テンプレートに既定で含まれる Web サーバーです。

参考:
docs.microsoft.com
docs.microsoft.com

ここのあたりは、まだまだ学習不足で表面的な情報しか知れていません。ということで、以下の本で勉強していこうと思います!


gRPC

CNCFのTrail MapのStep8にあるやつです。
f:id:kinakomotitti:20190530214241p:plain
マイクロサービス開発をしていて、初めてgRPCに出会ったとき、どうやって実装するかわからないし、Step8まで到達するのはまだまだ先だから・・・と思って見て見ぬふりをしていましたが、ASP.NET coreで実装できるということを知りました。
浅はかな考えですが、【バックエンド】といえば、WEB APIしか考えたことがありませんでしたが、gRPCも選択肢としてあることを認識することができました。

クライアント フロントエンド バックエンド
Blazar WEB API gRPC
javascript MVC

参考:
grpc.io
docs.microsoft.com

.NETでのマイクロサービスアーキテクチャ

.NET Core と Docker のコンテナーを使用したアーキテクチャの設計と実装アプローチについてまとめられた書籍が公開されているようです。PDFでダウンロードでき、日本語も対応しているとのことでしたので、ASP.NET coreの本とあわせて学習を進めていきたいです!
docs.microsoft.com



★ランチセッション

www.microsoft.com
ランチセッションです。
結局聞くことがで気なくて悔やまれますが、こういうリーンスタートアップや、アジャイル開発をSIerで実施しようとしたとき、お客様とはどのような契約になるのかとても気になりました。
教えられない範囲かもしれないですが・・・



★ここでしか聞けないマイクロサービス on AKS 導入のなま苦労話 by オイシックス・ラ・大地

www.microsoft.com
ランチセッションを挟んで、3つ目のセッションでは、オイラ様でのAKSにまつわる苦労話を聴講しました。
AKSというか、kubernetesを使ったサンプルアプリ開発を経験したことがあるので、サンプルアプリ開発と本開発の差分を考えながら聞くことができました。
ここでも、気になったトピックをいくつかメモしておきます。

kuberntesの巨大なクラスターは作らない方がいい

これは、寺田さんの発表でよくお話されている点だと思います。
巨大なクラスターを作ることで、アーキテクチャを変えただけのモノリシックなアプリケーションとなってしまい、マイクロサービスのメリットが生かせなくなってしまうという点が問題であると指摘されています。
そのほかにも、kubernetesのバージョンアップの頻度が高く、バージョンアップ自体を無視できるものでもないため、バージョンアップにかかるリスク・コストも膨らんでしまいます。
また、そもそも、マネージドKuberntesのNodeの数や、Podの数に制約があるため、どこかで限界が来てしまうということでした。

これらのアーキテクチャについては、正解はないため、それぞれの組織・プロジェクトの特性にあったアーキテクチャを考えていく必要があります。そこが難しいし楽しいところですねw

これからのエンジニアの技術力について

一次情報。大事。



★コンテナ環境の永続化ストレージ問題を NetApp Kubernetes Service と Azure NetApp Files でさらっと解決

www.microsoft.com

数クリックで、Kuberntesのクラスタを構築することができるサービスらしいです。
AWSやAzureなどマルチなクラウドに対応している点や、Istioなどのkubernetesの周辺ツールも設定された状態で構築することができるという点が素敵だなと思いました。

とりあえずAzureで試してみよう。そうしよう。
cloud.netapp.com




★.NET Core マルチ プラットフォームの本質

www.microsoft.com
de:codeに参加するようになって、毎年聴講している荒井さんのセッションになります。
今年こそは理解するぞと意気込んでみましたが、ダメでした。
いくつかの情報はピックアップできましたが、まだまだ理解できる域には到達していませんでした。

より一層の研鑽が必要です(;´Д`)




★エンジニアの人生設計 ~どのようにキャリアを描いていけばよいのか~

www.microsoft.com
最後のセッションは、ライブコーディングのセッションと迷ったのですが、澤さんのセッションを選びました。
こういうことを考えるのが非常に苦手なので目を背けてきましたが、いい機会なので今日のお話をかみ砕いて自分なりに理解した後、「自分はどうありたいか?」について考えてみようと思います。

とりあえず、ぼーっと考えても進まなそうなので、最初のアクションとして、レジュメ(職務経歴書)を作って、自分の職歴を棚卸しするところから始めてみようと思います。



まとめ

英語って大事。