© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Microsoft DevOps on AWS
Sriwantha Attanayake
Partner Solution Architect
Amazon Web Services
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS CloudFormation
AWS CodeDeploy
AWS Elastic Beanstalk
Amazon Elastic Container Service
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
• AWS SDK for .NET and .NET Core
• AWS Tools for PowerShell (Windows and Core)
API Access
• AWS Toolkit for Visual Studio
• AWS Toolkit for VS Code (Developer Preview)
Code Construction
• AWS Tools for Azure DevOps (VSTS) v1.1
• Code* Suite Integration (e.g., AWS CodeBuild)
DevOps CI/CD
• X-Ray SDK for .NET
• DAX SDK for .NET
Domain specific
AWS developer tools for .NET
• AWS SDK for Xamarin
• AWS SDK for Unity
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Azure DevOps services
Azure boardsAzure repos Azure test plans Azure artifacts
Extensions marketplace
Azure pipelines
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
AWS CloudFormation
• JSON/YAML-formatted file
describing the resources to be
created. Treat it as source code
& put it in your repository
• Interprets AWS CloudFormation
template into stacks of AWS
resources
Template AWS CloudFormation Engine
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Network Stack
Active Directory Stack
SQL Stack API Stack
SharePoint
Stack
IIS Application
Stack
Microsoft servers solution – 6 CloudFormation stacks
Organize your solutions into stacks
Layer 3
Layer 2
Layer 1
https://aws.amazon.com/quickstart/
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What we will be building
Network
template
Azure repos Azure pipelines Build agent AWS
CloudFormation
VPC
Private subnet
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Tools for Microsoft Visual Studio Team Services /Azure DevOps
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Other ways to integrate with your CI/CD system
AWS Tools for
Windows PowerShell
AWS CLI
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
Elastic Beanstalk vs. DIY
Your code
HTTP server
Application server
Language interpreter
Operating system
Host
Elastic Beanstalk configures each
EC2 instance in your environment
with the components such as load
balancers & auto scaling groups
necessary to run applications for
the selected platform . No more
worrying about logging into
instances to install and configure
your application stack.
Focus on building your
application
Provided by you
Provided and managed by Elastic Beanstalk
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What we will be building
ASP.Net
web application
Azure repos Azure pipelines Build agent
Bucket
AWS Elastic
Beanstalk
Deployment
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
What we will be building
Console App Azure repos Azure pipelines Build agent
Bucket
AWS CodeDeploy
machine1
machine2
mylaptop
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
Deployment configurations
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
How it works: package an application
version: 0.0
os: windows
files:
- source: MyDonkeyApp.dll
destination: C:TempMyDonkeyApp
- source: MyDonkeyApp.runtimeconfig.json
destination: C:TempMyDonkeyApp
- source: MyDonkeyApp.deps.json
destination: C:TempMyDonkeyApp
- source: DeploymentScripts
destination: C:TempMyDonkeyAppDeploymentScripts
hooks:
BeforeInstall:
- location: DeploymentScriptsPSSample-BeforeInstall.ps1
timeout: 600
AfterInstall:
- location: DeploymentScriptsPSSample-AfterInstall.ps1
timeout: 600
ApplicationStart:
ValidateService:
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
Container orchestration
Amazon Elastic
Container Registry
Amazon Elastic
Container Service
Amazon Elastic
Container Service for
Kubernetes
AWS Fargate
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
What we will be building
ASP.NET core
Web Application
Azure repos Azure pipelines Build agent
Amazon ECR
Container V1.0
Elastic Load Balancing
AWS Fargate
Service
Container V1.0
Image
Container V2.0
Container V2.0
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
AWS Systems Manager : Parameter Store
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Attach the permission
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ "ssm:DescribeParameters" ],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [ "ssm:GetParameters" ],
"Resource": [
"arn:aws:ssm:ap-southeast-2:919173020320:parameter/finance/prod/*"
]
},
{
"Effect": "Allow",
"Action": ["kms:Decrypt"],
"Resource": [
"arn:aws:ssm:ap-southeast-2:919173020320:parameter/finance/dev/*"
]
}
]
}
Build Agent in
Amazon EC2
instance
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Access the parameter
PS C:> Get-SSMParameterValue -Name /finance/prod/forex-trading-platform/db-password -WithDecryption
$true | Select -ExpandProperty Parameters | Select Value
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Microsoft DevOps on AWS Boot Camp
Thank you!
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sriwantha Attanayake
sriwanth@amazon.com
www.linkedin.com/in/sriwantha/

