Kubernetes — the ultimate cloud platform?
Modern cloud technologies reach new heights with every coming year, spawning more and more solutions but making the ultimate question harder to answer. That question being: “What is the best deployment platform for modern cloud applications?”
There may be a few possible answers to that but since 2014 there’s been a serious contender to this title — Kubernetes. Initially developed by Google using Golang and successfully launched into Open-Source, this container orchestrator system has been relentlessly garnering support from companies of all sizes and shapes. Quickly, it became a powerhouse in the DevOps world, making it trendy and hip to use K8s(its widely used short name). But how did Kubernetes become so widely adopted? Why do more and more projects start using it as their core deployment platform?
Firstly, Kubernetes comes with solutions for any production management aspect you may encounter, all in one easy-to-use package. Grouping features let you manage a near-infinite number of different deployments on the same cluster. The straightforward scaling flow lets you go from a small proof-of-concept environment to a highly-available setup in a matter of seconds. Built-in load-balancing capabilities remove the headache of managing the routing configuration and making sure traffic always reaches the right instance. Not to mention the fact that self-healing mechanisms and natural cluster sturdiness could save you countless hours of sleep and allow for peaceful Friday nights.
Secondly, Kubernetes is pretty much OS-agnostic, you can both run it on production-grade bare-metal machines in a data center or at home on a set of Raspberry Pi’s, all the while using the exact same deployment files. Due to that, Openware has managed to easily integrate its core Cryptocurrency Exchange Software onto numerous cloud providers(GCP, AWS, AliCloud, etc.). The fact that K8s is the only platform used throughout the whole deployment lifecycle, makes operations much more streamlined since there’s only one way of configuration, one set of typical workflows, one knowledge base which could be used for any cluster imaginable.
Last but not least, Kubernetes has garnered huge support from cloud providers and engineers alike, resulting in one of the biggest Open-Source communities of today. With this in mind, you can always be sure that there are thousands of people to help with tech-specific questions. And let’s not forget that there are tons of technology users that have battle-tested the system, helping smooth out all the sharp edges over the years. Openware team has been working with Kubernetes since its early releases, which allowed them to harness the power of K8s to create top-of-the-line Cryptocurrency Trading Software.
Anticipating the need for project-specific functionality, Kubernetes team introduced Custom Resource Definition(CRD), letting anyone extend the API with their own resources(e.g. Ceph storage objects, Spark applications, LetsEncrypt TLS certificates, etc.). With this approach, all the new integrations could be used in the same way as native K8s entities, making Kubernetes an ecosystem with truly limitless growth potential.
As the saying goes, every rose has its thorn. However, the “thorn” of Kubernetes may not be too sharp. The main points to consider before adopting K8s are steep learning curve since there is a certain level of complexity; the amount of work required to migrate your applications(though this depends on how close your stack is to modern cloud conventions like 12 Factor App); cluster maintenance overhead(which is dramatically smaller on PaaS offerings like GKE and EKS). All the aforementioned topics are typical for any production-grade setup so there shouldn’t be any issues unique to K8s as of itself.
Thus, in my humble opinion, Kubernetes is the ultimate deployment platform for modern cloud applications. Its stellar design, key features, unique ecosystem, active community, and extendability make it a future-proof solution which should always be considered as the top candidate for project use. That’s why chose K8s to become the foundation of OpenDAX — our cloud Cryptocurrency Exchange platform. Openware is publishing the Crypto Exchange Software