More Related Content Similar to Building and Deploying .Net Applications on AWS (20) More from Amazon Web Services (20) Building and Deploying .Net Applications on AWS1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Building and Deploying .Net
Applications on AWS
2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
In this Session
The focus of this session is on building and deploying your .Net Applications
on AWS
• Why AWS for Microsoft .Net Applications
• Hosting options for .Net Applications
• Getting started – How to develop and run your .Net applications on AWS
• Developer tools and resources
• Microsoft Programming with AWS
• Accelerate release of your Applications
• DevOps & CI/CD with VSTS
• DevOps & CI/CD with AWS Services
3. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why AWS for Microsoft
Applications
4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why AWS for Microsoft Applications?
Secure Reliable High-
Performance
Cost-EffectiveFamiliar Extensive Flexible
Optimization for Windows-based workloads
Wide range of scalable services
Superior Platform with Proven Experience
5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Innovation for Windows on AWS
Key Windows launches since 2008
89
42
750+
instance types, 22 instance families
different AMIs for Windows workloads
Windows ISV listings
in AWS marketplace
Windows Deep Learning AMI
Hyper-V support in SMS
Application-consistent Snapshots through VSS
WS 2008 & SQL Server 2008
Visual Studio Toolkit
Microsoft SCOM plug-in release
AWS Directory Service
EC2 Dedicated Hosts (BYOL)
Microsoft SharePoint 2016 (Marketplace)
Windows Server 2008 R2
SQL Server 2008 R2
Windows Server 2003
SQL Server 2005
.NET SDK
Microsoft SCVMM Plug-in
Windows Server 2012
SQL Server 2012
AWS Tools for Windows PowerShell
Amazon RDS adds SQL Server
EC2 Run Command
EC2 Systems Manager
Windows Server & SQL Server 2016
EC2 Dedicated Instances (BYOL)
.NET on Lambda
& Codebuild
SAP instance on AWS 2012
Trusted Advisor
checks for Windows
SQL Server 2017
X-Ray .NET SDK
CustomerAdoption
Windows for Lightsail
.NET Core & Powershell
on AL2/Ubuntu
2008 Today
.NET Core 2.0 Support
with Lambda & X-Ray
6. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Account
Support
Support
Managed
Services
Professional
Services
Partner
Ecosystem
Training &
Certification
Solution
Architects
Account
Management
Security &
Pricing Reports
Technical Acct.
Management
Marketplace
Business
Applications
DevOps Tools
Business
Intelligence
Security
Networking
Database &
Storage
SaaS
Subscriptions
Operating
Systems
Mobile
Build, Test,
Monitor Apps
Push
Notifications
Build, Deploy,
Manage APIs
Device
Testing
Identity
Enterprise
Applications
Document
Sharing
Email &
Calendaring
Hosted
Desktops
Application
Streaming
Backup
Game
Development
3D Game
Engine
Multi-player
Backends
Mgmt. Tools
Monitoring
Auditing
Service
Catalog
Server
Management
Configuration
Tracking
Optimization
Resource
Templates
Automation
Analytics
Query Large
Data Sets
Elasticsearch
Business
Analytics
Hadoop/Spark
Real-time Data
Streaming
Orchestration
Workflows
Managed
Search
Managed ETL
AI
Voice & Text
Chatbots
Machine
Learning
Text-to-
Speech. NLP
Image
Analysis
IoT
Rules Engine
Local Compute
and Sync
Device
Shadows
Device
Gateway
Registry
Hybrid
Devices &
Edge Systems
Data
Integration
Integrated
Networking
Resource
Management
VMware on
AWS
Identity
Federation
Migration
Application
Discovery
Application
Migration
Database
Migration
Server
Migration
Data
Migration
Infrastructure Regions
Availability
Zones
Points of
Presence
Compute Containers
Event-driven
Computing
Virtual
Machines
Simple
Servers
Auto Scaling Batch
Web
Applications
Storage
Object
Storage
Archive Block Storage
Managed File
Storage
Exabyte-scale
Data Transport
Database MariaDB
Data
Warehousing
NoSQLAurora MySQL Oracle SQL ServerPostgreSQL
Application
Services
Transcoding
Step
Functions
Messaging
Security
Certificate
Management
Web App.
Firewall
Identity &
Access
Key Storage &
Management
DDoS
Protection
Application
Analysis
Active
Directory
Dev Tools
Private Git
Repositories
Continuous
Delivery
Build, Test,
and Debug
Deployment
Networking
Isolated
Resources
Dedicated
Connections
Load
Balancing
Scalable DNSGlobal CDN
The
AWS
Platform VR
VR/AR
Bare-Metal
Media
Store/Convert
Live
Threat
detection
Graph
Analytics
Management
Defender
Managed
Models
Video
Transcribe
Translate
Deep L.
Camera
Select
7. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
But, I’m a .NET Shop!
And we are, too!
AWS Elastic
Beanstalk
AWS
CodeBuild
AWS SDK for .NET,
PowerShell
& Visual Studio
Toolkit
Visual Studio
Team Services
Microsoft IIS
.NET Core 2.0
AWS Lambda .NET Core 2.0
Amazon EC2 Windows and
SQL Server
8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
.NET Core is popular
• According to CIO Magazine, 74% of Fortune 500 enterprises have line-of-
business apps running on .NET
• In the 2017 Stack Overflow developer survey, C# was the third most
popular technology for server-side development, while .NET Core was the
second most popular server-side framework right behind node.js.
9. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Hosting options for .NET applications
AMAZON EC2 AWS LAMBDA
Amazon API
Gateway
AMAZON ECS
VMS CONTAINERS SERVERLESS
10. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon S3 Amazon
DynamoDB
Amazon
Kinesis
AWS
CloudFormation
AWS CloudTrail Amazon
CloudWatch
Amazon
Cognito
Amazon SNSAmazon
SES
Cron events
Data stores Endpoints
Development and management tools Event/message services
Example of services used for serverless architecture
… and a few more with more on the way!
AWS
CodeCommit
Amazon
API Gateway
Amazon
Alexa
AWS IoT AWS Step
Functions
11. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Example of microservice Architecture
Lambda
12. Massive Scale with Lambda
Thomson Reuters processes 4,000 requests per second
FINRA processes half a trillion validations of stock trades daily
Hearst reduced the time to ingest and process data for its
analytics pipeline by 97%
Vevo can handle spikes of 80x normal traffic
Expedia triggers 1.2 billion Lambda requests each month
13. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
This Is My Architecture - Refactoring .NET
Services to Microservices
Experian Credit Services
• 2.5M visitors/month
• 85K logins/day
• 70 microservices
3.5K API requests/sec.
• PCI Compliant
• 1 year refactoring to Linux
14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Where do you want to be?
• Stateless
• Highly scalable, self-healing, available
• Containerized microservices
• AWS serverless platform
• AWS Lambda
• AWS Step Functions
• Amazon API Gateway
• Amazon DynamoDB
• Amazon Simple Notification Service
• Amazon Simple Queue Service
• Dynamic/managed allocation of resources
• Amazon EC2 Container Service
• AWS Batch
15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
.NET Core AWS Lambda architecture
Amazon S3
CloudFront
Amazon API
Gateway
AWS
Lambda
Amazon
ElastiCache
Amazon
DynamoDB
RDS for
SQL server
static
content
16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
.NET Core EC2 container architecture
Amazon S3
CloudFront
Amazon
ElastiCache
Amazon
DynamoDB
RDS for
SQL server
static
content
Application
load
balancer
Amazon ECS
17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Windows and .NET-based
workloads are first-class
citizens on AWS
18. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Developers
Getting Started
with AWS
19. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://aws.amazon.com/developer/
AWS Developer Center
20. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Developer CentralDevelop
Manage
Connect
Learn
SDK for .NET
Visual Studio Toolkit
Beanstalk Deploy
Windows PowerShell
Windows on EC2
RDS for SQL Server
Community Forum
AWS for GitHub
Articles
Sample Code
Whitepapers
Comprehensive Set of SDK, Tools and Resources
21. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Windows Development Tools
Visual Studio
PowerShell
NuGet
Command line
22. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Tools for Windows
AWS Toolkit for
Visual Studio
AWS SDK for
.NET
AWS Tools for
Powershell
AWS CLI
Visual Studio
PowerShell
NuGet
Command line
23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Toolkit for Visual Studio
Full integration in Visual Studio
AWS Toolkit
for Visual
Studio
.NET SDK
24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserv
Visual Studio project templates
for AWS Console and Web Apps
AWS Explorer tree view of AWS
resources
Right-Click publish Web Apps to
AWS Elastic Beanstalk
Includes the .NET 3.5 and .NET 4.5 AWS SDK and the AWS Tools for Windows
PowerShell module
Manage S3 Buckets, manage IAM users, groups, and policies, view, create, and
delete Amazon DynamoDB tables, manage Amazon SQS queues and SNS
topics, and more
25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Toolkit: Starter Templates
26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Toolkit: Boilerplate Templates
27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Toolkit: Elastic Beanstalk
28. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Toolkit for Visual Studio
Visual Studio AWS Toolkit for
Visual Studio
AWS SDK
for .NET
Amazon
EC2
AWS
Elastic
Beanstalk
Amazon
S3
Amazon
DynamoDB
Other
100+
Services
29. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Toolkit: Advanced Integration
AWS Elastic Beanstalk
• Deploy from within Visual Studio/automatic log rotation to Amazon S3
AWS CodeCommit/CodePipeline/CodeDeploy
• Manage a large fleet (on-premises and cloud-based)
.NET SDK and PowerShell cmdlets
• Integration in custom build pipelines in TFS or CruiseControl.NET
AWS native integrations
• Jenkins, Bamboo have native integration to AWS
• Other IDE support AWS (Unity, Xamarin Studio, Eclipse…)
30. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SDKs
Ruby
iOS
Python (boto)
Android Node.js
AWS Toolkit
for Visual
Studio
.NET
AWS Toolkit
for Eclipse
PHP
AWS Tools
for Windows
PowerShell
AWS CLI
JavaScriptJava
Xamarin
31. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS & Microsoft.NET: Tooling Built for (& with)
Developers
32. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SDK for .NET
33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserv
.NET SDK
• The SDK can be downloaded from NuGet or installed using the MSI package
• Distributed as multiple service-specific packages on NuGet.
• Example package names include AWSSDK.EC2, AWSSDK.S3, and
AWSSDK.DynamoDB.
• Each of these depends on the AWSSDK.Core (will automatically be installed in
your project if you reference any of the service packages)
Cool Features:
• .NET Core Support, Including Support for Serverless Application Development
• Amazon S3 TransferUtility
• Amazon S3 Client-side Encryption
• Amazon DynamoDB Object Persistence Framework
• Amazon Glacier ArchiveTransferManager
• Mobile support for Portable Class Library and Xamarin Projects
• Amazon DynamoDB Session State Provider
34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserv
APIs require Access Key and Secret Access Key
A New and Standardized Way to Manage Credentials in the AWS SDKs
Use IAM role (only for API calls made from EC2) –
YES
5 choices where you can
put keys:
1. In source code – NO
2. In app.config – NO
3. In credentials file – YES
4. In SDK store – YES
35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserv
Manage AWS Resources and
Services from PowerShell
Perform many of the same
actions available in the AWS
SDK for .NET
Right-Click publish Web
Apps to AWS Elastic
Beanstalk
36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserv
Visual Studio Team Services and Team Found. Server
Integration
Create build and release pipelines
hosted within VSTS and TFS to
interact with AWS services.
Install into your online VSTS
account, or install into an
on-premises Team Foundation
Server instance.
Cool Features: Deploy to Beanstalk Enviornments, Create/Update
CloudFormation Stack, AWS S3 Download/Upload into your pipeline, run
cmdlets from AWS Tools for Windows PowerShell…
37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserv
Example VSTS Pipeline integration
38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tech Byes .NET Twitch Series with Live Coding
39. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Accelerate Release of your
Applications
40. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
automation
Software development lifecycle
source code production
hosting
releasetestbuild
CI/CD Pipeline
AWS Dev Tools increase the speed of your SDLC hence the speed
of innovation
41. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Release processes levels
Source Build Test Production
Continuous integration
Continuous delivery
Continuous deployment
42. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
MonitorProvisionDeployTestBuildCode
Elastic Beanstalk
OpsWorks
Cloud
Watch
Cloud
Formation
Code
Deploy
Code
Commit
Code
Pipeline
AWS DevOps Services
43. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example of a .NET CI/CD Pipeline
AWS CodeDeploy
SourceBucket
Push/Pull
Poll
Push
BuildServer
TestServer(s)
HTTPS ELB
endpoint
HTTPS ELB
endpoint
44. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeCommit
Data redundancy across AZs
Data at rest encryption
Integrated with AWS Identity and Access Management
No repo size limit
git push CodeCommit
Git objects
in S3
Git index
in DynamoDB
Encryption key
in KMS
SSH or HTTPS
Secure, scalable, and managed Git source control
45. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Continuous delivery service for fast and
reliable application updates
Model and visualize your software release
process
Builds, tests, and deploys your code every time
there is a code change
Integrates with third-party tools and AWS
AWS CodePipeline
46. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
MonitorProvisionDeployTestBuildCode
Elastic Beanstalk
OpsWorks
Cloud
Watch
Cloud
Formation
Code
Deploy
Code
Commit
Code
Pipeline
AWS DevOps Services
47. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
MonitorProvisionDeployTestBuildCode
Elastic Beanstalk
OpsWorks
Cloud
Watch
Cloud
Formation
Code
Deploy
AWS DevOps Services
48. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Automates code deployments to any instance
Handles the complexity of updating your
applications
Avoid downtime during application deployment
Deploy to Amazon EC2 or on-premises
servers, in any language and on any operating
system
Integrates with third-party tools and AWS
AWS CodeDeploy
49. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
v2 v2 v2 v2 v2 v2
one at a time
half at a time
all at once
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agent Agent
Dev deployment group
OR
Prod deployment group
Agent
AgentAgent
Agent Agent
Agent
AWS CodeDeploy
50. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Elastic Beanstalk (EB)
Easily deploy, monitor, and scale three-tier web
applications and services.
Infrastructure provisioned and managed by EB – but you
maintain complete control.
Preconfigured application containers that are easily
customizable.
Support for:
51. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Elastic Beanstalk
Your code
HTTP Server
Application Server
Language Interpreter
Operating System
Host
Elastic Beanstalk configures
each EC2 instance in your
environment with the
components necessary to run
applications for the selected
platform. No more worrying
about logging into instances to
install and configure you
application stack.
Focus on building your
application
Provided by you
Provided and managed by AWS Elastic Beanstalk (EB)
52. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Gives developers and systems administrators
an easy way to create and manage a collection
of related AWS resources
Understands dependencies and supports
rollbacks and versioning
Allows for reusable component design
strategies
Supports a portable JSON or YAML format
Authoring tools continue to improve
AWS CloudFormation
53. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CI/CD Pipeline
Continuous Integration / Continuous Deployment
54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why does this matter?
55. Summary
• Windows and .NET-based workloads are first-class
citizens on AWS!
• Achieve massive scale, drive down costs, increase
operational efficiency and developer productivity.
• Many paths lead to Lambda!
• Lambda with C# is growing, get involved on the GitHub
site!
• Reach out to your local AWS Solutions Architect for
advice in your modernisation projects
56. Useful Links
AWS Toolkit for Visual Studio
https://aws.amazon.com/visualstudio/
AWS Lambda .NET GitHub
https://github.com/aws/aws-lambda-dotnet
AWS Logging .NET
• https://github.com/aws/aws-logging-dotnet
AWS Serverless Application Model (AWS SAM)
• https://github.com/awslabs/serverless-application-model
AWS .NET Developer Blog
• https://aws.amazon.com/blogs/developer/category/net/
57. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you
58. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Appendix
59. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeStar
• CodeStar sets up your entire development and continuous delivery
toolchain for coding, building, testing, and deploying your
application
• Supports ASP.NET Core & Visual Studio
60. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example Pipelines
61. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example Pipelines
62. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example Pipelines