Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Kubernetes – A Top Notch
Automation Solution
Kubernetes: A Top Notch Automation Solution
Technology has evolved to an extent where we no longer need physical human
intervention in terms of development, integration, testing, deployment and
modifications of software across various platforms. Everything is virtualized
with the help of cloud software and platforms.
Deployed automation provides the facility to move software between production
and testing environments by using automated processes. This helps in
producing faster releases of updates of an application.
Deployed automation, scaling and management are essential in order to
maintain DevOps practices and to manage a CI/CD pipeline. In order to
perform the above operations, we make use of Kubernetes, an open-source
platform.
WHAT IS KUBERNETES?
Kubernetes is a portable, extensible open-source platform that facilitates
automated deployment, scaling and management of Linux containerized
applications. It was developed by Google, written using the GO language. It is a
PaaS(Platform as a Service) when used on the cloud, whereas it is also flexible
as an IaaS(Infrastructure as a Service) and SaaS(Software as a Service) by
enabling portability, simplified scaling, and provision of robust software models.
CONCEPTS USED IN KUBERNETES
To understand the working of Kubernetes, prior knowledge of certain terms is
highly recommended. A few terms used in the processes of automated
deployment, scaling and management with Kubernetes are listed below.
CONTAINERS:
Containers are small virtual machines that run ready-to-run apps on top of
other virtual machines or any host OS. Containers help in simplifying deploying
applications.
NODE:
A node is a physical or a virtual machine created by any cloud OS like Amazon
EC2, Open Stack or can also be manually installed.
PODS:
A pod is one or more containers that logically go together. Pods run on nodes
together as a logical unit. They share storage and they have a shared IP
address. Pods need not run on the same machine as a container can span
more than one machine. A single node can run multiple pods.
DEPLOYMENT:
A set of pods is a deployment. A deployment makes sure that necessary
numbers of pods are running at a time to service the application. It also shuts
down those pods when not needed.
WORKING OF KUBERNETES
The agenda of Kubernetes is to act as a single interface to abstract machines,
storage and networks away from their physical implementation. Kubernetes
deploys containers to clouds, virtual and physical machines. Kubernetes works
with a wide range of containers e.g., Docker. To understand this concept better,
we can make use of a simple example.
Let’s say an application environment is a book shelf. The books are neatly
ordered with respect to certain parameters before they are placed in the shelf
and there is no isolation between the books. Here we can remove and add
books as per our interest without affecting the other books. We can also
increase or decrease the number of books with respect to the space in the
shelf.
The Kubernetes system provides a similar environment where the contents are
arranged in the form of pods and nodes. Here automated scaling
(increase/decrease of size) and immutability (change in one node/pod doesn’t
affect the others in the container) deployment of the same to various platforms
is carried out with ease.
KUBERNETES AND DOCKER
Kubernetes and Docker work together. Docker provides an open standard for
packaging and distributing containerized applications to build and run
containers. When a Docker build is run on a Kubernetes cluster, including
additional tools and services to manage security, identity, access along with
CI/CD workflows and other DevOps practices, it is highly optimized.
KUBERNETES AND ITS HIGHLIGHTS
Kubernetes can be used for all different systems, using the same orchestration
tool and command line interfaces. For example; Amazon Cloud Formation
works only with EC2. Here we can use Kubernetes to push containers to
Amazon cloud, in-house virtual and physical machines and other clouds.
Kubernetes works with Amazon EC2, Azure Container Service, Rackspace,
GCE, IBM Software, etc. It works with bare-metal Docker, vSphere and also
with libvirt and KVM which are Linux machines turned into hypervisors.
MERITS OF KUBERNETES
● Usage of Kubernetes can improve the productivity of the software. The
Kubernetes eco-system helps to use the platform more easily and
efficiently, reducing the negative impact of general complexity.
● Kubernetes contains existing tools which are tailored for cloud-native
software issues, making solution deduction easy.
● Kubernetes is a long-term solution because of its high scalability,
adaptability and flexibility with respect to several aspects.
● Improves the stability of applications by using comparatively easy
procedures to auto-update software in lesser downtime, which also results
in faster deployment.
● In some cases, Kubernetes can be a cheaper option when compared to
other solutions.
● Usage of Kubernetes leads to high utilization of resources so that the user
need doesn’t have to pay for idle resources.
DEMERITS OF KUBERNETES
● Kubernetes is beneficial in terms of costs, complexity and infrastructure
only for a complex, large and a distributed audience with high computing
resource needs. It fails in the case of simple software.
● The hiring of a K8-skilled person is relatively expensive so a large number
of people cannot be hired. This makes the operating and implementation of
Kubernetes difficult.
● If the development team is still adapting to Kubernetes processes, it results
in a short-term drop in productivity and results in long release cycles.
● The existing software may not always adapt and run smoothly along with
Kubernetes.
CONCLUSIONS AND FUTURE ENHANCEMENTS
DesiLabs is one of Azure’s incubators that focus on building tools for
Kubernetes. They used the Mozilla-developed programming language named
Rust to build Krustlet. Krustlet is a service that allows developers to run multiple
WebAssembly modules in Kubernetes.
The Rust compiler has the potential to detect security flaws that would have
probably been ignored by the original Go’s compiler. In near future, Rust may
be a better option for Kubernetes than the existing Go. This would also mean
that Kubernetes would have an improved security system and better scalability,
deployment and management which would multiply the demands for
Kubernetes in an organization.
Kubernetes is going to be more advanced in the future as there are high
chances of new technologies being built over it. Kubernetes enables
enterprises to capitalize on its varied benefits.
Automated deployment, scaling and management with Kubernetes have grown
to become less complex and highly efficient and would definitely continue to
grow in the future.
THANK YOU

