Framework / Domains / Optimize Cloud Usage & Cost / Architecting for Cloud
Designing and modernizing solutions with cost-awareness and efficiency to maximize business value while achieving performance, scalability, and operational objectives.
Evaluate systems for attention
Understand cost effective designs
Establish an effective cadence
One of the most powerful benefits of using the cloud to build systems is the ability to use a wide range of components and services to build systems to satisfy a wide range of requirements. There are many ways to build an application in the cloud. Engineering and product teams make decisions based on the needs of the application, the knowledge and abilities of the programmers, the desired operations environment, and other factors to meet customer or stakeholder demand.
Decisions abound for architects looking to create new systems or migrate them from traditional data centers. Compute can be satisfied by virtual machines, container environments (both cloud-managed and self-managed), serverless options, fully-managed application services. Dozens of database and analytics platforms are available – or can be built and managed by the organization. Hundreds of other services allow customers to choose to build monolithic enterprise applications of enormous complexity, or to engineer highly distributed microservice architectures.
Cloud providers and other platform vendors offer Well-Architected or Cloud Adoption frameworks that can guide Engineers in building effectively in the cloud, making effective choices and tradeoffs. These frameworks include operational aspects of systems like security, performance, reliability, and also, importantly, sustainability and cost efficiency.
With the introduction of FinOps and broader use of cloud, engineering and product teams not only have the responsibility to choose services that meet the operational requirements of their systems, but also the sustainability and financial viability of those systems.
Cost efficiency, like all system metrics, is best achieved by architecting it into a system’s design, or as early in the life of a system as possible. By beginning with the end goals of the system in mind, we can architect to meet redundancy, security, reliability, carbon efficiency or cost efficiency more easily by avoiding building in tech debt that would need to be cleaned up later.
In some cases, applications are built directly in the cloud, using native cloud services and architecting the application to be efficient from its inception. There are also many cases where applications need to be migrated to the cloud from a data center, or from another cloud. There are still more cases where applications drift from their original design criteria, or where the cloud provider changes services or introduces new services, or the organization adopts development or deployment models that were not previously feasible.
Throughout the lifecycle of every application running in the cloud, organizations must assess when it is time to adjust architectural designs. Analysis of where spending or waste is high, or where value isn’t being achieved will help identify systems which could benefit from architectural modernization. Systems with identified efficiency issues, or that are built using older techniques or services may benefit from a program of architectural modernization. A regular cadence of analysis should be undertaken to regularly assess where architecting for cloud can benefit the organization. This is an activity each organization will take to build and maintain its systems and cloud estate in a cost-effective state, and how to address opportunities to improve cost effectiveness in design.
There is a strong relationship between all of the Capabilities within the Optimize Cloud Usage & Cost Domain, in that each provides an organization with different ways to improve cloud value. Like Rate Optimization and Workload Optimization, this capability develops options to redesign systems to take best advantage of the many services available in the cloud. Options to use Licensed or SaaS models or to directly address Sustainability are generated by the other capabilities in this domain. Taken together, they represent all of the options organizations have to improve the cost profile and value generated by their systems. This capability will also have a strong connection to the Onboarding Workloads capability which will primarily target creating or migrating workloads into the cloud. Architecting those solutions appropriately as they are migrated will be key, and the architectural patterns and analysis performed in this capability will inform those migration decisions. Even if the decision is to still “Lift and Shift” applications from data centers, the analysis of where inefficiencies exist will be useful for triaging those systems for modernization later, when ignoring their modernization no longer makes the most sense for overall value.
As someone in the FinOps team role, I will…
As someone in a Product role, I will…
As someone in a Finance role, I will…
As someone in an Engineering role, I will…
As someone in a Leadership role, I will…
Information used that contributes to the measure(s) of success listed above are organized across the following categories:
Category | Input |
Cost Efficiency | – Infrastructure cost
– Support cost – Modernization implementation cost – Value metrics for systems |
Resiliency | – Service quality
– Security posture – Operational stability |
Velocity | – Developer productivity
– Release frequency – Business agility |
Innovation | – Return on innovation
– Employee experience – Customer satisfaction |
Sustainability | – Carbon footprint
– Power usage effectiveness – Circular economy |