This work is licensed under CC BY 4.0 - Read how use or adaptation requires attribution

Architecting for Cloud

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

  • Identify targets
  • Balance cost, sustainability, and operational design factors

Understand cost effective designs

  • Understand cloud architectures and service usage patterns
  • Understand impacts of architectural change
  • Balance scale, cloud cost, skills, objectives

Establish an effective cadence

  • Plan and take action
  • Continuously modernize

Definition

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.

Maturity Assessment

Crawl

  • Few applications or few architectural patterns in use in the organization require less frequent architectural modernization
  • Informal review processes performed on an as needed basis due to manageable catalog of applications
  • Engineers able to evaluate architectural options that are more cost effective through individual research or informal channels

Walk

  • More significant applications, or more architectural patterns in use in the organization requires more frequent or structured reviews to identify areas where architectural improvements would provide value
  • More formal review process conducted regularly (monthly, quarterly), or by searching for specific patterns which have been identified as candidates for redesign
  • Engineers and architecture teams actively work on patterns of development and deployment that will be cost effective for existing and future applications
  • More involvement from cloud service providers, vendors, outside sources to identify cost-effectiveness targets and cost effective architectural options

Run

  • Significant number of applications, highly specialized architectures, complex cloud usage, large variety of architectural models require more frequent and structured reviews of systems. Triage is done on systems by cost, importance, specific patterns of waste, etc.
  • Formalized system review to handle large volume or complexity of systems to be evaluated for modernization
  • Well-defined process and guidelines including both financial viability and technical feasibility for modernization activities
  • More formalized architecture programs and approved templates, deployment methods, and development patterns to facilitate modernization activities across multiple systems or services
  • Post modernization evaluation process to ensure architects are getting lessons learned to improve future designs

Functional Activities

FinOps Practitioner

As someone in the FinOps team role, I will…

  • Assess the financial viability of the workloads running in cloud, and potential impacts of modernization
  • Capture and track cloud value benefits realization

Product

As someone in a Product role, I will…

  • Educate and maintain competence in the services used by my products
  • Evaluate my products regularly to identify when new cloud capabilities to drive efficiency
  • Develop new use cases to further innovate on the cloud

Finance

As someone in a Finance role, I will…

  • Assess the financial viability of the workloads running in cloud, and potential impacts of modernization
  • Capture and track cloud value benefits realization

Engineering

As someone in an Engineering role, I will…

  • Maintain an awareness of cloud services, deployment patterns, development models, across my organization and generally
  • Assess the cloud suitability of the workloads under my control
  • Review the operational readiness to support the workloads on the cloud
  • Follow and evaluate my workloads according to published or prescribed architectures

Leadership

As someone in a Leadership role, I will…

  • Make informed decisions to prioritize workloads to modernize
  • Provide strategic directions to reinvest the savings obtained from the workloads modernized in cloud back to the business initiatives

Measures of Success & KPIs

  • Measurement of cost efficiency through infrastructure savings, migration and support costs
  • Operational resiliency improvement in service quality and security risk posture
  • Decrease time to market by accelerating fluidity in product and service delivery
  • Enable a culture of rapid experimentation to drive innovation and cloud transformation
  • Embed true environmental and social sustainability across the organization

Inputs & Outputs

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

Outputs

  • Triage and Cadence for architectural modernization analysis
  • Prioritized list of opportunities to modernize, architect, or redesign systems running in cloud