AWS Summit Singapore 2019 | Microsoft DevOps on AWS

  • 1.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Microsoft DevOps on AWS Sriwantha Attanayake Partner Solution Architect Amazon Web Services
  • 2.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS CloudFormation AWS CodeDeploy AWS Elastic Beanstalk Amazon Elastic Container Service
  • 3.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T • AWS SDK for .NET and .NET Core • AWS Tools for PowerShell (Windows and Core) API Access • AWS Toolkit for Visual Studio • AWS Toolkit for VS Code (Developer Preview) Code Construction • AWS Tools for Azure DevOps (VSTS) v1.1 • Code* Suite Integration (e.g., AWS CodeBuild) DevOps CI/CD • X-Ray SDK for .NET • DAX SDK for .NET Domain specific AWS developer tools for .NET • AWS SDK for Xamarin • AWS SDK for Unity
  • 4.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Azure DevOps services Azure boardsAzure repos Azure test plans Azure artifacts Extensions marketplace Azure pipelines
  • 5.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 6.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS CloudFormation • JSON/YAML-formatted file describing the resources to be created. Treat it as source code & put it in your repository • Interprets AWS CloudFormation template into stacks of AWS resources Template AWS CloudFormation Engine
  • 7.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Network Stack Active Directory Stack SQL Stack API Stack SharePoint Stack IIS Application Stack Microsoft servers solution – 6 CloudFormation stacks Organize your solutions into stacks Layer 3 Layer 2 Layer 1
  • 8.
  • 9.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T What we will be building Network template Azure repos Azure pipelines Build agent AWS CloudFormation VPC Private subnet
  • 10.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 12.
    AWS Tools forMicrosoft Visual Studio Team Services /Azure DevOps
  • 13.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Other ways to integrate with your CI/CD system AWS Tools for Windows PowerShell AWS CLI
  • 14.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 15.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Elastic Beanstalk vs. DIY Your code HTTP server Application server Language interpreter Operating system Host Elastic Beanstalk configures each EC2 instance in your environment with the components such as load balancers & auto scaling groups necessary to run applications for the selected platform . No more worrying about logging into instances to install and configure your application stack. Focus on building your application Provided by you Provided and managed by Elastic Beanstalk
  • 16.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T What we will be building ASP.Net web application Azure repos Azure pipelines Build agent Bucket AWS Elastic Beanstalk Deployment
  • 17.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 19.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 20.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T What we will be building Console App Azure repos Azure pipelines Build agent Bucket AWS CodeDeploy machine1 machine2 mylaptop
  • 21.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 Deployment configurations
  • 22.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. How it works: package an application version: 0.0 os: windows files: - source: MyDonkeyApp.dll destination: C:TempMyDonkeyApp - source: MyDonkeyApp.runtimeconfig.json destination: C:TempMyDonkeyApp - source: MyDonkeyApp.deps.json destination: C:TempMyDonkeyApp - source: DeploymentScripts destination: C:TempMyDonkeyAppDeploymentScripts hooks: BeforeInstall: - location: DeploymentScriptsPSSample-BeforeInstall.ps1 timeout: 600 AfterInstall: - location: DeploymentScriptsPSSample-AfterInstall.ps1 timeout: 600 ApplicationStart: ValidateService:
  • 23.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 25.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 26.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Container orchestration Amazon Elastic Container Registry Amazon Elastic Container Service Amazon Elastic Container Service for Kubernetes AWS Fargate
  • 27.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T What we will be building ASP.NET core Web Application Azure repos Azure pipelines Build agent Amazon ECR Container V1.0 Elastic Load Balancing AWS Fargate Service Container V1.0 Image Container V2.0 Container V2.0
  • 28.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 30.
    S U MM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 31.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS Systems Manager : Parameter Store
  • 32.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Attach the permission { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:ap-southeast-2:919173020320:parameter/finance/prod/*" ] }, { "Effect": "Allow", "Action": ["kms:Decrypt"], "Resource": [ "arn:aws:ssm:ap-southeast-2:919173020320:parameter/finance/dev/*" ] } ] } Build Agent in Amazon EC2 instance
  • 33.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Access the parameter PS C:> Get-SSMParameterValue -Name /finance/prod/forex-trading-platform/db-password -WithDecryption $true | Select -ExpandProperty Parameters | Select Value
  • 34.
    © 2019, AmazonWeb Services, Inc. or its affiliates. All rights reserved.S U M M I T Microsoft DevOps on AWS Boot Camp
  • 35.
    Thank you! S UM M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Sriwantha Attanayake sriwanth@amazon.com www.linkedin.com/in/sriwantha/