SlideShare a Scribd company logo
Continuous Deployment 
GIT to AWS and everything in between.
The CI Server – Github to Build 
 The CI Server has a project that is connected to a Github repo (1:1 Mapping) 
 Each Github repo has a single Solution file (.sln) with multiple projects 
(.csproj) 
 The CI Server will watch the repo for changes pushed to master and trigger a 
build automatically
The CI Server – Build to NuGet 
 Each build in the CI Server will have logic to generate NuSpec file for libraries 
and websites (an existing NuSpec will override the default generation logic) 
 The NuSpec file will be ‘pack’ed into a NuGet package for each website, 
library, and declared NuSpec file 
 Each NuPkg (package) created will be ‘push’ed to the NuGet Gallery 
 Library packages will be consumed from gallery while developing code to 
share functionality 
 Website packages will be downloaded and configured on new ‘computers’ in 
AWS
AWS – Instance Configuration Example
AWS – AMI Configuration
AWS –Instance Creation Powershell
Creating a new ‘computer’ in AWS 
 Two components: 
 Configuration file 
 Powershell script to create and configure the EC2 instance 
 One command will create and fully configure a new instance: 
 .AWS-CreateDeployedInstance.ps1 -Credentials $creds -Region 'us-east-1' - 
ConfigXml './AWS-Config.xml' -InstanceName 'MyComputersNameInConfig‘ 
 The application(s) that are to be deployed must exist in the NuGet Gallery 
and be specified in the Configuration file
AWS – New Instance Steps (AWS API) 
 The new instance will be created with the specified AMI (finding latest if 
applicable; i.e. latest Windows 2012 R2 AMI from Amazon…) 
 The new instance will be named 
 The new instance get the specified EBS Volumes (disk drives) and name them 
 The new instance will get the specified Elastic IP attached if applicable 
 The new instance will get configured with certain necessary components (i.e. 
IIS, ASP.NET) and Choclatey NuGet packages (i.e. Chrome, 7-Zip) using 
Instance Creation Powershell
AWS – Instance Configuration Steps 
(WinRM – Remote Powershell Commands) 
 When the new instance is running we will install and configure the specified 
software (NuGet packages in the private gallery) 
 The commands will be executed via WinRM as remote commands to the new 
instance 
 Any necessary support configuration will be installed (i.e. https certificates) 
 Once the packages are downloaded the appropriate mappings in IIS
Overview – Code to AWS 
DEPLOYMENT POWERSHELL SCRIPT (LOCALLY RUN) 
• Terminate existing and creates EC2 instance (uses 
AWS API) 
• Restart computer to finalize creation tasks 
• Invoke remote deployment logic to configure 
machine with necessary software 
New 
Instance 
BUILD PROCESS 
• Creates new build agent in Azure 
• Fetch source from Github 
• Build dlls and packages 
• Push packages to NuGet Gallery 
• Run StyleCop 
• Run Unit Tests 
NuGet Packages are pulled
Overview – 
Detailed Deployment 
New 
Instance 
DEPLOYMENT POWERSHELL SCRIPT (RUN LOCALLY) 
• Terminate existing EC2 instance if necessary (uses AWS API) 
• Creates EC2 instance (uses AWS API), with user data 
INSTANCE CREATION POWERSHELL (USER 
DATA) 
• Install common dev tools via Choclatey 
• Rename computer 
• Setup WinRM for remote management 
• Enable Powershell script execution 
DEPLOYMENT POWERSHELL SCRIPT (CONTINUED) 
• Names instance and EBS volumes 
• Configures EIP if applicable 
• Wait for WinRM availability 
• Restart computer to finalize creation 
• Wait for WinRM availability 
• Invoke remote deployment logic 
New 
Instance 
WINRM INVOKED POWERSHELL 
• Install IIS and ASP.NET 
• Install Certificate (passed through WinRM) 
• Download application from NuGet Gallery 
• Create AppPool in IIS 
• Create Site in IIS pointed to download 
user data 
Invoke WinRM deployment 
Wait for AWS to recognize instance
Resources 
 Author: Lawson Caudill – http://www.getthinktank.com 
 Powershell tools available at: 
 http://www.naosllc.com 
 https://github.com/NaosFramework/

More Related Content

PPTX
GlobalAzureBootCamp 2018
PPTX
Docker in OpenStack
PDF
DevStack: A developers cloud in a box.
PDF
(2016-06-11) Packer: Make Multi-Platform Images
PDF
Masterless Puppet Using AWS S3 Buckets and IAM Roles
PDF
Azure workshop
PDF
How Ansible Tower and Prometheus can help automate continuous deployments
PDF
pio_present
GlobalAzureBootCamp 2018
Docker in OpenStack
DevStack: A developers cloud in a box.
(2016-06-11) Packer: Make Multi-Platform Images
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Azure workshop
How Ansible Tower and Prometheus can help automate continuous deployments
pio_present

