The World of Docker and Kubernetes – Could it help in Service Virtualization?
Cloud Computing with its offering of “Platform as a service [PaaS]” has helped “Testing as a service[TaaS],” but could you move a running application from one VM to other? Sounds bit dicey but that’s how the Docker and Kubernetes could help in deploying containers inside a cluster and making each container as a standalone application that could be run on any Linux machine. Read our post to know how Docker and Kubernetes have made the seamless, continuous delivery process to quickly deploy Service Virtualization or Application Test to a PaaS environment.
What are Docker and Kubernetes?
Docker [swarm] and Kubernetes are the modern tools for container clustering and orchestration. Although the two tools differ a lot in terms of technicalities and designing, they are very helpful to DevOps team in managing a cluster and conveying a container on what nodes/VMs they should run, and to reboot in case of failure.
How could Docker and Kubernetes be used in Testing?
Docker and Kubernetes with its container clustering and orchestration could aid in managing the test environment seamlessly. As a tester/DevOps, you could set up “on-demand test environment with automated deployments” for your testing needs leading to full utilization of resources and manpower.
Parag Agarwal, Developer from CloudQA, says – The primary reason for us@CloudQA to use Docker is to scale our testing capacity and improve consistency between multiple tests. We follow the create-run-destroy model where on every test, we create a container with standard configurations of selenium, run our tests and destroy it. We use Kubernetes to expose our containers to our application, manage our clusters and horizontally scale them.
Docker and Kubernetes in Testing – A comparison
|USP||✓Capability to run single applications, packaged with all its dependencies and ready for use. |
✓A Docker application can be run on almost any infrastructure with no modifications
|✓Ability to manage several containers across several machines, with no manual intervention. |
✓It makes managing, starting and connecting to containers easier and ensures that your applications are always running.
|Limitations||✓For a large monolithic application, it’s hard to utilize the containers fully, but a modular app can use all the advantages |
✓Does not Support Customized Scheduling
|Aids In||✓Aids in Porting, improves scalability, deployment efforts and development times||✓Aids in Monitoring, Logging, Periodic health checking, restarting, load balancing, rolling updates, resource management, auto scaling and Connecting applications with services|
How Docker, Kubernetes aid to Service Virtualization and in turn Agile Testing Strategy?
If you are new to Service Virtualization and keen to know How it could enhance your agile testing strategy read our blog post here.
Docker and Kubernetes are just the perfect tools to boost Service Virtualization. Create an on-demand virtual world, use it and hash it!
Kubernetes and Docker provide Developers and testers with an up hand to create an independent module or containers that could be used for testing/developing. The containers could be set up from anywhere and anytime with no dependency on the platform or services used. Kubernetes with its concepts of pods, services and replication controllers makes it easy to manage these clusters and aid to orchestration. Docker, on the other hand, could prove to be productivity booster for any individuals in his efforts of Service Virtualization.
Parag Agarwal, Developer from CloudQA, says –From what I understand by service virtualization, is that it emulates behaviors of software that an application wants to run against. Docker can aid to service virtualization due to its flexible create/destroy model. Kubernetes can assist service virtualization just like it helps any other containerized software, by orchestrating and monitoring containers.
Service Virtualization that supports Cloud Computing, Development and Testing is sure to boost Orchestrating and clustering. For Agile Team it is a way to enhance their productivity, for few others a quick Time to market for the product while for many of us – a technology revolution! Have you found an excuse for your services to go virtual?