General Guiding Principles :
Stop guessing capacity : Might end up sitting on expensive IDLE resources or dealing with the performance implications of limited capacity.
Test systems at production scale : can create a production-scale test environment on demand.
Automate to make to make architectural experimentation easier : Automation allows you to create and replicate your workloads at low cost and avoid the expense of manual effort.
Allow for evolutionary architectures : Allow for systems to evolve over time so that businesses can take advantage of innovations as standard practice.
Drive architectures using data : Make fact-based decisions on how to improve your workload.
Improve through game days : Test how your architecture and processes perform by regularly scheduling game days to simulate events in production.
General Design Principles :
Be scalable - vertically and horizontally.
Disposable resources - Servers should be easily disposable and easily configured
Automation - Serverless, auto-scaling, etc.
Loose coupling - break a monolith down into smaller, loosely coupled components so a failure doesn't affect other components
Services, not servers - Using managed services and going serverless rather than just using EC2 instance.
Best Practices :
Decouple your components - Also called loose coupling.
Think parallel - Experiment different architectures in parallel.
Implement elasticity - Can scale in and scale out to meet the demand without any human intervention.
design for failure - Being pessimistic.
1 - Operational Excellence :
Ability to support development and run workloads effectively, gain insight into their operations, and to continuously improve supporting processes and procedures to deliver business value.
Design Principles :
Perform operations as code : Infrastructure as Code (CloudFormation).
Make frequent, small, reversible changes.
Refine operations procedures frequently : Make sure the team is familiar with the changes as well.
Anticipate failure : Expect failure and learn from it.
Learn from all operational failures
2 - Security :
Ability to protect data, systems and assets to take advantage of cloud technologies to improve your security.
Design Principles :
Implement a strong identity foundation : Centralize identity manage and use the principle of least privilege.
Enable traceability : Tracks logs and metrics and if anything is suspicious, take action immediately.
Apply security at all layers : Apply Security everywhere ( edge of network, VPC, load balancing, every instance and compute service, operation system, application, and code).
Automate security best practices.
Protect data in transit and at rest : Use encryption, tokenization, and access control where appropriate.
Keep people away from data : Reduce or eliminate the need for direct access or manual processing of data.
Prepare for security events : Do incident response simulations and use tools with automation to increase your speed for detection, investigation, and recovery.
3 - Reliability :
Ability of a workload to perform its intended function correctly and consistently when it's expected to, e.g. recover from infrastructure or service disruptions, dynamically acquire computing resources to meet demand, and mitigate disruptions, such as misconfiguration or transient network issues. Basically your application should run smoothly regardless of disruptions
Design Principles :
Automatically recover from failure : with more sophisticated automation, it's possible to anticipate and remediate failures before they occur.
Test recovery procedures : Use automation to simulate different failures or to recreate scenarios that led to failures before.
Scale horizontally to increase aggregate workload availability : Distribute requests across multiple, smaller resources so that they don't share a common point of failure.
Stop guessing capacity : Automate the addition or removal of resources to maintain the optimal level to satisfy demand without over or under-provisioning.
Manage change in automation : Changes to your infrastructure should be made using automation.
4 - Performance Efficiency :
Ability to use computing resources efficiently to meet system requirements, and to maintain that efficiency as demand changes and technologies evolve.
Design Principles :
Democratize advanced technologies ; Use advanced technologies and make advanced technologies become services that your team can consume, allowing your team to focus on product development.
Go global in minutes ; Provides lower latency and a better experience of your customers at minimal cost.
Use server-less architectures : Removes the need for you to run and maintain physical servers for traditional compute activities.
Experiment more often : With virtual and automatable resources, you can quickly carry out comparative testing using different types of instances, storage, or configurations.
Consider mechanical sympathy : Understand how all AWS services are consumed
5 - Cost Optimization :
Ability to run systems to deliver business value at the lowest price point.
Design Principles :
Implement cloud financial management : dedicate time and resources to build capability in this new domain of technology and usage management.
Adopt a consumption model : "Pay as you go " mentality - Pay only for the computing resources that you require.
Measure overall efficiency : Measure how much of the resources are you using, are you using them efficiently?
Stop Spending money on undifferentiated heavy lifting : Allows you to focus on your customers and business projects rather than on IT infrastructure.
Analyze and attribute expenditure : Identify the usage and cost of systems, which then allows transparent attribution of IT costs to individual workload owners.
AWS Ecosystem :
AWS Ecosystem - Free resources :
AWS Blogs
AWS Forums
AWS whitepapers & guides
AWS quick Starts
Automated, gold-standard deployments in the AWS cloud.
Build your production environment quickly with templates.
AWS Solutions
Vetted tech solution for aws cloud
e.g. - AS landing zone : Secure, multi-account AWS environment.
AWS Ecosystem - AWS Support
Developer :
Business hours email access to cloud support associates.
General guidance : < 24 business hours
System impaired : < 12 business hours
Business :
24x7 phone, email, and chat access to cloud support engineers
Production system impaired : < 4 hours
Production system down : < 1 hour
Enterprise :
Access to a Technical Account Manager - TAM
Concierge Support team for billing and account best practices.
Business-critical system down : < 15 minutes
AWS marketplace :
Digital catalog with thousands of software listings from independent software vendors - 3rd party
Example :
Custom AMI - OS - firewalls - technical solutions..
CloudFormation templates
Software as a service, containers..
If you buy through the AWS market place it goes into your AWS bill
You can sell your own solution
AWS Professional Services & partner network :
Is a global team of experts
APN = AWS Partner Network
APN Technology Partners : Providing hardware, connectivity, and software
APN Consulting Partners : professional services firm to help build on AWS
APN training partners : find who can help you learn AWS.
AWS competency programs : granted to APN partners who have demonstrated technical proficiency and proven customer success in specialized solution areas.
AWS Navigate program : help partners become better Partners.
Last updated