近頃若者のサーバー離れが深刻化しています
by
Mitsuzono Hiroto
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. 近頃若者のサーバー離れが深刻化しています 株式会社オルターブース 満園 裕人 古野 新悟
Slide 2
Slide 2 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 株式会社オルターブース エンジニア • C#とPHPを使ったWebアプリケーションの開発 • 自社サービスの開発もメインで携わる • 今年のISUCONダメだったので来年に向けて修行中… 自己紹介 満園 裕人
Slide 3
Slide 3 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 株式会社オルターブース エンジニア • 主にC#とPHPを使った開発を行う • KOSMISCHをなどの自社サービスの開発に携わる • 機械学習やディープラーニングに興味あり • 1児の父。娘ラブ! 自己紹介 古野 新悟
Slide 4
Slide 4 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • クラウドネイティブなアーキテクチャを組む際の考慮ポイント • 開発してて思ったこと • 開発する際に気をつけているポイント • ローカル開発について • 実感した良いところ・気をつけるところ • デモ(Durable Functions) 今日話す内容
Slide 5
Slide 5 text
クラウドネイティブな アーキテクチャを組む際の 考慮ポイント
Slide 6
Slide 6 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 基本的にPaaS,FaaS中心で組んでる • ポータルからポチポチ作ればいきなりアプリをデプロイして動かせる • 環境構築が楽 • 設定回りも楽 • ログ • 環境変数 • アクセスキー • 監視・管理が楽 全体的なアーキテクチャの組み方
Slide 7
Slide 7 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. 例:MVCのWebアプリと月次処理 ASP.NET MVC タイマートリガーで 集計処理を実行
Slide 8
Slide 8 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 機能的に切り出しできる部分を切り出す • メール送信、ファイルアップロードなど Serverlessを活用したアーキテクチャの組み方 REST REST フロントJS
Slide 9
Slide 9 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 1Functionあたりで行う処理は細かくしていく • 例えばこのAPI叩いてあのAPI叩いて…ということを一つの Functionで行おうとしている場合、必要に応じて切り分ける Serverlessを活用したアーキテクチャの組み方 REST REST REST REST
Slide 10
Slide 10 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 入口は一つにする • 「複数の入力形式を受け付けて、内部で判別する」は× • 複数Functionに分けて、内部の処理フローはシンプルにする Serverlessを活用したアーキテクチャの組み方 {JSON} {JSON} {JSON} {JSON}
Slide 11
Slide 11 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. 例:DurableFunctionsで月次処理 Blob CosmosDB Durable Functions REST 月次データ生成 DB格納処理 Blob格納処理 通知処理 結果画面 結果ファイル取得 WebApp WebApp
Slide 12
Slide 12 text
開発時のTipsなど
Slide 13
Slide 13 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • Functionの入出力データの形式は明確に • ドキュメントを残す • リクエストやレスポンスのサンプルなど • 環境変数の設定値 • バリデーションの実装 • 問題の切り分けがしやすいよう • リクエストパラメータの不備など • ログの出力により、発生場所を明確に • 複数のリソースを使用するため、どの部分で発生したかを区別す るために細かく出力する 実際の開発におけるポイント
Slide 14
Slide 14 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • これがあると便利 • Postman • ngrok • ローカル上のネットワークサービスを外部公開できる • 使用するツールのバージョンには気をつけましょう • 更新が早いのでツールのバージョンの違いで動かなくなることも 多々 • 各種エミュレータなど • リモートデバッグ実行 • 実際にクラウド上で動いているものを確認できた方が良い ローカル開発環境のポイント
Slide 15
Slide 15 text
実際に開発して感じたこと
Slide 16
Slide 16 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • サーバー構築・監視の手間を省くことができる • 機能単位での開発に完全分割できる • 1機能の開発に集中できる • Durable Functionsには数種類の実行パターンがあり、シーンに合わ せて利用できる 良いところ
Slide 17
Slide 17 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 全体構成は複雑化する • ひっくり返すと、問題の切り分けはしやすいと言える • 開発チーム内でのドキュメント共有などは、土台を作っておかな いとしぬ • レイテンシ問題 • 速度を重視する場合、ネットワークがネックになる可能性がある 気をつけるポイント
Slide 18
Slide 18 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • アーキテクチャを考えていくうえで、サービス自体を簡素化できる • 承認フローbotを作ると、承認フローそのものの改善に繋がる • 新しい技術だとブログとかなかなか見つからない • ドキュメント、実装、Issueを見る • 但しドキュメントはローカライズで情報違ったりするので注意 • サポートに問い合わせた方が早い場合もある その他
Slide 19
Slide 19 text
デモ
Slide 20
Slide 20 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • ローカルデバック中のWebAppからローカルデバック中のFunctions を実行する • Functionsの動作テストをPostmanなどでしている。 • でも実際に開発中の画面で動作確認をしたい。 • でもAzure Functions の準備は今すぐできない。。。 • でも実装した画面でテストしたい!!! と、思ったことがある方は是非試してみてください。 • Durable Functionsのアンチパターンに触れてみた デモ
Slide 21
Slide 21 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. デモ(ローカルデバック)
Slide 22
Slide 22 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. デモ(アンチパターン)
Slide 23
Slide 23 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. Durable Functions について、もっと知りたいという方は、 弊社松村が発表した資料がありますので、こちらをご覧ください。 【サーバーレスの常識を覆す Azure Durable Functionsを使い倒す】 https://www.slideshare.net/YutaMatsumura/azure-durable- functions-111003205
Slide 24
Slide 24 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • アーキテクチャを組む際は一つ一つをシンプルにしていく • 新しい技術を扱う場合、公式ドキュメントやその技術の実装内容を追 う力が必要になる • 開発チーム内での情報共有やログ・エラーハンドリングの実装をしっ かり行うことが大事 • PaaSやServerlessをフル活用し開発効率UPと品質向上に繋げる まとめ
Slide 25
Slide 25 text
Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved. • 触ったことない方はまずHTTPで実行できるFunctionから • 既に実践してる方は情報交換しましょう まずは実践してみましょう
Slide 26
Slide 26 text
ご清聴ありがとうございました。