O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 53 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践 (20)

Anúncio

Mais de 真吾 吉田 (20)

Mais recentes (20)

Anúncio

サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践

  1. 1. 久森 達郎(日本マイクロソフト株式会社) 吉田 真吾(株式会社セクションナイン)
  2. 2. http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/
  3. 3. クラウドの利用形態 ストレージ サーバー ネットワーク OS ミドルウエア 仮想化 データ アプリケーション ランタイム OS ミドルウエア データ アプリケーション ランタイム ユ ー ザ ー 管 理 アプリケーション データ ベ ン ダ ー 管 理 Azure 仮想マシンWindows Server Linux Azure App Service Office 365 ベ ン ダ ー 管 理 ユ ー ザ ー 管 理 ユ ー ザ ー 管 理 ベ ン ダ ー 管 理
  4. 4. PaaS の悩み アプリケーション データ Azure App Service ベ ン ダ ー 管 理 ユ ー ザ ー 管 理
  5. 5. Monolithic Frontend Middle tier Backend Microservice 1 Microservice 2 Microservice 3 Microservice 4 Microservice 5 Function 1 Function 2 Function 3 Function 4 Function 5 Function 6 Function 7 Function 8 Function 9 Function 10 Function 11 Function 12
  6. 6. Azure Functions On-demand serverless code Develop, debug, test, deploy in Visual Studio CI/CD support in Visual Studio Team Services and Github
  7. 7. https://github.com/Azure/Azure-Functions • Azure WebJobs SDK script - Azure Functions ランタイム • Azure WebJobs SDK - Azure Functions ランタイム コアとバインディング • Azure WebJobs SDK extensions - バインディング リポジトリ • Azure Functions CLI - Azure Functions CLI コマンドライン ツール • Azure Functions Portal - Functions 開発ポータル • Azure Functions templates - 各種 Functions テンプレート • Azure Functions samples - 各種サンプルコード リポジトリ
  8. 8. Azure Logic Apps On-demand serverless workflows 100+ data and app connectors built-in Integrated Visual Studio tooling
  9. 9.  ブラウザでワークフロー定義  “メールが来たらチャット通知 する”  “特定のツイートがあったら記 録して通知する”  Excelファイルがアップロード されたらCSV変換してテーブ ルに挿入する
  10. 10. サーバーレス開発で考えるべき4点 Design Develop Deploy Monitor
  11. 11. Design Design Develop Deploy Monitor
  12. 12. • • バインディング サービス トリガー インプット アウトプッ ト スケジュール Azure Functions ✔ HTTP (REST または Webhook) Azure Functions ✔ ✔ Blob Storage Azure Storage (Azure Storage) ✔ ✔ ✔ イベント Azure Event Hubs ✔ ✔ キュー Azure Storage (Azure Storage) ✔ ✔ キューとトピック Azure Service Bus ✔ ✔ Storage テーブル Azure Storage (Azure Storage) ✔ ✔ SQL テーブル Azure Mobile Apps ✔ ✔ NoSQL DB Azure DocumentDB ✔ ✔ プッシュ通知 Azure Notification Hub ✔ Twilio SMS テキスト Twilio ✔ SendGrid 電子メール SendGrid ✔ SaaS (Preview) Box ✔ ✔ ✔ Dropbox ✔ ✔ ✔ File System ✔ ✔ ✔ FTP ✔ ✔ ✔ OneDrive ✔ ✔ ✔ OneDrive for Business ✔ ✔ ✔ SFTP ✔ ✔ ✔ Google Drive ✔ ✔
  13. 13. /FB /FA Function A /FC API proxy endpoints HttpTrigger function endpoints Key: Design: APIを抽象化してまとめよう Function App A Function C/FC Function App C Function B/FB Function App B
  14. 14. /funcproc O365 App Insights /index.html Azure Functions Proxies /logicproc
  15. 15. Client - Browser - Program Trigger - HTTP - etc Function - Node - etc Function App 環境変数 ファイル - $req - $res リクエスト
  16. 16. Develop Design Develop Deploy Monitor
  17. 17. JavaScript  Use Visual Studio Code or any Node debugger C#  Visual Studio 2017 Tools for Azure Functions https://aka.ms/vs2017functiontools
  18. 18. Deploy Design Develop Deploy Monitor
  19. 19. Resource deployment • Azure Resource Managerテンプレートでデプロイ Content deployment • Visual Studio からデプロイ • Azure CLI (Logic App) からデプロイ • CI/CD (VSTS) 経由でデプロイ Safe deployment practices (New!) • WebAppsでおなじみのデプロイスロット機能が実装されました • AppService PlanならFunctionもBlue-Green Deploy可能に!
  20. 20.  デプロイ環境を複数作って、それぞれをスイッチさせることが可能 App Service Plan sample1.azurewebsites.net sample2.azurewebsites.net sample3.azurewebsites.net devスロット sample2-dev.azurewebsites.net testスロット sample2-test.azurewebsites.net prodスロット sample2-prod.azurewebsites.net stagingスロット sample2-staging.azurewebsites.net
  21. 21. Monitor Design Develop Deploy Monitor
  22. 22.  開発中や運用時、Function一つ一つの状況をみたいときに有効
  23. 23.  ライブメトリクスストリームが便利
  24. 24. イベントソース バッチ系ビッグデータ処理 分析パイプライン EVENT INGESTION ENGINE SQL DATA WAREHOUSE DATA LAKE STORAGE & ANALYTICS STREAM ANALYTICS WEB CUSTOM SERVICES ウェアラブル POS デジタル サイネージ ボット キオスク 端末 スマホアプリ センサー WORKFLOW ORCHESTRATION ENTERPRISE INTEGRATION CUSTOM INTELLIGENCE INTELLIGENT SERVICES CUSTOM FUNCTIONS MACHINE LEARNING COGNITIVE SERVICES
  25. 25. Azure IoT Edge IoT Hub Devices Local Storage Azure Machine Learning (Container) Container Management Device Twin Device Twin Azure Stream Analytics (Container) Azure Functions (Container) Cognitive Services (Container) Custom Code (Container) Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Module Twin Functions Runtime
  26. 26. Ask the Speaker のご案内 本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて ご説明させていただきます。是非、お立ち寄りください。
  27. 27. セッションアンケートにご協力ください  専用アプリからご回答いただけます。 decode 2017  スケジュールビルダーで受講セッションを 登録後、アンケート画面からご回答ください。  アンケートの回答時間はたったの 15 秒です!
  28. 28. © 2017 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

