To support the business as best as possible, it’s important for Development to issue new features — or greenfield solutions — to market as quickly as possible. It’s not a stretch to say that many organizations’ ability to compete successfully depends on their speedy delivery of new products to customers. And in some cases, first-mover status is the difference between owning a market or bowing out of one.
To that end, code delivery should be fast, automated, and boring. Just like an airplane ride, you don’t really want any excitement in your CD process. Continuous delivery (CD) taken to its logical extension is continuous deployment where builds that pass the automated gates in your process are then automatically deployed to production. Not every company can reach the goal of CD due to compliance, or other business issues that mandate either a manual step in the process or a waiting period before deployment. However, when achieved, continuous deployment is certainly a benefit to the business.
- Provides the ability to automatically deliver updates to users when they are ready and available. No longer do users need to wait for batch updates to be conducted which means that updates can be delivered to market weeks, sometimes months faster.
- Results in faster delivery of code fixes and new features, which translates into greater customer satisfaction as customers are able to quickly begin using new features, benefiting from them immediately.
- Frees up Developers and Operations to focus on strategic initiatives, rather than process. Moreover, automation encourages the use of best practices, which means greater efficiency and security are built into the process.
How can AWS Developer Tools Services help?
We’ve had the opportunity to review the new AWS CodeBuild — a fully managed build service — and think it is a powerful tool for creating a completely serverless build pipeline. Together, AWS development tools services can provide continuous deployment to AWS ECS. Here’s how we built the workflow using these tools. (Hat tip to Chris Barclay at AWS for a great blog that walks-through these steps.)
For example, we recently worked with a healthcare organization that is making a transformation to its technology delivery by moving to a microservices architecture. Within this organization, Development works on multiple microservices and uses automation to submit its changes to the pipeline that they deliver from. At the time, CodePipeline did not have a function to deploy to AWS CloudFormation, so we went back to the customer and conducted an internal proof of concept, showing them how to unite the pipeline; all CloudFormation code follows the process outlined above.
While fully automated continuous delivery is the end goal, in our initial discussion, the team asked if the process could include a manual step. Indeed, CodePipeline can facilitate this request via a step for manual approval, which we took advantage of.
As AWS DevOps tools continue to be built and refined — and specifically those for Continuous Deployment — the benefits organizations see will only continue to grow. Indeed, as automation of the code pipeline increases, so does the quality of its results and the speed to market. Conversely, development costs will decrease, and productivity will grow.
*This was originally written by Flux7 Inc., which has become Flux7, an NTT DATA Services Company as of December 30, 2019
Post Date: 2/21/2017