SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Developing serverless applications
with .NET using AWS SDK & tools
Steve Roberts
Senior Technical Evangelist
Amazon Web Services
M A D 3 1 1
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What is CloudMosaic?
+ =
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What does the application illustrate?
• Developing modern, serverless .NET applications on AWS
• Using the AWS SDK and tools for .NET to work with AWS services
• AWS Lambda
• AWS Batch
• AWS Step Functions
• Amazon DynamoDB
• Amazon Cognito
• AWS Systems Manager
• Deploying to services using the tools that you are familiar with
• AWS Toolkit for Visual Studio
• AWS extensions for the dotnet CLI
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Overall architecture
Tile gallery
Tile data
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What does tile ingestion do?
• It accepts a user’s .zip file that contains multiple images
• The .zip file is unpacked, and each image is analyzed to determine the average
color
• Each image is then resized and saved as a tile in a named gallery
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
How tile ingestion works
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Why did we choose AWS Batch?
• To take advantage of serverless
It manages the compute capacity for us
• Work can be queued for
asynchronous processing
Tile creation is not a time-critical task
• Cost savings
• No charge for idle compute environments
• Ability to use Amazon EC2 spot instances
Spot
instance(s)
On-demand
instance(s)
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Tile gallery ingestion review
• Using dead-letter queues (DLQs) to help detect and diagnose failures
• Using the AWS .NET Mock Lambda Test Tool to replay and debug failed events
in a DLQ
• Using AWS Batch
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What does the mosaic rendering workflow do?
• Accepts an image file from the user plus the name of a tile gallery
• Analyzes the image against the tile data in the gallery
• Builds a new mosaic image using the matched tiles
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
How mosaic rendering works
Select
tiles
(F#)
Small
render
Medium
render
Large
render
Completion
notification
Color
map
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Mosaic rendering workflow review
• How to use AWS Step Functions to orchestrate a workflow
• Deploying multiple projects with a single serverless template
• Using the dotnet lambda CLI global tool to deploy
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What is the web front end responsible for?
• Allowing user registration and authentication
• Enabling signed-in users to
• Create new tile galleries
• Upload an image to create a mosaic
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
How the front end works
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Web front end review
• Using high-level libraries from AWS to handle
• Identity
• Data protection (anti-forgery tokens)
• Application configuration at runtime
• Calling AWS Batch and AWS Step Functions from application code
• Deploying containers to AWS Fargate from Visual Studio
Can also use the dotnet ecs CLI tool
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Select
tiles
(F#)
Small
Medium
Large
NotifyMap
colors
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Useful links
AWS .NET blog: https://aws.amazon.com/blogs/developer/tag/net/
AWS .NET Twitter handle: @awsfornet
GitHub
AWS .NET home: https://github.com/aws/dotnet
AWS SDK for .NET: https://github.com/aws/aws-sdk-net
AWS Lambda for .NET Core: https://github.com/aws/aws-lambda-dotnet
AWS .NET Global Tools: https://github.com/aws/aws-extensions-for-dotnet-cli
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Additional extension libraries on GitHub
ASP.NET Core identity provider for Amazon Cognito:
https://github.com/aws/aws-aspnet-cognito-identity-provider
IConfiguration provider for AWS Systems Manager Parameter Store:
https://github.com/aws/aws-dotnet-extensions-configuration
ASP.NET Core DataProtection provider for AWS Systems Manager:
https://github.com/aws/aws-ssm-data-protection-provider-for-aspnet
Thank you!
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Steve Roberts
Twitter: @bellevuesteve

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Searching for patterns: Log analytics using Amazon ES - ADB205 - New York AWS...
Searching for patterns: Log analytics using Amazon ES - ADB205 - New York AWS...Searching for patterns: Log analytics using Amazon ES - ADB205 - New York AWS...
Searching for patterns: Log analytics using Amazon ES - ADB205 - New York AWS...
 
AWS storage solutions for business-critical applications - STG301 - Chicago A...
AWS storage solutions for business-critical applications - STG301 - Chicago A...AWS storage solutions for business-critical applications - STG301 - Chicago A...
AWS storage solutions for business-critical applications - STG301 - Chicago A...
 
Build accurate training datasets with Amazon SageMaker Ground Truth - AIM305 ...
Build accurate training datasets with Amazon SageMaker Ground Truth - AIM305 ...Build accurate training datasets with Amazon SageMaker Ground Truth - AIM305 ...
Build accurate training datasets with Amazon SageMaker Ground Truth - AIM305 ...
 
Drive innovation in Financial Services with Amazon EC2 - CMP204 - New York AW...
Drive innovation in Financial Services with Amazon EC2 - CMP204 - New York AW...Drive innovation in Financial Services with Amazon EC2 - CMP204 - New York AW...
Drive innovation in Financial Services with Amazon EC2 - CMP204 - New York AW...
 
[NEW LAUNCH] Introducing AWS Deep Learning Containers
[NEW LAUNCH] Introducing AWS Deep Learning Containers[NEW LAUNCH] Introducing AWS Deep Learning Containers
[NEW LAUNCH] Introducing AWS Deep Learning Containers
 
Why AWS for running Microsoft workloads - CMP202-I - New York AWS Summit
Why AWS for running Microsoft workloads - CMP202-I - New York AWS SummitWhy AWS for running Microsoft workloads - CMP202-I - New York AWS Summit
Why AWS for running Microsoft workloads - CMP202-I - New York AWS Summit
 
HK-AWS-Quick-Start-Workshop
HK-AWS-Quick-Start-WorkshopHK-AWS-Quick-Start-Workshop
HK-AWS-Quick-Start-Workshop
 
Open by design: Accelerating the enterprise cloud journey - DEM01-S - New Yor...
Open by design: Accelerating the enterprise cloud journey - DEM01-S - New Yor...Open by design: Accelerating the enterprise cloud journey - DEM01-S - New Yor...
Open by design: Accelerating the enterprise cloud journey - DEM01-S - New Yor...
 
Building real-time applications with Amazon ElastiCache - ADB204 - Anaheim AW...
Building real-time applications with Amazon ElastiCache - ADB204 - Anaheim AW...Building real-time applications with Amazon ElastiCache - ADB204 - Anaheim AW...
Building real-time applications with Amazon ElastiCache - ADB204 - Anaheim AW...
 
AWS App Mesh: Manage services mesh discovery, recovery, and monitoring - MAD3...
AWS App Mesh: Manage services mesh discovery, recovery, and monitoring - MAD3...AWS App Mesh: Manage services mesh discovery, recovery, and monitoring - MAD3...
AWS App Mesh: Manage services mesh discovery, recovery, and monitoring - MAD3...
 
Building ML platforms in Financial Services with serverless technology - FSV2...
Building ML platforms in Financial Services with serverless technology - FSV2...Building ML platforms in Financial Services with serverless technology - FSV2...
Building ML platforms in Financial Services with serverless technology - FSV2...
 
Tech deep dive: Cloud data management with Veeam and AWS - SVC216-S - New Yor...
Tech deep dive: Cloud data management with Veeam and AWS - SVC216-S - New Yor...Tech deep dive: Cloud data management with Veeam and AWS - SVC216-S - New Yor...
Tech deep dive: Cloud data management with Veeam and AWS - SVC216-S - New Yor...
 
Building AR/VR apps with AWS - SVC201 - Santa Clara AWS Summit.pdf
Building AR/VR apps with AWS - SVC201 - Santa Clara AWS Summit.pdfBuilding AR/VR apps with AWS - SVC201 - Santa Clara AWS Summit.pdf
Building AR/VR apps with AWS - SVC201 - Santa Clara AWS Summit.pdf
 
Studio in the Cloud: Producing Content on AWS - CMP202 - Anaheim AWS Summit
Studio in the Cloud: Producing Content on AWS - CMP202 - Anaheim AWS SummitStudio in the Cloud: Producing Content on AWS - CMP202 - Anaheim AWS Summit
Studio in the Cloud: Producing Content on AWS - CMP202 - Anaheim AWS Summit
 
Optimize deep learning training and inferencing using GPU and Amazon SageMake...
Optimize deep learning training and inferencing using GPU and Amazon SageMake...Optimize deep learning training and inferencing using GPU and Amazon SageMake...
Optimize deep learning training and inferencing using GPU and Amazon SageMake...
 
CI/CD best practices for building modern applications - MAD310 - New York AWS...
CI/CD best practices for building modern applications - MAD310 - New York AWS...CI/CD best practices for building modern applications - MAD310 - New York AWS...
CI/CD best practices for building modern applications - MAD310 - New York AWS...
 
Get hands-on with AWS DeepRacer and compete in the AWS DeepRacer League - AIM...
Get hands-on with AWS DeepRacer and compete in the AWS DeepRacer League - AIM...Get hands-on with AWS DeepRacer and compete in the AWS DeepRacer League - AIM...
Get hands-on with AWS DeepRacer and compete in the AWS DeepRacer League - AIM...
 
Amazon Redshift tips and tricks - Scaling storage and compute - ADB301 - Sant...
Amazon Redshift tips and tricks - Scaling storage and compute - ADB301 - Sant...Amazon Redshift tips and tricks - Scaling storage and compute - ADB301 - Sant...
Amazon Redshift tips and tricks - Scaling storage and compute - ADB301 - Sant...
 
Introduction to AWS App Mesh - MAD303 - Atlanta AWS Summit
Introduction to AWS App Mesh - MAD303 - Atlanta AWS SummitIntroduction to AWS App Mesh - MAD303 - Atlanta AWS Summit
Introduction to AWS App Mesh - MAD303 - Atlanta AWS Summit
 
Software delivery best practices: Lessons from Amazon and our customers - MAD...
Software delivery best practices: Lessons from Amazon and our customers - MAD...Software delivery best practices: Lessons from Amazon and our customers - MAD...
Software delivery best practices: Lessons from Amazon and our customers - MAD...
 

Semelhante a Developing serverless applications with .NET using AWS SDK & tools - MAD311 - New York AWS Summit

Breaking Up the Monolith with Containers
Breaking Up the Monolith with ContainersBreaking Up the Monolith with Containers
Breaking Up the Monolith with Containers
Amazon Web Services
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
Amazon Web Services
 

Semelhante a Developing serverless applications with .NET using AWS SDK & tools - MAD311 - New York AWS Summit (20)

Developing with .NET Core on AWS - What's new - MAD306 - Santa Clara AWS Summit
Developing with .NET Core on AWS - What's new - MAD306 - Santa Clara AWS SummitDeveloping with .NET Core on AWS - What's new - MAD306 - Santa Clara AWS Summit
Developing with .NET Core on AWS - What's new - MAD306 - Santa Clara AWS Summit
 
Enable Agile Development with Amazon Linux WorkSpaces and WorkLink - SVC203 -...
Enable Agile Development with Amazon Linux WorkSpaces and WorkLink - SVC203 -...Enable Agile Development with Amazon Linux WorkSpaces and WorkLink - SVC203 -...
Enable Agile Development with Amazon Linux WorkSpaces and WorkLink - SVC203 -...
 
Serverless data prep with AWS Glue - ADB306 - New York AWS Summit
Serverless data prep with AWS Glue - ADB306 - New York AWS SummitServerless data prep with AWS Glue - ADB306 - New York AWS Summit
Serverless data prep with AWS Glue - ADB306 - New York AWS Summit
 
Well Archictecture Framework dotNET.pdf
Well Archictecture Framework dotNET.pdfWell Archictecture Framework dotNET.pdf
Well Archictecture Framework dotNET.pdf
 
Boost your AWS Infrastructure with CDK
Boost your AWS Infrastructure with CDKBoost your AWS Infrastructure with CDK
Boost your AWS Infrastructure with CDK
 
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
 
Breaking Up the Monolith with Containers
Breaking Up the Monolith with ContainersBreaking Up the Monolith with Containers
Breaking Up the Monolith with Containers
 
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
Fast-Track Your Application Modernisation Journey with Containers - AWS Summi...
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
 
.NET on AWS
.NET on AWS.NET on AWS
.NET on AWS
 
CI/CD best practices for building modern applications - MAD302 - Atlanta AWS ...
CI/CD best practices for building modern applications - MAD302 - Atlanta AWS ...CI/CD best practices for building modern applications - MAD302 - Atlanta AWS ...
CI/CD best practices for building modern applications - MAD302 - Atlanta AWS ...
 
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
 
CI/CD best practices for building modern applications - MAD301 - Santa Clara ...
CI/CD best practices for building modern applications - MAD301 - Santa Clara ...CI/CD best practices for building modern applications - MAD301 - Santa Clara ...
CI/CD best practices for building modern applications - MAD301 - Santa Clara ...
 
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
CI CD using AWS Developer Tools @ AWS Community Day Chennai 2019
 
CI/CD best practices for building modern applications - MAD304 - Chicago AWS ...
CI/CD best practices for building modern applications - MAD304 - Chicago AWS ...CI/CD best practices for building modern applications - MAD304 - Chicago AWS ...
CI/CD best practices for building modern applications - MAD304 - Chicago AWS ...
 
Move desktops & applications to AWS with Amazon WorkSpaces & AppStream 2.0 - ...
Move desktops & applications to AWS with Amazon WorkSpaces & AppStream 2.0 - ...Move desktops & applications to AWS with Amazon WorkSpaces & AppStream 2.0 - ...
Move desktops & applications to AWS with Amazon WorkSpaces & AppStream 2.0 - ...
 
Twelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
Twelve-factor serverless applications - MAD302 - Santa Clara AWS SummitTwelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
Twelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWS
 
Running Amazon Elastic Compute Cloud (Amazon EC2) workloads at scale - CMP202...
Running Amazon Elastic Compute Cloud (Amazon EC2) workloads at scale - CMP202...Running Amazon Elastic Compute Cloud (Amazon EC2) workloads at scale - CMP202...
Running Amazon Elastic Compute Cloud (Amazon EC2) workloads at scale - CMP202...
 

Mais de Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Developing serverless applications with .NET using AWS SDK & tools - MAD311 - New York AWS Summit

  • 1. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Developing serverless applications with .NET using AWS SDK & tools Steve Roberts Senior Technical Evangelist Amazon Web Services M A D 3 1 1
  • 2. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 3. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T What is CloudMosaic? + =
  • 4. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T What does the application illustrate? • Developing modern, serverless .NET applications on AWS • Using the AWS SDK and tools for .NET to work with AWS services • AWS Lambda • AWS Batch • AWS Step Functions • Amazon DynamoDB • Amazon Cognito • AWS Systems Manager • Deploying to services using the tools that you are familiar with • AWS Toolkit for Visual Studio • AWS extensions for the dotnet CLI
  • 5. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 6. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 7. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Overall architecture Tile gallery Tile data
  • 8. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 9. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T What does tile ingestion do? • It accepts a user’s .zip file that contains multiple images • The .zip file is unpacked, and each image is analyzed to determine the average color • Each image is then resized and saved as a tile in a named gallery
  • 10. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T How tile ingestion works
  • 11. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Why did we choose AWS Batch? • To take advantage of serverless It manages the compute capacity for us • Work can be queued for asynchronous processing Tile creation is not a time-critical task • Cost savings • No charge for idle compute environments • Ability to use Amazon EC2 spot instances Spot instance(s) On-demand instance(s)
  • 12. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 13. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Tile gallery ingestion review • Using dead-letter queues (DLQs) to help detect and diagnose failures • Using the AWS .NET Mock Lambda Test Tool to replay and debug failed events in a DLQ • Using AWS Batch
  • 14. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 15. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T What does the mosaic rendering workflow do? • Accepts an image file from the user plus the name of a tile gallery • Analyzes the image against the tile data in the gallery • Builds a new mosaic image using the matched tiles
  • 16. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T How mosaic rendering works Select tiles (F#) Small render Medium render Large render Completion notification Color map
  • 17. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 18. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Mosaic rendering workflow review • How to use AWS Step Functions to orchestrate a workflow • Deploying multiple projects with a single serverless template • Using the dotnet lambda CLI global tool to deploy
  • 19. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 20. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T What is the web front end responsible for? • Allowing user registration and authentication • Enabling signed-in users to • Create new tile galleries • Upload an image to create a mosaic
  • 21. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T How the front end works
  • 22. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 23. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Web front end review • Using high-level libraries from AWS to handle • Identity • Data protection (anti-forgery tokens) • Application configuration at runtime • Calling AWS Batch and AWS Step Functions from application code • Deploying containers to AWS Fargate from Visual Studio Can also use the dotnet ecs CLI tool
  • 24. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 26. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Useful links AWS .NET blog: https://aws.amazon.com/blogs/developer/tag/net/ AWS .NET Twitter handle: @awsfornet GitHub AWS .NET home: https://github.com/aws/dotnet AWS SDK for .NET: https://github.com/aws/aws-sdk-net AWS Lambda for .NET Core: https://github.com/aws/aws-lambda-dotnet AWS .NET Global Tools: https://github.com/aws/aws-extensions-for-dotnet-cli
  • 27. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Additional extension libraries on GitHub ASP.NET Core identity provider for Amazon Cognito: https://github.com/aws/aws-aspnet-cognito-identity-provider IConfiguration provider for AWS Systems Manager Parameter Store: https://github.com/aws/aws-dotnet-extensions-configuration ASP.NET Core DataProtection provider for AWS Systems Manager: https://github.com/aws/aws-ssm-data-protection-provider-for-aspnet
  • 28. Thank you! S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Steve Roberts Twitter: @bellevuesteve