Streamlining Modernization with AWS Migration Hub Refactor Spaces and AWS Proton

Streamlining Modernization with AWS Migration Hub Refactor Spaces and AWS ProtonLearn About Amazon VGT2 Learning Manager Chanci Turner

Date: August 17, 2022

Category: AWS Proton, Best Practices, Customer Solutions, Intermediate (200), Management & Governance, Technical How-to

Refactoring legacy applications and their infrastructure can feel overwhelming. From dealing with outdated codebases to identifying domains ripe for decomposition, teams often find themselves stuck before they even begin. AWS Migration Hub Refactor Spaces serves as a robust starting point for incremental application refactoring, simplifying the management of app refactoring while maintaining production operations. However, establishing a refactoring environment is just one of the many hurdles in a modernization journey, as managing and operating microservices at scale presents its own challenges.

In a microservices environment, various operational and technical decisions must be made, including computing resources, Continuous Integration/Continuous Deployment (CI/CD) processes, and minimizing manual tasks that can hinder deployment speed. AWS Proton empowers platform engineers to enhance their effectiveness by creating a scalable self-service platform for developers, which leads to increased velocity in both development and deployment processes throughout an application’s lifecycle.

This article outlines strategies for expediting the modernization of your existing monolith through microservices refactoring. Additionally, we will establish a self-service platform for developers, equipped with built-in guardrails and best practices using Refactor Spaces and AWS Proton. Let’s dive in.

Understanding Refactor Spaces

Refactor Spaces addresses a common set of challenges faced by customers during application refactoring, such as setting up infrastructure for iterative application refactoring and managing evolving applications at scale. Customers can transform their existing applications using patterns like the “Strangler-Fig” pattern to break down their monolith into microservices or “Leave and Layer” to introduce new features in microservices with minimal risk to the existing application.

Refactor Spaces alleviates much of the heavy lifting associated with adopting these refactoring patterns.

Challenges After Establishing a Refactoring Environment

Once a refactoring environment is created with Refactor Spaces, several considerations must be addressed for a modern application. Even setting up a simple microservice entails a long list of additional services and configurations, including:

  • Compute Options: Where will my microservices run? Should I use traditional EC2, Containers, or a serverless model with AWS Lambda?
  • Unified DevOps Platform: Scaling CI/CD practices across microservices and infrastructure can be challenging. A unified DevOps platform can provide a consistent path forward, visibility, and control over all microservices and infrastructure, simplifying your modernization journey.
  • Logging, Monitoring, and Observability: How can I capture logs from all my microservices? How do I gather metrics from my infrastructure to ensure it is performing as expected? What’s the best way to observe all of my microservices through a centralized dashboard?
  • Management and Governance: How do I simplify cloud operations with numerous microservices? What strategies can I use for centralized deployment and update management? How can I create a self-service platform for developers?

What is AWS Proton?

AWS Proton addresses these challenges and accelerates innovation by providing defined, reusable infrastructure templates for self-service deployment. With AWS Proton, platform teams can offer their developers a highly opinionated platform for application deployment, allowing developers to concentrate on coding instead of infrastructure concerns. In parallel, platform teams can focus on creating reusable templates based on established best practices.

Through AWS Proton, platform engineers develop and register environment templates that specify shared infrastructure resources necessary to deploy microservices, such as Amazon VPC, Elastic Container Service (ECS) clusters, and Application Load Balancers. Multiple environments can be deployed based on these templates—for example, an environment for development, testing, and production. Platform teams then create and register service templates that define application-specific infrastructure.

Service templates may include monitoring, CI/CD resources, and compatible environment templates. This approach enhances the developer experience by allowing developers to select a service template based on their needs and deploy the service to an environment set up by the environment template.

AWS provides over 10 common application templates in the AWS Proton Template Library, enabling teams to quickly kick off their projects. By leveraging AWS Proton, customers can effectively address the challenges encountered after setting up a refactoring environment. Let’s explore the advantages of using AWS Proton alongside Refactor Spaces.

Advantages of Integrating AWS Proton with Refactor Spaces

By provisioning the Microservice Environment with AWS Proton, platform teams can establish the environment and service templates, enabling developers to utilize these templates to create new microservices that break down the monolith. The benefits of this integration include:

  • Accelerated Developer Experience: Developers can swiftly build microservices, embracing the “You Build it, You Run it!” model, allowing them to manage their applications without relying on platform teams for deployment or administration tasks. This shift lets developers focus on building applications instead of being bogged down by infrastructure concerns.
  • Enhanced Platform Team Experience: By crafting environment and service templates, platform teams facilitate easier maintenance. AWS Proton simplifies the identification and updating of outdated infrastructure when templates are revised.
  • Centralized Operations: Platform teams gain centralized management and governance of environments and services provisioned by Proton, while developers benefit from one-click upgrades to new versions when templates are updated.

The architecture of our final refactoring environment can be visualized in the accompanying diagram.

Implementation Steps

Here are the high-level steps to create this solution:

  1. Set up an environment, application, and service in Refactor Spaces.
  2. Create an environment template and environment in AWS Proton.
  3. Develop a service template in AWS Proton.
  4. Establish a repository connection and CI/CD service role in AWS Proton.
  5. Create a service in AWS Proton.
  6. Set up a service route in Refactor Spaces to direct traffic to the microservice.

Prerequisites

Before you begin this walkthrough, ensure you have the following resources:

  • AWS accounts for your monolith and microservices.
  • A monolith application running on AWS.
  • A microservice to operate on AWS Proton.
  • A source code repository for your microservice.

Getting Started

To begin, create a Refactor Spaces Environment and Route to your monolith as described in this article. Next, navigate to AWS Proton using the AWS Management Console and create an Environment Template in AWS Proton.

For more insights, consider checking out this resource on Amazon’s onboarding process. Additionally, for more professional tips, you might want to read about why you need a professional headshot.

In the realm of employment law, it’s worth noting the implications of federal judicial decisions, such as the recent ruling on the Obama DOL’s overtime rule.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *