reference deployment

CI/CD Pipeline for Microsoft Windows on AWS

Using Jenkins, Microsoft .NET, MSBuild, AWS CodeDeploy, and AWS CodePipeline

This Quick Start automatically deploys a continuous integration / continuous delivery (CI/CD) pipeline on AWS.

It uses standard Microsoft Windows technologies such as Microsoft Build Engine (MSBuild), Internet Information Services (IIS), Windows PowerShell, and .NET Framework in combination with the Jenkins CI tool and AWS services to deploy and demonstrate the CI/CD pipeline.

The AWS services for CI/CD include AWS CodePipeline, which is a CI orchestration service, and AWS CodeDeploy, which automates code deployments to Amazon Elastic Compute Cloud (Amazon EC2) instances.

You can use the Quick Start to integrate your own code push, build, and deploy pipeline with AWS services. You can also use the ASP.NET sample application provided with the Quick Start to see an automated end-to-end CI release deployed to AWS CodeDeploy servers that are running IIS.

AWS-Logo_Full-Color_100x60

This Quick Start was developed by
AWS solutions architects.

  •  What you'll build
  •  How to deploy
  •  Cost and licenses
  •  What you'll build
  • Use this Quick Start to automatically set up the following CI/CD environment on AWS:

    • A highly available AWS architecture that spans two Availability Zones. Each Availability Zone includes a virtual private cloud (VPC) with public and private subnets, and supports remote administration.
    • The subnets provide a public (DMZ) address space and a private address space.
    • The public subnets include NAT gateways and Remote Desktop (RD) gateways in an Auto Scaling group for outbound internet access.
    • The private subnet in the first Availability Zone hosts an MSBuild server with Jenkins installed, and a Windows Server instance with IIS and AWS CodeDeploy installed. The servers are bootstrapped from scratch using the base Amazon Machine Image (AMI) for Microsoft Windows Server 2012 R2.
    • Optionally, an Amazon RDS for SQL Server database instance is deployed in the private subnet to support the sample application, if you choose to include the sample application.
    • Optionally, a second AWS CodeDeploy server is created in a different Availability Zone from the first AWS CodeDeploy server, to allow you to test a load-balanced configuration in your pipeline. This configuration also enables you to validate rolling upgrade deployments through AWS CodeDeploy.

    The architecture built by this Quick Start supports AWS best practices for high availability and security. The Quick Start supports these options:

    • You can choose to include an optional ASP.NET sample application for testing or demonstration purposes.
    • You can use your own code package instead of the sample application.
    • You can publish your application to a single server or two servers.

    For a detailed discussion of best practices and options, see the deployment guide.

  •  How to deploy
  • To build your CI/CD environment on AWS, follow the instructions in the deployment guide. The deployment process includes these steps:

    1. If you don't already have an AWS account, sign up at https://aws.amazon.com.
    2. Launch the Quick Start. The deployment takes about 30 minutes.
    3. Validate that the pipeline ran end to end by monitoring the AWS CodePipeline console and the Jenkins dashboard.
    4. Modify the sample source code and deploy a new release.
    5. Clean up resources.

    Customization options include instance types, inclusion of the sample application, the number of AWS CodeDeploy servers, VPC configuration, and options for Jenkins, AWS CodeDeploy, and AWS CodePipeline.

  •  Cost and licenses
  • You are responsible for the cost of the AWS services used while running this Quick Start reference deployment. There is no additional cost for using the Quick Start. Prices are subject to change. See the pricing pages for each AWS service you will be using in this Quick Start for full details.

    This Quick Start launches the Amazon Machine Image (AMI) for Windows Server 2012 R2 and includes the license for the Windows operating system. The rest of the software deployed by the Quick Start is available as open source under the MIT license.