AWS Developer Tool Recap – Recent Enhancements to CodeCommit, CodePipeline, and CodeDeploy
AWS CodeCommit is a fully-managed source code control service. You can use it to host secure and highly scalable private Git repositories while continuing to use your existing Git tools and workflows (watch the Introduction to AWS CodeCommit video to learn more).
AWS CodeDeploy automates code deployment to Amazon Elastic Compute Cloud (Amazon EC2) instances and on-premises servers. You can update your application at a rapid clip, while avoiding downtime during deployment (watch the Introduction to AWS CodeDeploy video to learn more).
AWS CodePipeline is a continuous delivery service that you can use to streamline and automate your release process. Checkins to your repo (CodeCommit or Git) will initiate build, test, and deployment actions (watch Introducing AWS CodePipeline for an introduction). The build can be deployed to your EC2 instances or on-premises servers via CodeDeploy, AWS Elastic Beanstalk, or AWS OpsWorks.
You can combine these services with your existing build and testing tools to create an end-to-end software release pipeline, all orchestrated by CodePipeline.
We have made a lot of enhancements to the
Code* products this year and today seems like a good time to recap all of them for you! Many of these enhancements allow you to connect the developer tools to other parts of AWS so that you can continue to fine-tune your development process.
Here’s what’s new with CodeCommit:
- Repository Triggers
- Code Browsing
- Commit History
- Commit Visualization
- Elastic Beanstalk Integration
Repository Triggers – You can create Repository Triggers that Send Notification or Run Code whenever a change occurs in a CodeCommit repository (these are sometimes called webhooks — user-defined HTTP callbacks). These hooks will allow you to customize and automate your development workflow. Notifications can be delivered to an Amazon Simple Notification Service (SNS) topic or can invoke a Lambda function.
Code Browsing – You can Browse Your Code in the Console. This includes navigation through the source code tree and the code:
Commit History – You can View the Commit History for your repositories (mine is kind of quiet, hence the 2015-era dates):
Commit Visualization – You can View a Graphical Representation of the Commit History for your repositories:
Elastic Beanstalk Integration – You can Use CodeCommit Repositories with Elastic Beanstalk to store your project code for deployment to an Elastic Beanstalk environment.
Here’s what’s new with CodeDeploy:
- CloudWatch Events Integration
- CloudWatch Alarms and Automatic Deployment Rollback
- Push Notifications
- New Partner Integrations
CloudWatch Events Integration – You can Monitor and React to Deployment Changes with Amazon CloudWatch Events by configuring CloudWatch Events to stream changes in the state of your instances or deployments to an AWS Lambda function, an Amazon Kinesis stream, an Amazon Simple Queue Service (SQS) queue, or an SNS topic. You can build workflows and processes that are triggered by your changes. You could automatically terminate EC2 instances when a deployment fails or you could invoke a Lambda function that posts a message to a Slack channel.
CloudWatch Alarms and Automatic Deployment Rollback – CloudWatch Alarms give you another type of Monitoring for your Deployments. You can monitor metrics for the instances or Auto Scaling Groups managed by CodeDeploy and take action if they cross a threshold for a defined period of time, stop a deployment, or change the state of an instance by rebooting, terminating, or recovering it. You can also automatically rollback a deployment in response to a deployment failure or a CloudWatch Alarm.
Push Notifications – You can Receive Push Notifications via Amazon SNS for events related to your deployments and use them to track the state and progress of your deployment.
New Partner Integrations – Our CodeDeploy Partners have been hard at work, connecting their products to ours. Here are some of the most recent offerings:
And here’s what’s new with CodePipeline:
- AWS OpsWorks Integration
- Triggering of Lambda Functions
- Manual Approval Actions
- Information about Committed Changes
- New Partner Integrations
AWS OpsWorks Integration – You can Choose AWS OpsWorks as a Deployment Provider in the software release pipelines that you model in CodePipeline:
You can also configure CodePipeline to use OpsWorks to deploy your code using recipes contained in custom Chef cookbooks.
Triggering of Lambda Functions – You can now Trigger a Lambda Function as one of the actions in a stage of your software release pipeline. Because Lambda allows you to write functions to perform almost any task, you can customize the way your pipeline works:
Manual Approval Actions – You can now add Manual Approval Actions to your software release pipeline. Execution pauses until the code change is approved or rejected by someone with the required IAM permission:
Information about Committed Changes – You can now View Information About Committed Changes to the code flowing through your software release pipeline:
New Partner Integrations – Our CodePipeline Partners have been hard at work, connecting their products to ours.
New Online Content
In order to help you and your colleagues to understand the newest development methodologies, we have created some new introductory material:
Thanks for Reading!
I hope that you have enjoyed this quick look at some of the most recent additions to our development tools.
In order to help you to get some hands-on experience with continuous delivery, my colleagues have created a new Pipeline Starter Kit. The kit includes a AWS CloudFormation template that will create a VPC with two EC2 instances inside, a pair of applications (one for each EC2 instance, both deployed via CodeDeploy), and a pipeline that builds and then deploys the sample application, along with all of the necessary IAM service and instance roles.