More Related Content

Kubernetes: A Top Notch Automation Solution

  • 1. Kubernetes – A Top Notch Automation Solution
  • 3. Technology has evolved to an extent where we no longer need physical human intervention in terms of development, integration, testing, deployment and modifications of software across various platforms. Everything is virtualized with the help of cloud software and platforms. Deployed automation provides the facility to move software between production and testing environments by using automated processes. This helps in producing faster releases of updates of an application. Deployed automation, scaling and management are essential in order to maintain DevOps practices and to manage a CI/CD pipeline. In order to perform the above operations, we make use of Kubernetes, an open-source platform.
  • 4. WHAT IS KUBERNETES? Kubernetes is a portable, extensible open-source platform that facilitates automated deployment, scaling and management of Linux containerized applications. It was developed by Google, written using the GO language. It is a PaaS(Platform as a Service) when used on the cloud, whereas it is also flexible as an IaaS(Infrastructure as a Service) and SaaS(Software as a Service) by enabling portability, simplified scaling, and provision of robust software models. CONCEPTS USED IN KUBERNETES To understand the working of Kubernetes, prior knowledge of certain terms is highly recommended. A few terms used in the processes of automated deployment, scaling and management with Kubernetes are listed below.
  • 5. CONTAINERS: Containers are small virtual machines that run ready-to-run apps on top of other virtual machines or any host OS. Containers help in simplifying deploying applications. NODE: A node is a physical or a virtual machine created by any cloud OS like Amazon EC2, Open Stack or can also be manually installed. PODS: A pod is one or more containers that logically go together. Pods run on nodes together as a logical unit. They share storage and they have a shared IP address. Pods need not run on the same machine as a container can span more than one machine. A single node can run multiple pods.
  • 6. DEPLOYMENT: A set of pods is a deployment. A deployment makes sure that necessary numbers of pods are running at a time to service the application. It also shuts down those pods when not needed. WORKING OF KUBERNETES The agenda of Kubernetes is to act as a single interface to abstract machines, storage and networks away from their physical implementation. Kubernetes deploys containers to clouds, virtual and physical machines. Kubernetes works with a wide range of containers e.g., Docker. To understand this concept better, we can make use of a simple example.
  • 7. Let’s say an application environment is a book shelf. The books are neatly ordered with respect to certain parameters before they are placed in the shelf and there is no isolation between the books. Here we can remove and add books as per our interest without affecting the other books. We can also increase or decrease the number of books with respect to the space in the shelf. The Kubernetes system provides a similar environment where the contents are arranged in the form of pods and nodes. Here automated scaling (increase/decrease of size) and immutability (change in one node/pod doesn’t affect the others in the container) deployment of the same to various platforms is carried out with ease.
  • 8. KUBERNETES AND DOCKER Kubernetes and Docker work together. Docker provides an open standard for packaging and distributing containerized applications to build and run containers. When a Docker build is run on a Kubernetes cluster, including additional tools and services to manage security, identity, access along with CI/CD workflows and other DevOps practices, it is highly optimized. KUBERNETES AND ITS HIGHLIGHTS Kubernetes can be used for all different systems, using the same orchestration tool and command line interfaces. For example; Amazon Cloud Formation works only with EC2. Here we can use Kubernetes to push containers to Amazon cloud, in-house virtual and physical machines and other clouds.
  • 9. Kubernetes works with Amazon EC2, Azure Container Service, Rackspace, GCE, IBM Software, etc. It works with bare-metal Docker, vSphere and also with libvirt and KVM which are Linux machines turned into hypervisors. MERITS OF KUBERNETES ● Usage of Kubernetes can improve the productivity of the software. The Kubernetes eco-system helps to use the platform more easily and efficiently, reducing the negative impact of general complexity. ● Kubernetes contains existing tools which are tailored for cloud-native software issues, making solution deduction easy. ● Kubernetes is a long-term solution because of its high scalability, adaptability and flexibility with respect to several aspects.
  • 10. ● Improves the stability of applications by using comparatively easy procedures to auto-update software in lesser downtime, which also results in faster deployment. ● In some cases, Kubernetes can be a cheaper option when compared to other solutions. ● Usage of Kubernetes leads to high utilization of resources so that the user need doesn’t have to pay for idle resources. DEMERITS OF KUBERNETES ● Kubernetes is beneficial in terms of costs, complexity and infrastructure only for a complex, large and a distributed audience with high computing resource needs. It fails in the case of simple software.
  • 11. ● The hiring of a K8-skilled person is relatively expensive so a large number of people cannot be hired. This makes the operating and implementation of Kubernetes difficult. ● If the development team is still adapting to Kubernetes processes, it results in a short-term drop in productivity and results in long release cycles. ● The existing software may not always adapt and run smoothly along with Kubernetes. CONCLUSIONS AND FUTURE ENHANCEMENTS DesiLabs is one of Azure’s incubators that focus on building tools for Kubernetes. They used the Mozilla-developed programming language named Rust to build Krustlet. Krustlet is a service that allows developers to run multiple WebAssembly modules in Kubernetes.
  • 12. The Rust compiler has the potential to detect security flaws that would have probably been ignored by the original Go’s compiler. In near future, Rust may be a better option for Kubernetes than the existing Go. This would also mean that Kubernetes would have an improved security system and better scalability, deployment and management which would multiply the demands for Kubernetes in an organization. Kubernetes is going to be more advanced in the future as there are high chances of new technologies being built over it. Kubernetes enables enterprises to capitalize on its varied benefits. Automated deployment, scaling and management with Kubernetes have grown to become less complex and highly efficient and would definitely continue to grow in the future.