AWS Cloud Operations & Migrations Blog

Accelerate Modernization outcomes with Automation

Introduction

As organizations move towards modernizing their workloads in the cloud, there are key capabilities that need to be in place to enable the success of the modernization journey. The capabilities include organization structure, modernization strategy, automation, team readiness, and stakeholder sponsorship. Out of these, automation plays an outsized role in realizing the benefits of modernization, especially in terms of agility, scalability, and operational efficiency.

But first, “automation” can mean a lot of things to a lot of people. In this post, automation refers to the tools and processes that use code and configuration to replace manual steps to achieve a particular outcome.

This post provides guidance to IT leaders on building an efficient delivery model that recognizes and leverages cloud automation as a strategic enabler rather than a quick fix for specific problems.

Automation objectives during the initiation phase

The initiation phase of a modernization program is generally focused on defining business objectives, scope, budget, organization structure, and testing strategy. Automation strategy is often overlooked and not included in the initiation phase, as it is considered more of a tactical activity than a strategic planning component. As a result, automation becomes an afterthought during the planning and implementation phases, leading to automation not receiving the required attention within the larger context of the modernization strategy.

Automation strategy should be a key deliverable of the initiation phase of any modernization program, with clear automation objectives defined and mapped against program objectives. During the planning phase, expand the automation strategy to include the automation approach, budget, and implementation plan (including design, development, testing, deployment, and operations). Automation planning should be a parallel track to modernization planning (as illustrated in Figure 1), with key interdependencies built in against critical milestones.

Deliverables of the planning phase
Figure 1: Deliverables of Planning Phase

Operating model

The mandate for application development teams is to focus on quickly delivering business functionality; however, automation is not always a priority. Consider creating a separate team whose primary focus is building automation capabilities that accelerate the development lifecycle. The automation and development teams will operate as interdependent functions that align with the overall program timeline to achieve a common business objective.

The organizational Agile and DevOps practices should promote cross-functional collaboration between the development and automation agile teams with a shared ownership of modernization deliverables throughout the development lifecycle, as shown in Figure 2. This approach fosters faster feedback loops, continuous integration, and emphasizes modernization outcomes as a shared responsibility among team members.

Team structure for Automation and Development teams

Figure 2: Team structure

Segregated duties between the development and automation teams prevents conflict of interest and reduces the possibility of teams performing tasks outside of the defined automated process. It is crucial to establish clear policies, communicate expectations, and regularly review and update access controls. As a general guideline, all environment builds, deployments, configurations, and data loads should be performed via automated processes.

There are two ways to organize automation teams. 1/ Shared teams: In this approach, a centralized automation team caters to automation needs across the organization. This approach is followed when the organization has a central DevOps strategy. It includes centralized deployment pipelines with a unified set of automation tools and processes. 2/ Dedicated teams: In this approach, a dedicated automation team is formed to build out automation for a specific modernization initiative or program. This team is eventually merged into a central DevOps team after the completion of program-specific automation deliverables.

Automation strategy – end to end automation

Organizations need to look at defining their automation strategy from an end-to-end perspective across the development lifecycle. Build the automation toolchain (which includes tools and processes) across the software lifecycle. The toolchain should include environment builds, development, version control, continuous integration, code quality, continuous deployment, containerization, monitoring, collaboration, and testing.

Automation in cloud security is critical, as it addresses challenges posed by the dynamic nature of cloud environments. Automation helps maintain security and compliance with speed and scale by proactively identifying and resolving security gaps, patch management, threat detection, and incident response.

Create an automated observability solution that helps teams monitor and optimize the performance, reliability, and security of their applications and infrastructure without the need for elevated access. This provides teams with visibility into each environment, enabling them to mitigate issues through proactive monitoring and improving operational efficiency.

Selecting the right combination of tools is important for building an efficient and effective workflow. The tools selected for the toolchain should have good interoperability with each other and function as an integrated unit throughout the lifecycle. Figure 3 shows a sample toolchain utilizing AWS services that provides integrated end-to-end tooling.

Toolchain using AWS servies covering source, infrastructue, build&test, Deploy, Monitor

Figure 3: Sample toolchain using AWS services

Measure effectiveness of automation

Measuring the effectiveness of automation can be a complex task due to the diverse objectives of automation and the ability to measure key metrics. However, it is essential to ensure that the outcomes of the automation efforts are measured. By tracking the right metrics and using the data to make informed decisions, organizations can improve the effectiveness of automation and achieve the desired results. Here are some common metrics that are used to measure automation effectiveness:

  • Cost Savings: Measure cost savings by reducing manual effort, increasing productivity, and optimizing resource utilization. Include factors such as labor costs, infrastructure costs, and operational expenses.
  • Time Savings: Measure the reduction in time taken to complete specific tasks or processes, such as environment provisioning, code development, testing, or deployments.
  • Defect Rate: Improved accuracy due to minimized human intervention Measure the reduction in defects that occur due to manual processes.
  • Productivity: Measure the improved productivity achieved due to automation. Assess the number of tasks, transactions, or operations completed within a specific time frame.
  • Quality: Evaluate the improvement in quality of outputs achieved through automation. Measure factors such as adherence to standards, compliance, and customer satisfaction.
  • Process Cycle Time: Measure the reduction in process cycle time as a result of automation. Calculate the time taken from the start to the end of a specific process or workflow.
  • Return on Investment (ROI): Calculate the ROI of automation initiatives by comparing the costs incurred with the benefits gained. Consider factors such as cost savings, productivity improvements, efficiency gains, and time to market.
  • In addition, DevOps metrics can be used to measure automation effectiveness.

