Virtualization Technology News and Information
Article
RSS
Using Cloud as it was Intended: How a cloud-native approach can help businesses succeed and innovate within complex cloud ecosystems

By Paul Nau, VP, Technology Consulting at EPAM Systems, Inc.

Getting the most value from a cloud estate requires that organizations master its intrinsic complexity. A robust enterprise cloud consists of a huge - indeed, dizzying - number of moving parts. A fully deployed enterprise cloud ecosystem must successfully and efficiently utilize:

  • Core infrastructure components such as virtual networks, identity and authorization, security (encryption, antivirus, intrusion detection), and compliance features (ensuring adherence to an ever-growing body of regulations, such as GDPR, CCPA, and PCI-DSS, to name a few) are essential and underly any safe and secure cloud environment.

  • Application components, ranging from solutions merely transferred to the cloud as VMs to more advanced architectures such as microservice-based containers, Kubernetes-based orchestration, and serverless.

  • Data management, of which the cloud offers an enormous variety of choices, including enterprise-class relational databases such as Oracle, DB2, and SQL Server; open source RDMBS systems like MySQL, PostgreSQL, and others; NoSQL document-oriented databases like Dynamo DB, Cosmos DB, and Mongo DB ; and graph-oriented databases such as Neo4j.

Adopt a Cloud-Native Mindset

To achieve true cloud mastery requires internalizing new management, deployment, application development, and testing paradigms. Cloud-native is truly a mindset which breaks from old models of enterprise computing, evolving beyond risk-averse, waterfall approaches to agile, componentized, API-driven solutions.  Organizations that fully embrace cloud-native computing find that their teams deliver solutions faster, with greater levels of predictability, reliability, and security than in the old model, and are thus able to better respond to rapid market and technological changes.

Perhaps the most significant feature of cloud-native computing is the concept of microservices. Whereas in the past most enterprise applications consisted of large, monolithic executables, microservices break these huge applications apart into functional components, into separate, API-driven business capabilities.

For example, an eCommerce application might be made up of a shopping cart component, a product catalog, a customer database, marketing rules, personalization, secure payment methods, and so on. At different times of the year different components might be more heavily exercised - in the weeks leading up to a holiday the browsing and catalog components, then, as the holiday draws nearer, the shopping cart and payment components.

Using separate, distributed microservices these components can independently scale, efficiently meeting the demand. Moreover, having divided the application into microservices, they can be independently developed and tested by separate teams, leading to greater focus by the developers and, thus, higher quality.

Scaling-monolithic-application

 
Figure 1. Scaling a monolithic application is inefficient and costly

In the illustration above, as the load on the application increases, new instances of the entire application must be created - meaning new copies of the application, the operating system (which may require additional licenses), system software, and so on.

microservices-based-application 

Figure 2. A microservices-based application scales efficiently

However, as figure 2 shows, in a microservices-based application, only those functions that are under load scale - not the entire application. Each microservice communicates with others via APIs, which means that they can efficiently distributed, either on a single server or across many, as the load requires.

Thus, by decomposing application monoliths into functional, distributed components, that is, microservices, organizations can gain modularity, scalability and resilience. Testing large ecosystems of distributed microservices, however, can pose challenges: teams must not only ensure the functionality of the solution, but also its ability to scale up and down as needed, as well as its ability to withstand failures, such as a hardware fault. Moreover, teams need to be able to respond to such issues once the solution is in production; and the plethora of moving parts can make root cause analysis difficult.

In other words, microservices architecture may ease development complexity while adding operational complexity. New tools and new development, testing and monitoring methodologies are required. For example, chaos testing randomly introduces failures into a distributed system to test its resilience; distributed tracing tools follow the path of calls through various microservice instances to determine where bottlenecks might have been introduced.

Important Considerations When Transitioning to a Cloud-Native Approach

The benefits of a cloud-native approach are significant: cloud-native solutions make more efficient use of cloud resources, scale well, possess global reach, and can often withstand hardware and software failures - far better than the old, monolithic VM-based model.

However, adopting cloud-native technologies should be done strategically. Organizations should:

  • Prioritize which applications should migrate to a cloud-native model
  • Standardize the cloud-native technologies (for example, managed Kubernetes clusters or serverless) to be used (and for teams to be trained on) the organization will use
  • Carefully analyze application functionality to determine microservice boundaries
  • Understand the key concepts and practices behind scalable, distributed code
  • Determine development methodology and implement an agile, CI/CD based process
  • Develop test methodologies

It sounds like a lot - and it is. But mastering each of these steps will enable you to make the most of your cloud investment. In short, you'll become a true master of cloud.

##

ABOUT THE AUTHOR

Paul Nau is a VP of Technology Consulting and Cloud Advisory at EPAM Systems, Inc. 

Paul-Nau 

Paul is a multi-industry thought leader and certified Cloud Architect with strategic vision-focusing on deploying practical and quality solutions to help Global 1000 organizations realize cohesive business integrations. In his role at EPAM, Paul partners with business and technology executives to align vison, strategy and architectural patterns with cloud solutions to enable transformative outcomes. Prior to joining EPAM, he worked at Cambia Health Solutions as Chief Cloud Architect of digital transformation. Previously to that role he held roles with Amazon Web Services (AWS), Juniper Networks and VMware. His areas of expertise and focus include Multi-Cloud Strategy/Advisory, Digital/IT Transformation, Application Modernization & Transformation, Virtualization and Networking and Storage Architecture.

Published Wednesday, September 07, 2022 7:46 AM by David Marshall
Filed under: ,
Comments
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
Calendar
<September 2022>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678