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