Service Virtualization Use Instances for Cloud-Native Purposes


That is the second article in a two-part sequence. The primary half is right here.

Service virtualization is uniquely suited to help the wants of cloud-native functions. The answer’s rules help all the important thing attributes of cloud-native architectures. I’d contend that service virtualization and cloud-native architectures are constructed for each other. Simply as service virtualization is thought-about important for agile growth, it’s simply as needed for supporting cloud-native functions. 

On this part, we are going to focus on how Broadcom Service Virtualization helps every of the ten key attributes of cloud-native utility methods

Steady Microservices Utility Growth and Testing 

One of many key attributes of cloud-native functions is the usage of loosely coupled elements, resembling microservices. As a result of component-based methods have quite a few dependencies on one another, use of service virtualization is very essential to help the agile growth, testing, and steady supply of such functions. This is among the hottest use circumstances for service virtualization. See determine beneath. 


Service virtualization can be utilized to help each side of microservices testing, together with unit, part, integration, contract, and system testing. Plus, testing could be performed constantly all through the CI/CD pipeline. For extra particulars on utilizing service virtualization for component-based functions, please discuss with my earlier blogs (Steady Service Virtualization Half 1 and Half 2). 

The next sections spotlight a couple of key use circumstances:

a. Era of Artificial Digital Providers from Microservice APIs

Service virtualization can be utilized to generate an artificial digital service for a dependent part that doesn’t but exist, or is unavailable, utilizing artificial request-response pairs based mostly on the API’s definition of the service.  That is particularly helpful throughout growth and unit testing. 

The artificial digital service could also be progressively enhanced to help subsequent testing (resembling integration and system checks) alongside the CI/CD lifecycle.

b. Help for Microservices Contract Testing

A service client can check a service supplier utilizing artificial request-response pairs developed from its API specification. A service supplier can in flip check its interactions with a client utilizing a validated contract—which could be carried out utilizing a recorded digital service. See determine beneath. 

c. Help for Steady Microservices Efficiency Testing

This is among the most necessary use circumstances for service virtualization. With service virtualization, we are able to really shift microservices efficiency testing left. This considerably reduces the necessity for time consuming, end-to-end load checks that need to be performed earlier than launch. Service virtualization allows restricted, scaled efficiency testing on the part degree to validate related service degree goals (SLOs). This additionally allows scaled testing of transactions throughout a number of providers utilizing their APIs. For extra particulars on this, please discuss with my prior weblog on steady efficiency of microservices.

d.  Help for Simpler Chaos and Adverse Testing

Digital providers present a method to help repeatable and structured chaos and detrimental situations testing. For instance, they will simulate such situations as non-responsiveness, downtime, or gradual response time. That is a lot simpler and much much less time consuming than having to energy off servers or take down bodily computing cases.

e. Help for Steady Reliability Engineering

Use circumstances (c) and (d) above enable us to constantly validate the reliability of cloud-based functions by making use of the rules of steady testing on the part degree. On this means, we are able to check each part change early within the lifecycle to see if its SLOs are met. With service virtualization, we are able to simulate dependent elements together with their SLOs (or SLIs if SLOs are usually not obtainable). For extra info, please discuss with my weblog on Steady Reliability.   

Help for Self-Service, Digital, Shared, and Elastic Infrastructure 

That is the second key attribute for cloud-native functions. As mentioned in part III, groups can use digital providers as a stand-in for actual elements. Digital providers can simply be packaged into light-weight container-based VSEs, which could be deployed on-demand into ephemeral cloud environments they usually can scale mechanically as wanted. 

In truth, libraries of digital providers might themselves be provided as a service (see “Service Virtualization as a Service)—with all of the capabilities of a cloud-native service—in order that they might ruled and consumed throughout a number of groups and functions. 

Help for Isolation from Server and Operation System Dependencies 

Digital providers could be packaged into containers which may be ported throughout quite a lot of laptop environments, no matter the place the actual finish factors are hosted. Plus, they are often deployed throughout a number of hybrid computing environments with several types of {hardware} and OS. This not solely consists of cloud-native functions, however legacy methods (resembling mainframes) and different advanced methods that these functions have to work together with. 

One use case of this attribute is service virtualization’s help for testing cloud-native functions with function-as-a-service (FaaS) dependencies. Usually talking, FaaS implementations are usually not very moveable throughout a number of cloud suppliers. This makes it tough to include FaaS code into testing environments that will reside in a special cloud. Service virtualization can be utilized to virtualize the FaaS part so it may be deployed into an area testing atmosphere with mechanically scaling VSEs. This permits groups to simulate the FaaS conduct for an utility below check that is dependent upon a FaaS endpoint. 

