Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News From Cloud-Hosted to Cloud-Native: Rosemary Wang at QCon London

From Cloud-Hosted to Cloud-Native: Rosemary Wang at QCon London

This item in japanese

Rosemary Wang, developer advocate at HashiCorp, delivered a presentation at QCon London that focused on five key considerations for technology practitioners looking to optimize the advantages of running platforms and applications in the cloud: adaptability, observability, immutability, elasticity, and changeability.

Wang began by defining "cloud-native" in the context of a typical migration or greenfield development project. She discussed how the initial architecture often undergoes some form of re-architecture, usually due to higher-than-anticipated costs or previously undiscovered requirements. She suggested that an application's evolution toward a cloud-native architecture depends on five considerations, which she explored in more detail throughout the presentation.

With a focus on adaptability, Wang defined this as an application's ability to be deployed across multiple environments. She then demonstrated how abstractions, such as Kubernetes, are essential for enabling this flexibility. She also emphasized several best practices for adaptability, including the decoupling of secrets and configurations, isolating upstream and downstream dependencies through injection, abstract end-to-end testing, and using "stable minus one" versions.

Regarding observability, Wang explained its significance as the primary means of understanding cloud-native workloads' behavior. She then shared several best practices associated with cloud-native observability, including standardizing tags and metadata on resources, auditing and logging access for all identity principals, aggregating telemetry data, and tactically choosing between push and pull delivery methods for observability data.

The third consideration, immutability, was described as the practice of introducing application changes as new, self-contained resources. She explained that this might not be applicable to all changes, such as application secrets, due to prior decisions to utilize abstractions. This section concluded with a discussion of related best practices, like automating and deploying infrastructure as code, decoupling application state and configuration, utilizing restarts for changes, optimizing resource provisioning, and distributing data.

Elasticity was defined as optimizing the cost of time that resources are available. Wang compared on-premises environments, which typically leaned toward vertical scaling, to cloud-based workloads. Initially, horizontal scaling was thought to be the answer to elasticity in a cloud-native context. However, she went on to describe several nuances that contribute to a more sophisticated understanding of elasticity, including evaluating idle versus active resources, optimizing warm-up and run time, and assessing data volumes relative to the frequency at which they must be processed.

Moving on to the fifth consideration, changeability, was defined as an application's ability to embrace new technologies. As new technologies often revolve around new paradigms, the need for an intermediate adoption step was emphasized in order to gain a higher level of comfort with the new paradigm before fully transitioning to the new technology. A successful changeability approach was characterized as one that assesses the benefits of new technologies, reviews previous patterns, selects the appropriate intermediate step, and refactors applications or infrastructure accordingly.

In conclusion, Wang reminded the audience that cloud-native is an ongoing shift toward more scalable applications within a dynamic environment, rather than a final destination.

About the Author

Rate this Article