Maturity model

Most organizations typically assess their current state of automation using maturity models. Maturity models are good guides to setting automation goals, formulating an automation roadmap, and prioritizing automation investments. Organizations generally tailor maturity models to align with their specific needs.
Below is a model (Figure 4) that can be used to assess automation maturity in the cloud.

Figure 4: Maturity model

Automation metrics and maturity models are used in conjunction with each other. For each maturity level, define the specific metrics that will be used along with quantitative threshold ranges. Conduct regular audits to validate the maturity level of automation. allowing teams to measure the overall effectiveness of automation, which in turn helps to identify improvements and prioritize automation goals.

AI in automation

With the maturity of AI and ML tools and the advent of Generative AI, a whole realm of possibilities has emerged in terms of automation. AI capabilities can be used to enable automation systems to provide intelligent insights, predictive maintenance, automated incident response, and self-healing.

With Generative AI, automation can be taken to the next level by adding intelligence and flexibility to decision-making, transforming processes that were previously considered too complex for automation. Some examples of how Generative AI can be applied to automation are documentation, script and code generation, compliance reports, identification and fixing of security gaps, and automated incident responses.

AI in automation is an evolving capability, with new use cases and opportunities being identified on a regular basis. Using AI, organizations will be able to traverse through the maturity model in an accelerated fashion, driving business value faster.

Risks and challenges

While automation offers compelling benefits, it also has risks and challenges. Automation can amplify the impact of misconfigurations; over-reliance on automation can result in reduced human oversight, causing failures and unintended outcomes. Complex automation implementations cause unwieldy solutions that are difficult to maintain and drain the IT budget.

To mitigate these risks, organizations need to define their automation strategy based on a deliberate and well-thought-out approach. Conduct regular audits of the automation process, including monitoring and testing. Keep the automation process up-to-date based on changes in the landscape. Finally, in the event that automation fails, implement manual processes. Maintaining a balance between automation and its corresponding risks is important to derive the requisite benefits from automation.

In Summary

Automation greatly enhances the productivity, efficiency, and reliability of the development lifecycle and thus empowers teams to focus on innovation and value delivery. Consider automation as a strategic deliverable with key milestones defined and measured against the automation maturity model. Automation is a journey that requires attention from project initiation through implementation. Approach modernization with the mental model that automation is a deliverable by itself and is a key enabler for the program.

References

AWS CaseStudy – Botprise Reduces Time to Remediation by 86% on Average Using Automation and AWS Security Hub https://aws.amazon.com/solutions/case-studies/botprise-case-study/?did=cr_card&trk=cr_card
Customer CaseStudy – On-Demand Infrastructure on AWS Helps Capital One DevOps Teams Move Faster Than Ever  https://aws.amazon.com/solutions/case-studies/capital-one-devops/
AWS. DevOps practices and tool and use cases. https://aws.amazon.com/devops/
AWS. (10 Jul 2023 ) Automated Code Review on Pull Requests using AWS CodeCommit and AWS CodeBuild  https://aws.amazon.com/blogs/devops/automated-code-review-on-pull-requests-using-aws-codecommit-and-aws-codebuild/
AWS. (30 May 2023) Optimize software development with Amazon CodeWhisperer https://aws.amazon.com/blogs/devops/optimize-software-development-with-amazon-codewhisperer/
AWS. (04 May 2023) The history and future roadmap of the AWS CloudFormation Registry
https://aws.amazon.com/blogs/devops/cloudformation-coverage/
AWS. (22 Dec 2022) Multi-branch pipeline management and infrastructure deployment using AWS CDK Pipelines https://aws.amazon.com/blogs/devops/multi-branch-pipeline-management-and-infrastructure-deployment-using-aws-cdk-pipelines/
AWS. (13 Dec 2022) Using Workflows to Build, Test, and Deploy with Amazon CodeCatalyst
https://aws.amazon.com/blogs/devops/using-workflows-to-build-test-and-deploy-with-amazon-codecatalyst/

About the author:

Swaroop Prabhakaran

Results driven leader with a focus on cloud adoption and digital transformation. Passionate about working with business and IT leaders to accelerate innovation with the goal to drive business outcomes. He has extensive experience in program management leveraged to drive revenue growth while leading high performing teams across Business and IT organizations.

Nishant Singh

Sr Customer Solutions Manager(CSM) with AWS dedicated to retail, Consumer packaged goods (CPGs) and digital banking customers. Passionate about helping customers build new value-driven solutions with customer business outcomes using AWS.