What's hot (19)

PPTX
DevStack: Learn OpenStack by Running OpenStack
PDF
SEP DevOps Ignite Talk - Packer
PDF
Ansible Oxford - Cows & Containers
PPT
Docker and CloudStack
PDF
AWS ECSを用いてbatchを動かそう
PDF
Docker Birtday #5
PPTX
Automating aws infrastructure and code deployments using Ansible @WebEngage
PDF
Build automated Machine Images using Packer
PDF
macos installation automation
PPTX
Setting up Kubernetes with tectonic
PDF
[Open stack] heat + docker
PDF
Docker slides
PDF
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
PPTX
Kubernetes HA @ AppDirect - Montreal Kubernetes Meetup
PDF
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
PPTX
Dev ops night i the new infrastructure landscape
PPTX
CoreOS: The Inside and Outside of Linux Containers
PDF
Deploy django apps using docker
PDF
DevOps 2015 - Dancing with Chef
DevStack: Learn OpenStack by Running OpenStack
SEP DevOps Ignite Talk - Packer
Ansible Oxford - Cows & Containers
Docker and CloudStack
AWS ECSを用いてbatchを動かそう
Docker Birtday #5
Automating aws infrastructure and code deployments using Ansible @WebEngage
Build automated Machine Images using Packer
macos installation automation
Setting up Kubernetes with tectonic
[Open stack] heat + docker
Docker slides
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
Kubernetes HA @ AppDirect - Montreal Kubernetes Meetup
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
Dev ops night i the new infrastructure landscape
CoreOS: The Inside and Outside of Linux Containers
Deploy django apps using docker
DevOps 2015 - Dancing with Chef
Ad

Viewers also liked (6)

PPTX
Intro to Cloud Architecture
PPTX
Intro to AWS
PPTX
Intro to Stylecop
PPTX
.NET Database Toolkit
PPT
A Scalable, Commodity Data Center Network Architecture
PPTX
AWS Network Topology/Architecture
Intro to Cloud Architecture
Intro to AWS
Intro to Stylecop
.NET Database Toolkit
A Scalable, Commodity Data Center Network Architecture
AWS Network Topology/Architecture
Ad

Similar to Continuous Deployment (20)

PPTX
PDF
Ansible - Hands on Training
PDF
Ansible Tutorial.pdf
PDF
Release 8.1 - Breakfast Paris
PDF
ShipItCon - Continuous Deployment and Multicloud with Ansible and Kubernetes
PDF
Running your dockerized application(s) on AWS Elastic Container Service
PPTX
KuberneteSADASDSADASDASDASDASDASDAs Labs.pptx
PDF
Deploying a Kubernetes App with Amazon EKS
PDF
Building a Kubernetes App with Amazon EKS
PPTX
dockerSAW
PPTX
Amazon cloudtutorial
PDF
Kubernetes for the PHP developer
PDF
CIbox - OpenSource solution for making your #devops better
PPTX
ASP.NET Core 1.0
PPTX
Kubernetes - Using Persistent Disks with WordPress and MySQL
PPTX
(ATS3-DEV02) Scripting with .NET Assemblies in Symyx Notebook
PDF
Aws container webinar day 1
PDF
Deploying Data Science with Docker and AWS
PPTX
Packer
PDF
1. CNCF kubernetes meetup - Ondrej Sika
Ansible - Hands on Training
Ansible Tutorial.pdf
Release 8.1 - Breakfast Paris
ShipItCon - Continuous Deployment and Multicloud with Ansible and Kubernetes
Running your dockerized application(s) on AWS Elastic Container Service
KuberneteSADASDSADASDASDASDASDASDAs Labs.pptx
Deploying a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKS
dockerSAW
Amazon cloudtutorial
Kubernetes for the PHP developer
CIbox - OpenSource solution for making your #devops better
ASP.NET Core 1.0
Kubernetes - Using Persistent Disks with WordPress and MySQL
(ATS3-DEV02) Scripting with .NET Assemblies in Symyx Notebook
Aws container webinar day 1
Deploying Data Science with Docker and AWS
Packer
1. CNCF kubernetes meetup - Ondrej Sika

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Big Data Technologies - Introduction.pptx
PDF
KodekX | Application Modernization Development
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PPTX
Spectroscopy.pptx food analysis technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Network Security Unit 5.pdf for BCA BBA.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
NewMind AI Weekly Chronicles - August'25 Week I
Big Data Technologies - Introduction.pptx
KodekX | Application Modernization Development
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Chapter 3 Spatial Domain Image Processing.pdf
Empathic Computing: Creating Shared Understanding
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
The AUB Centre for AI in Media Proposal.docx
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
Encapsulation_ Review paper, used for researhc scholars
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
Spectroscopy.pptx food analysis technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
Mobile App Security Testing_ A Comprehensive Guide.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Advanced methodologies resolving dimensionality complications for autism neur...
Network Security Unit 5.pdf for BCA BBA.

