Harshala Nagarkar who has a very solid back ground on performance testing, took a Session on "Performance Testing and Monitoring of Containerized Microservices" at Global Testing Retreat #ATAGTR2018
please refer our linkedin post for session details
https://www.linkedin.com/pulse/performance-testing-monitoring-containerized-harshala-alliance/
#ATAGTR2018 Presentation "Performance Testing and Monitoring of Containerized Microservices" by Harshala Nagarkar.
1. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the
content for social media marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
#ATAGTR2018
Performance Testing and Monitoring of Containerized
Microservices
Harshala Nagarkar
27th September 2018
2. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
Containerization
Containerization is the process of hosting an application or microservice inside of a virtual container,
rather than a virtual machine.
Software images are source code / metadata packages which describe a single
software component.
A package (container) is stored/retrieved from a registry(public or private) and can
be “played using a container run time(Docker Daemon).
Docker is open source but can be commercialized and is used in conjunction with
orchestration engines and scripting interfaces (CLIs)
Docker containers run on Linux only (process isolated)
Multiple containers can be played on a single virtual machine offering economies of
scale in deploying and managing software via containerization
3. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
What are Containers?
Containers are a technology that let you deploy an application and its dependencies as an isolated unit
that is abstracted from the underlying hardware. A container provides the application with everything it
needs to run, including dedicated resources such as CPU, memory, and networking. Multiple
applications (or multiple copies of an application) can run on the same server at the same time, each
within its own container—a feature called multi-tenancy.
Virtual Machines vs Containers
. Compared to VMs, containers are lighter weight, consume fewer server resources, and are quicker to
deploy and run. The figure below shows a server running virtual machines and one running containers.
Let's walk through the differences
4. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
The table below summarizes some of the key differences between VMs and containers.
Virtual Mahines (VMs) Containers
Require a copy of the operating system for each VM Share a copy of the operating system with other
containers
Consume more server resources per application Consume fewer server resources per application
Can be created and started within minutes Can be created and started within seconds
Make security simpler, because each application uses a
separate kernel
Make security more challenging, because applications
share the same kernel
Are better for running multiple applications on
multiple servers
Are better for running multiple copies of the same
application on a server
Virtual Machines vs Containers
5. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
Containers can provide many improvements over our current environment. Among them:
Agile application creation and deployment: Increased ease and efficiency of container image
creation compared to VM image use.
Continuous development, integration, and deployment: Provides for reliable and frequent
container image build and deployment with quick and easy rollbacks (due to image immutability).
Dev and Ops separation of concerns: Create application container images at build/release time
rather than deployment time, thereby decoupling applications from infrastructure.
Environmental consistency across development, testing, and production: Runs the same on a
laptop as it does in the cloud.
Resource isolation: Predictable application performance.
Resource utilization: High efficiency and density
Why Containers?
6. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
Definition
Wikipedia defines Docker as "an
open-source project that
automates the deployment of
software applications inside
containers
providing an additional layer of
abstraction and automation of OS-
level virtualization on Linux“
Benefits
it allows users to package an
application with all of its
dependencies into a standardized
unit for software development
Unlike virtual machines, containers
do not have the high overhead and
hence enable more efficient usage
of the underlying system and
resources
Overview of Docker Containers and Kubernetes
7. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
KUBERNETES-
Kubernetes is an orchestration engine for containers. It supports Docker and other container formats.
A platform for automating container operations such as deployment, scheduling and scalability across
a cluster of nodes. It can run on-premise, hybrid, or public cloud infrastructure.
Other orchestration engines include Swarm, Apcera, Mesos, ECS, Rancher ...etc.
Kubernetes provides specific capabilities like:
Create / Manage and deploy Kubernetes clusters via scriptable interfaces
Deploy and monitor containers onto clusters
Backup and restoration of the cluster to a known state
Scaling of the container deployment (auto scaling)
Update the cluster and container version with new versions of software
Debug the running state of the Cluster and Containers
Service association with a deployment with intrinsic load balancing
Overview of Docker Containers and Kubernetes Cont..
8. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
This architecture of Kubernetes provides a
flexible, loosely-coupled mechanism for
service discovery. Like most distributed
computing platforms, a Kubernetes cluster
consists of at least one master and multiple
compute nodes. The master is responsible for
exposing the application program interface
(API), scheduling the deployments and
managing the overall cluster. Each node runs
a container runtime, such as Docker or rkt,
along with an agent that communicates with
the master.
A pod is a collection of one or more
containers. The pod serves as Kubernetes’
core unit of management. Pods act as the
logical boundary for containers sharing the
same context and resources.
Kubernetes Architecture
9. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
• As with any technology shift, adoption of containers necessitates the ability to monitor their health
and understand impact on performance. Common container issues arising from misconfiguration and
capacity management can have critical impact on services.
• To provide visibility and insight into containerized environments, there are numerous tools which can
help in monitoring the environment. To name a few - Instana, TruSight, Dynatrace.
Instana Monitoring
Instana automatically discovers and monitors Docker containers.
Container monitoring will:
provide realtime insights into metadata, configuration, metrics
watch the health of each container and alert on issues
enable service discovery leveraging container information (see Service Configuration)
place this insight within the context of the rest of your infrastructure/services
Performance Monitoring & Troubleshooting
10. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
Instana sends alerts based on Events. Events can be associated with error stack traces or general
behaviour, and are created when Instana's own algorithms for the entity type detect erroneous
behaviour. There are three major event types:
Issues
Incidents
Changes
Incidents Tab-
To view alerts and other events, click on the Incidents tab in Instana.
The below image shows an Issue event being highlighted.
Instana Monitoring Cont..
11. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
After finding the issue or incident, you can go to the application Dashboard to view stats and see related
stack traces
Instana Monitoring Cont..
12. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
Clicking on Traces Touching (touching the service) or Traces Starting (originating with the service) in the
dashboard will bring up the stack traces for the application.
Instana Monitoring Cont..
13. #ATAGTR2018
As a author of this presentation I/we own the copyright and confirm the originality of the content. I/we allow Agile testing alliance to use the content for social media
marketing, publishing it on ATA Blog or ATA social medial channels(Provided due credit is given to me/us)
THANK YOU!