Help for Unbiased Lifecycle Administration Utilizing Agile/DevOps 

Help for unbiased life cycle administration is among the key use circumstances for service virtualization. (See my earlier weblog for extra on this matter.) Service virtualization helps to optimize steady supply. In truth, digital providers are key to supporting the principal of getting a devoted CI/CD pipeline for every microservice. 

Since microservices have dependencies on one another, because of this particular person CI/CD pipelines could also be impeded when a dependent microservice just isn’t obtainable or is present process parallel growth. Digital providers assist to take away these dependencies between parallel pipelines.  Digital providers could be made obtainable to different providers as wanted. See determine beneath. 

Word: This precept can be utilized to help simpler canary testing. Cloud-native functions are designed to permit frequent micro releases, for instance, of a single part. This permits us to get quick suggestions by deploying solely the modified part right into a canary atmosphere. Service virtualization makes this a lot simpler and less expensive by virtualizing the remainder of the applying ecosystem, enabling groups to give attention to the conduct of solely the modified part.  

Service virtualization helps a wealthy set of APIs that can be utilized to combine with CI/CD and different instruments for automation of deployment, orchestration, updates, and extra.

Help for Light-weight Containers 

Digital providers can simply be packaged into lightweight containers. As well as, VSEs could be deployed on-demand into ephemeral cloud environments, and scale mechanically as required  in Kubernetes clusters. 

Help for Greatest-of-Breed Languages and Frameworks

Digital providers are constructed on the protocol degree, and due to this fact are typically in a position to help functions, regardless of the programming language they’re developed in. This permits us to construct digital providers for functions which were created with a broad vary of languages and platforms. 

For builders, digital providers could also be even be developed as code and this strategy is supported by many programming languages.  

Help for API-Primarily based Interplay and Collaboration 

As mentioned earlier than, service virtualization permits us to create artificial digital providers from service API specs. It additionally helps in depth API-based testing (together with what’s known as “headless” testing) throughout layers of APIs usually utilized in cloud-based functions. 

As well as, digital providers don’t simply help easy API protocols like REST. Digital providers can help quite a lot of API sorts (resembling gRPC) throughout a number of kinds of utility methods. 

The determine beneath reveals a typical API structure that has expertise, course of, and system APIs. Service virtualization can be utilized to not solely virtualize every of the sub-services that help the API, however the whole API layer by virtualizing the “nearest neighbor.” 

For instance, we are able to run user-experience checks on front-end units by virtualizing the “omni-channel” API—with out having to arrange a check atmosphere for the all of the sophisticated stacks beneath it! 

As well as, service virtualization helps a wealthy set of APIs that can be utilized to combine with CI/CD and different instruments for automation of deployment, orchestration, updates, and extra.

Service virtualization may also be built-in with API Gateways to permit clear entry to API back-end providers—whether or not carried out by an actual service or a digital service. See determine beneath. 

Help for Stateless and Stateful Providers

Digital providers could be simply created to be stand-ins for stateless providers by simulating their conduct. 

When we have to virtualize a stateful service, we are able to create digital providers which are supported by in depth check knowledge that represents a sub-set of the stateful service’s knowledge. We will accomplish that by integrating with a check knowledge administration system. For extra on the interplay between digital providers and check knowledge within the context of microservices, please discuss with my prior weblog on steady check knowledge administration

Help for Automation and Infrastructure-as-Code

Digital providers are extremely amenable to automated deployment (for instance in CI/CD pipelines), particularly when packaged as containers. These providers could be outlined as a part of infrastructure-as-code atmosphere recipes, resembling Helm Charts, for automated provisioning and deployment.  

Help for Governance Fashions

Digital providers are usually deployed into Digital Service Environments. This permits us to outline governance insurance policies of digital providers that mimic these of corresponding functions. 

Abstract and Conclusion 

We have now examined how Broadcom Service Virtualization helps all kinds of use circumstances for cloud computing—from cloud migration to help for cloud-native computing. 

Our view is that service virtualization and cloud capabilities complement one another. By combining  Service virtualization and cloud providers, groups can set up a degree of really agile utility growth and supply, which might merely not be doable with solely considered one of these capabilities by itself. In truth, groups want to make use of service virtualization to help the necessities of cloud-native methods. 


Leave a Reply