Azure FunctionsとAWS Lambdaの開発フローの違い / Comparison of the development flow of Azure Functions and AWS Lambda

Azure FunctionsとAWS Lambdaの開発フローの違い / Comparison of the development flow of Azure Functions and AWS Lambda

ストレージにzipファイルをアップロードする際、zipファイルの中身の展開・を非同期化したい…というところからサーバレスアーキテクチャに入門しました。
実際AWS Lambdaを利用したのですが、Azure Functionsでやるとどうなるのだろう…?というところから、両者の開発フローを比較して感じたことをまとめています。

C000f292a92b894afabbb352e8709667?s=128

Toshinori Sugita

June 22, 2017
Tweet

Transcript

  1. Azure FunctionsとAWS Lambdaの 開発フローの違い 2017/6/22 第6回 Tokyo Jazug Night

  2. 自己紹介 • 杉田 寿憲(Toshinori Sugita, @toshi0607) • Software Engineer@freee •

    元◯TT ◦ata企画営業、コード書くのかっこいいと思って業務 経験なしからエンジニアに • Rubyが多いですが、Microsoft関連開発も!! ◦ サーバサイド: Ruby on Rails、Go ◦ クライアントサイド: WPF、これからXamarin • We’re hiring ◦ 日本を変えたいWindowsアプリエンジニア募集!!
  3. 今日のお話 • いつ使うんやと思ってたサーバレスアーキテクチャ(※サーバー、 あります)の恩恵を受けた(受けそう) • 業務ではAWS Lambdaを使ったけど、Azure Functionsで同じ ことするとどうなるのか気になった •

    実際にやってみたら色々と違いがあって面白かった気がする
  4. サーバレスアーキテクチャ適用シーン before

  5. サーバレスアーキテクチャ適用シーン after

  6. 比較の枠組み PJ作成 デバッグ デプロイ 監視 • 専用ツール • PJテンプレ •

    ローカル • リモート • ローカル • CI • ログ • メトリクス ※Functions、Lambda共にVisual Studio2017とC#を使用しました!
  7. 比較の枠組み PJ作成 デバッグ デプロイ 監視 • 専用ツール • PJテンプレ •

    ローカル • リモート • ローカル • CI • ログ • メトリクス ※Functions、Lambda共にVisual Studio2017とC#を使用しました!
  8. PJ作成 • Visual Studio Tools for Azure Functions • 接続サービスに応じたテンプレート

    • VS2017向けはVS2017ver15.3 -preview • AWS Toolkit for Visual Studio • 接続サービスに応じたテンプレート • テスト(ローカル実行用)セット PJ作成 デバッグ デプロイ 監視 Azure Functions AWS Lambda
  9. 比較の枠組み PJ作成 デバッグ デプロイ 監視 • 専用ツール • PJテンプレ •

    ローカル • リモート • ローカル • リモート • ログ • メトリクス ※Functions、Lambda共にVisual Studio2017とC#を使用しました!
  10. デバッグ(ローカル) • Azure CLIで func run • Visual Studioでテスト実行 PJ作成

    デバッグ デプロイ 監視 Azure Functions AWS Lambda
  11. デバッグ(リモート) • Visal Studioからアタッチできる。デバッガも使 えるすごい • Visual Studioでポータル同様イベントの発行、 ログ確認ができる PJ作成

    デバッグ デプロイ 監視 Azure Functions AWS Lambda
  12. 比較の枠組み PJ作成 デバッグ デプロイ 監視 • 専用ツール • PJテンプレ •

    ローカル • リモート • ローカル • CI • ログ • メトリクス ※Functions、Lambda共にVisual Studio2017とC#を使用しました!
  13. デプロイ • Visual Studioから「公開」 • Azure Resource Manager • App

    ServiceのGithub/VSTS等連携 • Deployment Slots Preview for Azure Functions(preview) • Visual Studioから「Publish to AWS Lambda...」 • AWS SAM(AWS CloudFormation) • .NET Core CLI ◦ $ dotnet restore ◦ $ dotnet publish PJ作成 デバッグ デプロイ 監視 Azure Functions AWS Lambda
  14. 比較の枠組み PJ作成 デバッグ デプロイ 監視 • 専用ツール • PJテンプレ •

    ローカル • リモート • ローカル • CI • ログ • メトリクス ※Functions、Lambda共にVisual Studio2017とC#を使用しました!
  15. 監視 • Monirtoringに機能追加中? • ライブイベントストリーム • Azure CLIでログファイルを追う • Amazon

    CloudWatch • Aamazon CloudWatch Logs PJ作成 デバッグ デプロイ 監視 Azure Functions AWS Lambda Azure Functions の監視より
  16. まとめ • Azure Functionsのつよいところ ◦ リモートデバッグ ◦ 豊富なデプロイフロー • AWS

    Lambdaのつよいところ ◦ テンプレートの親切さ ◦ ローカル実行の自由度 • 注意 ◦ 最大実行時間に制限あり ▪ Azure Functions: 10分 • Functions 1.0.11002 ▪ AWS Lambda: 5分 ◦ 地域的な制限
  17. おまけ • Azure Functions、わかりやすい概要 ◦ Azure Functions / Overview and

    Under the hood • Azure Functions、最新情報 ◦ de:code 2017でAzure FunctionsとLogic Appsの話をしてき た • AWS Lambda本、6/9発売! ◦ 『実践AWS Lambda ~「サーバレス」を実現する新しいアプリ ケーションのプラットフォーム~』
  18. ご清聴ありがとうございました! Azure FunctionsとAWS Lambdaの 開発フローの違い