Cost savings as a metric is hard to measure with automation. That’s likely why people don’t discuss it.
Technically, with automation, you’re spending more on tooling costs. The money you “save” generally comes in the form of developer velocity.
Velocity is the rate at which your developers can implement new features, bug fixes, or general tasks in a scrum type environment. With automation, your developers become more efficient and produce more results in the same amount of time and money spent. In a 2022 GitLab quiz, more than 82% of respondents said automation plays a “vital” role in developing and deploying safer and faster releases. It isn’t an option anymore.
AWS comes with sets of user-friendly automation tools to get you started. The company offers a full suite of integrated DevOps products, starting with AWS CodeCommit, a Git-compatible source code repository. AWS CodePipeline can pull code from your code repository and send it to AWS CodeBuild, which allows you extreme flexibility across your full automation workflow, including build, test, 3rd party tools, and more. Finally, AWS CodeDeploy can help you deploy your packaged code into AWS services like Amazon EC2, Amazon ECS or AWS Lambda.
Below are a couple of types of automation that can increase developer velocity and help drive value to customers without incurring significant additional spend.
Automated deployment of native AWS apps
Automated deployment is a method of deploying into an environment(s) (development, staging, QA, or even production) with minimal human interaction. The minimal human interaction increases developer velocity. It frees up the people who used to be in charge of deployments so they can focus on feature development or other high-value areas.
Even with the tangible benefit and significant upside, “minimal human interaction” can be a scary proposition. The good news with automation is that this isn't all-or-nothing.
Your team commonly deploys more to non-production environments than to prod. Automating these pre-prod environments can increase developer velocity while still allowing you control over production. Over time, as you improve your automation, you will build confidence in your pipeline and eventually leverage it for production deployment.
Automated Testing
After any deployment, automated or not, there is always some kind of testing to validate that the release works. However, manual testing can consume precious person-hours. By automating testing, you add several benefits to your current processes.
The first benefit is that you speed up feedback loops. With manual testing, you have to wait for a testing resource, wait on the tests, generate a report, and finally, give feedback. With automated testing, you have a proven tool specifically designed to do all of those steps immediately and deliver feedback in a fraction of the time.
The second benefit is overall improvement in code quality. When you automate tests, you also empower your developers to run tests locally. That allows them to test code prior to submitting it for code review. This means that you aren’t merging and deploying broken code.
The final benefit is developer velocity. Quick feedback cycles and the time saved in automating test execution give your developers more time to deliver value.
Serverless: Making native AWS apps truly native