Everybody knows that making changes in an organization is complex. You must overcome many obstacles until your idea materializes. When introducing new technologies, your role is like that of a champion that has to evangelize and defend his technical vision against decision-makers. This Herculean task requires time, patience, and being ready to answer business questions, which can be draining.
Some technical teams find themselves in this situation with Kubernetes. They know that Kubernetes is the future of enterprise software deployment, but their organization doesn’t support their vision and think that Kubernetes is just another unnecessary trendy technology. Fear of change, misinformation, or short-term vision, generates friction when we want to introduce this technology in our companies’ ecosystem. This post aims to give you arguments that will convince your boss to add Kubernetes to your technical stack.
Is Kubernetes mature?
When you start to analyze a new technology, your first question is if this technology will give you more problems than solutions. Am I able to put this technology into production? If a find a bug, is the community able to resolve the issue? Is there helpful documentation? Ultimately, is this technology mature? In the case of Kubernetes, the answer is a resounding YES. Don’t take our word, ask Google, Spotify, Adidas, CERN, IBM, the list goes on and on… Furthermore, the community is one of the most active open-source communities, and you can find vast documentation and extensions to adapt the technology to your specific requirements. 100k’s of nodes run Kubernetes workloads every day, we are not talking thus about a lab project that is only tested under ideal conditions; it is robust, gaining major adoption by leading enterprises, and is proven in deployment in the most demanding environments.
Should we start using docker?
Maybe your company currently uses complex scripts to deploy applications or has migrated part of the application to virtualization environments. When you have spoken about Kubernetes, your boss says:
“We should start creating containers and use docker before we start using Kubernetes”.
You need to containerize your application, true, but using docker to orchestrate your application is not the best way. Docker helps you create and run containers in a single node. If you want to create more complex deployments, you can use docker-compose. Although if you want your application to scale, to be able to deploy in distributed environments, and have extra features such as replication, fault tolerance, or advanced network and security options, then docker falls short of the mark. IMHO, Docker is the easiest method to create a container and push it in your container registry; Kubernetes is the place where your containers must work.
Do we need a microservices architecture?
The microservices architecture has many advantages improving areas such as maintenance, scalability, and extensibility. However, implementing this type of architecture requires maturity in your process and adds a new layer of complexity in your development life-cycle. Your team works with a monolithic application, but you are not just deploying this application, you require it to work with other services such as databases, queues, APIs, or batch processes. Basically, your monolithic application is a set of components that requires coordination, monitoring, and maintenance. In this scenario, Kubernetes can help you simplify your deployment, reduce your time-to-market, or create replicable deployments of your monolithic app. Moving to microservices could be another challenge.
Is the learning curve too hard?
Kubernetes is complex, and the ecosystem is enormous. But the community knows it and has created tools and platforms to reduce the learning curve (the Napptive Playground is a good example). With these tools, you can put your first application stack into production in just a few minutes. You don’t need to dive deep inside of the extensive Kubernetes documentation. With only a few concepts, you are ready to use your cluster. Never has it been more fun starting to work with Kubernetes.
Try Napptive for free, you simply need to log in with your existing GitHub account to get started!