$30 off During Our Annual Pro Sale. View Details »

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でやるとどうなるのだろう…?というところから、両者の開発フローを比較して感じたことをまとめています。

Toshinori Sugita

June 22, 2017
Tweet

More Decks by Toshinori Sugita

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介
    ● 杉田 寿憲(Toshinori Sugita, @toshi0607)
    ● Software Engineer@freee
    ● 元◯TT ○ata企画営業、コード書くのかっこいいと思って業務
    経験なしからエンジニアに
    ● Rubyが多いですが、Microsoft関連開発も!!
    ○ サーバサイド: Ruby on Rails、Go
    ○ クライアントサイド: WPF、これからXamarin
    ● We’re hiring
    ○ 日本を変えたいWindowsアプリエンジニア募集!!

    View Slide

  3. 今日のお話
    ● いつ使うんやと思ってたサーバレスアーキテクチャ(※サーバー、
    あります)の恩恵を受けた(受けそう)
    ● 業務ではAWS Lambdaを使ったけど、Azure Functionsで同じ
    ことするとどうなるのか気になった
    ● 実際にやってみたら色々と違いがあって面白かった気がする

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. PJ作成
    ● Visual Studio Tools for Azure Functions
    ● 接続サービスに応じたテンプレート
    ● VS2017向けはVS2017ver15.3 -preview
    ● AWS Toolkit for Visual Studio
    ● 接続サービスに応じたテンプレート
    ● テスト(ローカル実行用)セット
    PJ作成 デバッグ デプロイ 監視
    Azure Functions AWS Lambda

    View Slide

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

    View Slide

  10. デバッグ(ローカル)
    ● Azure CLIで func run ● Visual Studioでテスト実行
    PJ作成 デバッグ デプロイ 監視
    Azure Functions AWS Lambda

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  15. 監視
    ● Monirtoringに機能追加中?
    ● ライブイベントストリーム
    ● Azure CLIでログファイルを追う
    ● Amazon CloudWatch
    ● Aamazon CloudWatch Logs
    PJ作成 デバッグ デプロイ 監視
    Azure Functions AWS Lambda
    Azure Functions の監視より

    View Slide

  16. まとめ
    ● Azure Functionsのつよいところ
    ○ リモートデバッグ
    ○ 豊富なデプロイフロー
    ● AWS Lambdaのつよいところ
    ○ テンプレートの親切さ
    ○ ローカル実行の自由度
    ● 注意
    ○ 最大実行時間に制限あり
    ■ Azure Functions: 10分
    ● Functions 1.0.11002
    ■ AWS Lambda: 5分
    ○ 地域的な制限

    View Slide

  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 ~「サーバレス」を実現する新しいアプリ
    ケーションのプラットフォーム~』

    View Slide

  18. ご清聴ありがとうございました!
    Azure FunctionsとAWS Lambdaの
    開発フローの違い

    View Slide