Kubernetes: revolution in the Devops industry

Characteristics of Kubernetes

  • The ability to automatically place containers according to your resource requirements, without affecting availability.
  • Service discovery and load balancing: no need to use an external mechanism for service discovery as Kubernetes assigns containers their own IP addresses and a unique DNS name for a set of containers and can balance the load on them.
  • Planning: it is in charge of deciding in which node each container will run according to the resources it requires and other restrictions. It mixes critical and best-effort workloads to enhance resource utilization and savings.
  • Enable storage orchestration: automatically set up the storage system as a public cloud provider. Or an on-premise networked storage system such as NFS, iSCSI, Gluster, Ceph, Cinder and others.
  • Batch execution: in addition to services, Kubernetes can manage batch and IC workloads, replacing failed containers.
  • Configuration and secret management: sensitive information such as passwords or ssh keys are stored in Kubernetes hidden in ‘secrets’. Both the application’s configuration and secrets are deployed and updated without having to rebuild the image or expose sensitive information.
  • Self-repair: restart failed containers, replace and re-program them when nodes die. Also remove unresponsive containers and do not publish them until they are ready.
  • Execution of automated deployments where changes to the application or its configuration are progressively implemented, while its status is monitored. This ensures that you do not delete all your instances at once. If something goes wrong, Kubernetes will reverse the change.

Transforming a company’s IT infrastructure with Kubernetes

  • Multi-cloud flexibility: As more enterprises run on multi-cloud platforms, they benefit from Kubernetes, as it easily runs any application on any public cloud service or a combination of public and private clouds.
  • Faster time to market: Because Kubernetes can help the development team break down into smaller units to focus on single, targeted, smaller micro-services, these smaller teams tend to be more agile.
  • IT cost optimization: Kubernetes can help a company reduce infrastructure costs quite dramatically if it is operating on a large scale.
  • Improved scalability and availability: Kubernetes serves as a critical management system that can scale an application and its infrastructure whenever the workload increases, and reduce it as the load decreases.
  • Effective migration to the cloud: Kubernetes can handle rehosting, re-platforming and refactoring. It offers a seamless route to effectively move an application from the facility to the cloud.

Benefits and disadvantages for companies

  • Using Kubernetes and its huge ecosystem can improve productivity.
  • Using Kubernetes along with good native cloud technology attracts talent. For example, many software engineers want to work in companies that use modern and interesting technologies.
  • Kubernetes is a feasible solution for many years to come.
  • Kubernetes helps an application run more stably.
  • Kubernetes can be cheaper than other alternatives, especially if you have large computing resources.
  • Kubernetes can be too much for simple applications: If you do not intend to develop something complex for a large audience, or do not have large computing resources, you do not take full advantage of this technology.
  • Kubernetes is very complex and can reduce productivity: Kubernetes is known for its complexity. Especially for developers who are not familiar with infrastructure technologies, it can be very difficult to work with them.
  • The transition to Kubernetes can be cumbersome: If you have software and want to adapt it to Kubernetes, it must take time to run smoothly, which is difficult to estimate.
  • Kubernetes can be more expensive than other alternatives: This is because all of the above disadvantages cost engineers time that is not spent creating new “tangible” business value.

Kubernetes and Docker: better if they work together

  • Improve infrastructure security and high application availability: Applications will remain connected, even if some of the nodes are disconnected.
  • Make the application more scalable: If the application begins to receive much more load and needs to scale horizontally to provide a better user experience, it is easy to deploy more containers or add nodes to a Kubernetes cluster.

Conclusions

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store