Continuous Deployment

  • 1. Continuous Deployment GIT to AWS and everything in between.
  • 2. The CI Server – Github to Build  The CI Server has a project that is connected to a Github repo (1:1 Mapping)  Each Github repo has a single Solution file (.sln) with multiple projects (.csproj)  The CI Server will watch the repo for changes pushed to master and trigger a build automatically
  • 3. The CI Server – Build to NuGet  Each build in the CI Server will have logic to generate NuSpec file for libraries and websites (an existing NuSpec will override the default generation logic)  The NuSpec file will be ‘pack’ed into a NuGet package for each website, library, and declared NuSpec file  Each NuPkg (package) created will be ‘push’ed to the NuGet Gallery  Library packages will be consumed from gallery while developing code to share functionality  Website packages will be downloaded and configured on new ‘computers’ in AWS
  • 4. AWS – Instance Configuration Example
  • 5. AWS – AMI Configuration
  • 7. Creating a new ‘computer’ in AWS  Two components:  Configuration file  Powershell script to create and configure the EC2 instance  One command will create and fully configure a new instance:  .AWS-CreateDeployedInstance.ps1 -Credentials $creds -Region 'us-east-1' - ConfigXml './AWS-Config.xml' -InstanceName 'MyComputersNameInConfig‘  The application(s) that are to be deployed must exist in the NuGet Gallery and be specified in the Configuration file
  • 8. AWS – New Instance Steps (AWS API)  The new instance will be created with the specified AMI (finding latest if applicable; i.e. latest Windows 2012 R2 AMI from Amazon…)  The new instance will be named  The new instance get the specified EBS Volumes (disk drives) and name them  The new instance will get the specified Elastic IP attached if applicable  The new instance will get configured with certain necessary components (i.e. IIS, ASP.NET) and Choclatey NuGet packages (i.e. Chrome, 7-Zip) using Instance Creation Powershell
  • 9. AWS – Instance Configuration Steps (WinRM – Remote Powershell Commands)  When the new instance is running we will install and configure the specified software (NuGet packages in the private gallery)  The commands will be executed via WinRM as remote commands to the new instance  Any necessary support configuration will be installed (i.e. https certificates)  Once the packages are downloaded the appropriate mappings in IIS
  • 10. Overview – Code to AWS DEPLOYMENT POWERSHELL SCRIPT (LOCALLY RUN) • Terminate existing and creates EC2 instance (uses AWS API) • Restart computer to finalize creation tasks • Invoke remote deployment logic to configure machine with necessary software New Instance BUILD PROCESS • Creates new build agent in Azure • Fetch source from Github • Build dlls and packages • Push packages to NuGet Gallery • Run StyleCop • Run Unit Tests NuGet Packages are pulled
  • 11. Overview – Detailed Deployment New Instance DEPLOYMENT POWERSHELL SCRIPT (RUN LOCALLY) • Terminate existing EC2 instance if necessary (uses AWS API) • Creates EC2 instance (uses AWS API), with user data INSTANCE CREATION POWERSHELL (USER DATA) • Install common dev tools via Choclatey • Rename computer • Setup WinRM for remote management • Enable Powershell script execution DEPLOYMENT POWERSHELL SCRIPT (CONTINUED) • Names instance and EBS volumes • Configures EIP if applicable • Wait for WinRM availability • Restart computer to finalize creation • Wait for WinRM availability • Invoke remote deployment logic New Instance WINRM INVOKED POWERSHELL • Install IIS and ASP.NET • Install Certificate (passed through WinRM) • Download application from NuGet Gallery • Create AppPool in IIS • Create Site in IIS pointed to download user data Invoke WinRM deployment Wait for AWS to recognize instance
  • 12. Resources  Author: Lawson Caudill – http://www.getthinktank.com  Powershell tools available at:  http://www.naosllc.com  https://github.com/NaosFramework/