Notas do Editor

  • 【吉田追加】
  • Evolution of “software” over time
    Happening across two main axis:
    Hardware abstraction: with HW virtualization, moving HW to the cloud, reducing HW operations with PaaS and Serverless. HW abstraction focuses on reducing the cost (time) of setting up and long term HW management. Basically, it takes about a minute to setup a VM that someone else manages, HW, for you.
    Software architecture: from Monolithic, to N-Tier, to Micro-Services (SOA), to Functions (Serverless). I will argue, that the main advances in Application Software architecture focuses on reducing the long term cost of maintaining complex software system. Everyone agrees that monolithic architecture approach, is supper inefficient over the long run because it is hard to test and verify changes and it just doesn't’t scale- Not from engineering or management. The move to smaller and smaller chunks of code that are self-contained is happening. The latest buz word such as MicroServices and Functions are a good example.

    If you think about it, Serverless is the first time we can actually use a single word, “Serverless”, to describe both the HW and Software improvments
    On one hand, everyone understands Serverless mean a fully managed, self-contained ; system that abstract the use of servers
    On the other hand, Everyone agree Serverless is event-based programing model
  • 【吉田追加】
  • 【吉田追加】
  • 【吉田追加】
  • 【吉田追加】
  • 【吉田追加】
  • 【吉田追加】
  • 【吉田追加】
  • Resources:
    https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices
  • Resource: https://docs.microsoft.com/en-us/azure/azure-functions/functions-proxies

    Bring multiple resources under a single API.
    Provide a single API definition which routes to various backends as needed.

    The real value of proxies is in versioning. Shim function B and eventually have slots+TiP. This enables true microservices development. You can mock something under the proxy and this enables development across the full system.

    Example:
    Function app A (exposing GET /FA)
    Function app B (exposing GET /FA)
    Function app C (exposing GET /FC)
    For a single host exposing GET /FA, GET /FB, and GET /FC add a proxy to function app A hosted at GET /FB then point this to the URL of /FB on Function App B.
  • Core Tools used to be called Azure Functions CLI. This is now feature complete and commands are established with final release in next few months.
  • Make text black in master.
  • Resources:
    https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices
    http://www.reactivemanifesto.org
    https://azure.microsoft.com/en-us/blog/microservices-an-application-revolution-powered-by-the-cloud/
  • 【吉田追加】
  • 【吉田追加】
  • 【吉田追加】

×