Applications with Many Local Dependencies That Cause Problems When Being Moved to the Cloud
For applications that fit in this category, consider the following:
- Application developers might have to refactor or restructure the source code of the application to take advantage of managed cloud services such as work
queues (Amazon Simple Queue Service [SQS]), auto scaling (EC2 Auto Scaling), or hosted logging services (CloudWatch logs).
- Application developers might be able to take advantage of AWS cloud services by replacing the existing on-premises database with a database hosted in the cloud utilizing Amazon Relational Database Service (Amazon RDS).
Replacing an Existing Application with a SaaS Application Hosted by a Public Cloud Provider
With so many hosted cloud applications available in the public cloud, the odds are close to 100% that there will be an existing application that can replace a current on-premises application.
Applications That Should Remain On Premises and Eventually Be Deprecated
The following applications should not be moved to the cloud but should remain on premises or should be deprecated:
- The application is hosted on legacy hardware that is near end-of-life.
- The application cannot be virtualized.
- The application does not have technical support.
- The application is used by a small number of users.
The AWS Well-Architected Framework
Several years ago, AWS introduced the Well-Architected Framework to provide guidance to help cloud architects build secure, resilient, and well-performing infrastructure to host their applications. The framework describes recognized best practices developed over time, based on the experience of many AWS customers and AWS technical experts.
The documentation for the Well-Architected Framework (see https:// docs.aws.amazon.com/wellarchitected/latest/framework) also presents many key questions customers should review. It is useful to discuss these questions with the other technical team members in your company to make key decisions about your infrastructure and workloads to be hosted at AWS. Each workload to be deployed at AWS should be viewed through the lens of the Well-Architected Framework follow-ing these six pillars:
- Operational excellence: Relates to how best to design, deploy, execute, and monitor applications running at AWS using automated deployment
monitoring procedures, continuous improvement, and automated solutions for recovering from failures. Operational excellence questions to consider include:
- How are disruptions to applications handled—manually or automatically?
- How can you analyze the ongoing health of your applications and infra-structure components hosted at AWS?
- Security: Relates to how to best design systems that will operate reliably and securely while protecting customer information and data records. Security questions to consider include:
- How are security credentials and authentication managed at AWS?
- How are automated procedures secured?
- Reliability: Relates to how applications hosted at AWS recover from disrup-tion with minimal downtime and how applications meet escalating demands. Reliability questions to consider include:
- How do you monitor resources hosted at AWS?
- How do applications hosted at AWS adapt to changes in demand by end users?
- Performance efficiency: Relates to how to use compute resources to meet and maintain your application requirements on an ongoing basis. Should your compute solution change from EC2 instances to containers or serverless? Per-formance efficiency questions to consider include:
- Why did you select your database architecture?
- Why did you select your current compute infrastructure?
- Cost optimization: Relates to how to design workloads that meet your needs at the lowest price point. Cost optimization questions to consider include:
- How do you oversee usage and cost?
- How do you meet cost targets?
- Are you aware of current data transfer charges based on your AWS designs?
- AWS Certified Solutions Architect – Associate (SAA-C03) Cert Guide
- Sustainability: Relates to designing workload deployments that minimize waste. Sustainability questions to consider include:
- How do you select the most efficient storage and compute?
- What managed service offerings could reduce current infrastructure deployments?
The Well-Architected Tool
In the AWS Management Console, you can search and find the AWS Well-Architected Framework tool. This tool, shown in Figure 1-13, provides a framework for documenting your workloads against AWS best practices, as defined in the Well-Architected Framework documentation. For each of the six pillars, there are many questions to consider before beginning to deploy an application. As ques-tions for each pillar are considered and debated, milestones can be created marking important points about the workload architecture as teams discuss the questions and make changes to their workload design.
Figure 1-13 Evaluating Workloads Using the Well-Architected Framework Tool
The Well-Architected Framework tool provides tips and guidance on how to fol-low the best practices recommended by AWS while carrying out a full architectural review of an actual workload that you are planning to deploy at AWS. Your team will find that working with the Well-Architected Framework tool is well worth the time invested.
Before your architectural review begins, open the Well Architected Tool and select the AWS region where your application will be hosted, then define the workload and industry type, and whether the workload is in production or a pre-production environment. After all the pertinent questions have been answered, during the review process, the Well-Architected Framework tool helps you identify potential areas of medium and high risk, based on your answers to the questions. The six pillars of design success are also included in the plan for recommended improve-ments to your initial design decisions (see Figure 1-14).
Figure 1-14 Recommended Improvements Using the Well-Architected Framework Tool Review