ストレージにzipファイルをアップロードする際、zipファイルの中身の展開・を非同期化したい…というところからサーバレスアーキテクチャに入門しました。 実際AWS Lambdaを利用したのですが、Azure Functionsでやるとどうなるのだろう…?というところから、両者の開発フローを比較して感じたことをまとめています。
Azure FunctionsとAWS Lambdaの開発フローの違い2017/6/22 第6回 Tokyo Jazug Night
View Slide
自己紹介● 杉田 寿憲(Toshinori Sugita, @toshi0607)● Software Engineer@freee● 元◯TT ○ata企画営業、コード書くのかっこいいと思って業務経験なしからエンジニアに● Rubyが多いですが、Microsoft関連開発も!!○ サーバサイド: Ruby on Rails、Go○ クライアントサイド: WPF、これからXamarin● We’re hiring○ 日本を変えたいWindowsアプリエンジニア募集!!
今日のお話● いつ使うんやと思ってたサーバレスアーキテクチャ(※サーバー、あります)の恩恵を受けた(受けそう)● 業務ではAWS Lambdaを使ったけど、Azure Functionsで同じことするとどうなるのか気になった● 実際にやってみたら色々と違いがあって面白かった気がする
サーバレスアーキテクチャ適用シーンbefore
サーバレスアーキテクチャ適用シーンafter
比較の枠組みPJ作成 デバッグ デプロイ 監視● 専用ツール● PJテンプレ● ローカル● リモート● ローカル● CI● ログ● メトリクス※Functions、Lambda共にVisual Studio2017とC#を使用しました!
PJ作成● Visual Studio Tools for Azure Functions● 接続サービスに応じたテンプレート● VS2017向けはVS2017ver15.3 -preview● AWS Toolkit for Visual Studio● 接続サービスに応じたテンプレート● テスト(ローカル実行用)セットPJ作成 デバッグ デプロイ 監視Azure Functions AWS Lambda
比較の枠組みPJ作成 デバッグ デプロイ 監視● 専用ツール● PJテンプレ● ローカル● リモート● ローカル● リモート● ログ● メトリクス※Functions、Lambda共にVisual Studio2017とC#を使用しました!
デバッグ(ローカル)● Azure CLIで func run ● Visual Studioでテスト実行PJ作成 デバッグ デプロイ 監視Azure Functions AWS Lambda
デバッグ(リモート)● Visal Studioからアタッチできる。デバッガも使えるすごい● Visual Studioでポータル同様イベントの発行、ログ確認ができるPJ作成 デバッグ デプロイ 監視Azure Functions AWS Lambda
デプロイ● Visual Studioから「公開」● Azure Resource Manager● App ServiceのGithub/VSTS等連携● Deployment Slots Preview for AzureFunctions(preview)● Visual Studioから「Publish to AWS Lambda...」● AWS SAM(AWS CloudFormation)● .NET Core CLI○ $ dotnet restore○ $ dotnet publishPJ作成 デバッグ デプロイ 監視Azure Functions AWS Lambda
監視● Monirtoringに機能追加中?● ライブイベントストリーム● Azure CLIでログファイルを追う● Amazon CloudWatch● Aamazon CloudWatch LogsPJ作成 デバッグ デプロイ 監視Azure Functions AWS LambdaAzure Functions の監視より
まとめ● Azure Functionsのつよいところ○ リモートデバッグ○ 豊富なデプロイフロー● AWS Lambdaのつよいところ○ テンプレートの親切さ○ ローカル実行の自由度● 注意○ 最大実行時間に制限あり■ Azure Functions: 10分● Functions 1.0.11002■ AWS Lambda: 5分○ 地域的な制限
おまけ● Azure Functions、わかりやすい概要○ Azure Functions / Overview and Under the hood● Azure Functions、最新情報○ de:code 2017でAzure FunctionsとLogic Appsの話をしてきた● AWS Lambda本、6/9発売!○ 『実践AWS Lambda ~「サーバレス」を実現する新しいアプリケーションのプラットフォーム~』
ご清聴ありがとうございました!Azure FunctionsとAWS Lambdaの開発フローの違い