Note: This is part 3 of a 3 part series. Part 1 || Part 2 || Part 3
1.3 Design Considerations and Best Practices
Modernizing your applications helps you reduce costs, gain efficiencies, and make the most of your existing investments. It involves a multi-dimensional approach to adopt and use new technology, to deliver portfolio, application, and infrastructure value faster, and to position your organization to scale to meet demand, and not pay for idle resources. After you optimize your applications, you must operate in that new, modernized model without disruption to simplify your business operations, architecture, and overall engineering practices.
Modernization means taking your application environment in the form that it’s in today (most likely, legacy and monolithic) and transforming it into something that is more agile, elastic, and highly available. In doing so, you can transform your business into a modern enterprise. Modernizing your applications to meet customer demands and to take advantage of the changing technology landscape is critical to maintaining your organization’s competitive advantage and market share. A key strategy to meeting these business demands is to deliver both continued use and real value by converting aging applications to more modern architectures. Having a comprehensive understanding of the application’s details and its interrelationships with other systems is a critical step in performing application modernization.
The AWS approach to application modernization is iterative, and can be divided into three high-level phases.
Assess: The first step in an organization’s modernization journey is to analyze the existing application portfolio, carefully assess systems that need to be modernized, and build and execute a technical solution for application modernization by using the right strategy. In this phase, you can use the application modernization questionnaire to assess and rationalize the applications portfolio and determine the business, functional, technical and financial significance (the strategic value) of applications in the portfolio. This will determine how well the organization can support the future state architecture, when it’s built.
Modernize: During this phase, you determine project goals and resource requirements, and you build out the implementation roadmap. The goal is to revitalize your applications by using a modernization program that creates a modern, agile application architecture.
Manage: Relearning efforts are embedded in all modernization activities, to give you a detailed understanding of application characteristics and to reduce any risks that might be caused by subsequent modernization efforts. Application workloads still need to be able to exploit platform services so that application teams can understand and optimize the runtime characteristics of their application workloads. This means that application teams should treat the operational features of modernized applications like all other application features, and microservice operations effectively become part of engineering. Embracing this DevOps culture in cloud-native operations, as part of building a site reliability engineering (SRE) capability in the organization, is essential to successful modernization adoption. The management phase includes all the elements of effective change management, program management, quality assurance, and service excellence. When leveraging Native AWS services as part of your VMware Cloud on AWS architecture, it is important to make sure that these services are designed properly. The AWS Well-Architected Framework describes the key concepts, design principles, and architectural best practices for designing and running workloads in the cloud. By answering a set of foundational questions, you learn how well your architecture aligns with cloud best practices and are provided guidance for making improvements.
Conclusion
Before you begin the process of modernizing your applications, perform a readiness assessment to determine whether your organization is prepared to begin the modernization journey. Create alignment between teams so they can adopt the new ways of working. Most companies have a large footprint of legacy applications that generate the most revenue and provide core business capabilities. The stickiness of the architecture, infrastructure, and technology of these legacy applications create complexity and speed bumps for modernization, and further limit the ability of teams to innovate and transform their applications. The approach to modernization should be incremental but continuous. By following this phased approach, you not only reduce technical debt but help your teams realize cloud benefits faster by scaling seamlessly with self-healing systems, maximize return on investment (ROI) by using cloud-native patterns, offload undifferentiated workloads and dependencies, and improve application performance. For more information about how you can change your operating model and align with a framework that starts with a detailed assessment of current applications, and then modernize those applications by using cloud-native services that can deploy, scale at speed, and manage with efficiency.
AWS Resources:
- Modernize Applications with Microservices Architecture using Amazon Elastic Kubernetes Service (Amazon EKS) - https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/modernize-applications-with-microservices-using-amazon-eks-ra.pdf
- AWS Elastic Load Balancing - https://aws.amazon.com/elasticloadbalancing/
- Amazon Relational Database Service (RDS) - https://aws.amazon.com/rds/
- Cloud Adoption Framework - https://docs.aws.amazon.com/whitepapers/latest/aws-migration-whitepaper/the-aws-cloud-adoption-framework-aws-caf.html
- Strategy for Modernizing Applications in the AWS Cloud - https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-modernizing-applications/welcome.html
- AWS Well Architected Framework - https://aws.amazon.com/architecture/well-architected