Upgrade to Pro — share decks privately, control downloads, hide ads and more …

近頃若者のサーバー離れが深刻化しています

 近頃若者のサーバー離れが深刻化しています

2018/11/28 Alternative Architecture DOJO Offline #1

Mitsuzono Hiroto

November 28, 2018
Tweet

More Decks by Mitsuzono Hiroto

Other Decks in Technology

Transcript

  1. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    近頃若者のサーバー離れが深刻化しています
    株式会社オルターブース 満園 裕人
    古野 新悟

    View full-size slide

  2. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 株式会社オルターブース エンジニア
    • C#とPHPを使ったWebアプリケーションの開発
    • 自社サービスの開発もメインで携わる
    • 今年のISUCONダメだったので来年に向けて修行中…
    自己紹介 満園 裕人

    View full-size slide

  3. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 株式会社オルターブース エンジニア
    • 主にC#とPHPを使った開発を行う
    • KOSMISCHをなどの自社サービスの開発に携わる
    • 機械学習やディープラーニングに興味あり
    • 1児の父。娘ラブ!
    自己紹介 古野 新悟

    View full-size slide

  4. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • クラウドネイティブなアーキテクチャを組む際の考慮ポイント
    • 開発してて思ったこと
    • 開発する際に気をつけているポイント
    • ローカル開発について
    • 実感した良いところ・気をつけるところ
    • デモ(Durable Functions)
    今日話す内容

    View full-size slide

  5. クラウドネイティブな
    アーキテクチャを組む際の
    考慮ポイント

    View full-size slide

  6. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 基本的にPaaS,FaaS中心で組んでる
    • ポータルからポチポチ作ればいきなりアプリをデプロイして動かせる
    • 環境構築が楽
    • 設定回りも楽
    • ログ
    • 環境変数
    • アクセスキー
    • 監視・管理が楽
    全体的なアーキテクチャの組み方

    View full-size slide

  7. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    例:MVCのWebアプリと月次処理
    ASP.NET MVC
    タイマートリガーで
    集計処理を実行

    View full-size slide

  8. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 機能的に切り出しできる部分を切り出す
    • メール送信、ファイルアップロードなど
    Serverlessを活用したアーキテクチャの組み方
    REST REST
    フロントJS

    View full-size slide

  9. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 1Functionあたりで行う処理は細かくしていく
    • 例えばこのAPI叩いてあのAPI叩いて…ということを一つの
    Functionで行おうとしている場合、必要に応じて切り分ける
    Serverlessを活用したアーキテクチャの組み方
    REST
    REST
    REST REST

    View full-size slide

  10. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 入口は一つにする
    • 「複数の入力形式を受け付けて、内部で判別する」は×
    • 複数Functionに分けて、内部の処理フローはシンプルにする
    Serverlessを活用したアーキテクチャの組み方
    {JSON}
    {JSON}
    {JSON}
    {JSON}

    View full-size slide

  11. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    例:DurableFunctionsで月次処理
    Blob
    CosmosDB
    Durable Functions
    REST
    月次データ生成
    DB格納処理
    Blob格納処理
    通知処理
    結果画面
    結果ファイル取得
    WebApp
    WebApp

    View full-size slide

  12. 開発時のTipsなど

    View full-size slide

  13. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • Functionの入出力データの形式は明確に
    • ドキュメントを残す
    • リクエストやレスポンスのサンプルなど
    • 環境変数の設定値
    • バリデーションの実装
    • 問題の切り分けがしやすいよう
    • リクエストパラメータの不備など
    • ログの出力により、発生場所を明確に
    • 複数のリソースを使用するため、どの部分で発生したかを区別す
    るために細かく出力する
    実際の開発におけるポイント

    View full-size slide

  14. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • これがあると便利
    • Postman
    • ngrok
    • ローカル上のネットワークサービスを外部公開できる
    • 使用するツールのバージョンには気をつけましょう
    • 更新が早いのでツールのバージョンの違いで動かなくなることも
    多々
    • 各種エミュレータなど
    • リモートデバッグ実行
    • 実際にクラウド上で動いているものを確認できた方が良い
    ローカル開発環境のポイント

    View full-size slide

  15. 実際に開発して感じたこと

    View full-size slide

  16. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • サーバー構築・監視の手間を省くことができる
    • 機能単位での開発に完全分割できる
    • 1機能の開発に集中できる
    • Durable Functionsには数種類の実行パターンがあり、シーンに合わ
    せて利用できる
    良いところ

    View full-size slide

  17. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 全体構成は複雑化する
    • ひっくり返すと、問題の切り分けはしやすいと言える
    • 開発チーム内でのドキュメント共有などは、土台を作っておかな
    いとしぬ
    • レイテンシ問題
    • 速度を重視する場合、ネットワークがネックになる可能性がある
    気をつけるポイント

    View full-size slide

  18. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • アーキテクチャを考えていくうえで、サービス自体を簡素化できる
    • 承認フローbotを作ると、承認フローそのものの改善に繋がる
    • 新しい技術だとブログとかなかなか見つからない
    • ドキュメント、実装、Issueを見る
    • 但しドキュメントはローカライズで情報違ったりするので注意
    • サポートに問い合わせた方が早い場合もある
    その他

    View full-size slide

  19. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • ローカルデバック中のWebAppからローカルデバック中のFunctions
    を実行する
    • Functionsの動作テストをPostmanなどでしている。
    • でも実際に開発中の画面で動作確認をしたい。
    • でもAzure Functions の準備は今すぐできない。。。
    • でも実装した画面でテストしたい!!!
    と、思ったことがある方は是非試してみてください。
    • Durable Functionsのアンチパターンに触れてみた
    デモ

    View full-size slide

  20. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    デモ(ローカルデバック)

    View full-size slide

  21. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    デモ(アンチパターン)

    View full-size slide

  22. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    Durable Functions について、もっと知りたいという方は、
    弊社松村が発表した資料がありますので、こちらをご覧ください。
    【サーバーレスの常識を覆す Azure Durable Functionsを使い倒す】
    https://www.slideshare.net/YutaMatsumura/azure-durable-
    functions-111003205

    View full-size slide

  23. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • アーキテクチャを組む際は一つ一つをシンプルにしていく
    • 新しい技術を扱う場合、公式ドキュメントやその技術の実装内容を追
    う力が必要になる
    • 開発チーム内での情報共有やログ・エラーハンドリングの実装をしっ
    かり行うことが大事
    • PaaSやServerlessをフル活用し開発効率UPと品質向上に繋げる
    まとめ

    View full-size slide

  24. Copyright © 2015-2018 ALTERBOOTH inc. All Rights Reserved.
    • 触ったことない方はまずHTTPで実行できるFunctionから
    • 既に実践してる方は情報交換しましょう
    まずは実践してみましょう

    View full-size slide

  25. ご清聴ありがとうございました。

    View full-size slide