By Wolfgang Unger
Did you ever ask yourself what means Performance Efficiency from the 5 pillars exactly ?
Well Performance Efficiency focuses on ensuring
a system delivers the best performance for a set of AWS resources utilized, which cane be functions,
instances,
storage, database etc
Principles
Amazon outlines five design principles for achieving performance efficiency:
Democratize advanced technologies
Go global in minutes
Use serverless architectures
Experiment more often
Consider Mechanical sympathy
Democratize advanced technologies
Use managed services like SQL/NoSQL databases, media transcoding, storage, and Machine
Learning
They can save time and monitoring hassle and the team can focus on development, resource
provisioning, and management.
Rather than asking your IT team to learn about hosting and running a new technology, consider
consuming the technology as a service.
Go global in minutes
Deploy the system in multiple AWS regions around the world to achieve lower latency and a better
experience for customers at a minimal cost.
With On Premise your will hardly achieve to provide Servers for your global customers at each of
their locations.
Use CI/CD to deploy newest features daily instead of building monthly releases.
Use serverless architectures
Reduce overhead of running and maintaining servers and use the available AWS option to host
and
monitor infrastructure.
Serverless architectures remove the need for you to run and maintain physical servers for
traditional compute activities
AWS got plenty of serverless architectures, like Lambda, Dynamo, Step Functions, the Serverless
versions of Aurora
and lot more
Experiment more often
In my early days as a programmer it took about 3-6 month to get a database from the DB Admin.
Hardware resources were limited, the CFO had to admit and the DB admin got higher priority tasks to
do.
How can you experiment a new feature or new software module this way? You can't!
With virtual and automatable resources, you can quickly carry out comparative testing using
different types of instances, storage, or configurations.
Launch a new DB and destroy it afterwords, use NoSQL, test ML services without bying long term
licences,
all of this is much easier in the cloud
Consider mechanical sympathy
Mechanical sympathy is the concept of aligning your technology approach with your goals.
Use the technology approach that aligns best with your goals. For example, consider data access
patterns when you select database or storage approaches.
AWS offers a huge breadth of services to choose from, and its critical to diligently evaluate which
services
are best matched with your use cases and goals .
Focus
Focus on the following areas to achieve performance efficiency in the cloud:
Selection
Review
Monitoring
Trade-offs
Selection
AWS resources are available in many types and features, configurations and options, which makes it
easier to find an
approach that closely matches your need and handle different types of workloads.
You can also find options that are not easily achievable with on-premises infrastructure.
For
example, a managed service such as Amazon DynamoDB provides
a fully managed NoSQL database with single-digit millisecond latency at any scale
Review
When architecting workloads, there are finite options that you can choose from. However, over time,
new technologies and approaches become available that could improve the performance of your
workload.
In the cloud, it’s much easier to experiment with new features and services because your
infrastructure is code.
Be aware, your applications and usage patterns will evolve, so it's important to put in place a
continuous performance review process
that ensures that your resource selection remains optimal.
Monitoring
After you implement your architecture you must monitor its performance so that you can remediate any
issues before they impact your customers.
Monitoring metrics should be used to raise alarms when thresholds are breached.
Amazon CloudWatch is the central hub for this monitoring, and your automation can trigger
actions in other AWS services like AWS Lambda or Amazon SQS.
Trade-offs
When you architect solutions, think about trade-offs to ensure an optimal approach.
Depending on your situation,
you could trade consistency, durability, and space for time or latency, to deliver higher
performance.
In a perfect world, we'd be able to achieve durability, consistency, performance,
and efficiency all at once,
but that's sadly not the world that we live in,
so it's time to get acquainted with the menu of trade-offs you can make to meet your goals.