Virtual Machines have become ubiquitous in all IT and Cloud operations, with a unique value proposition of consolidating multiple workloads, to run on a single physical machine and allocating / distributing the resources, as needed. While VM technology has proven its tremendous value on reducing operational cost and improving manageability, it falls short onto supporting the modern cloud native services. A cloud native service supported by DevOps practice, where each function is developed & delivered independently, the chances of entanglement of dependencies is unavoidable. Container technology pushes through this limitation of VMs, widening the road for DevOps and Micro-service applications. Unlike VMs, Containers share the OS kernel and hardware resources, while reserving the dependencies and runtime environment for each service. With enhanced “Service-wise horizontal scaling”, “Infrastructure as Code” & “Support for Continuous integration/Continuous delivery”, Container technology is emerging as the new favorite, to develop cloud native services. However, for a large scale, multi-node, multi-cloud & multi-tenant service, like our Vitalpointz IoT Edge Service Platform (VESP), it opens up a pandora box of manageability challenges.
A container orchestration platform like Kubernetes comes very handy to ease up the manageability challenges, while retaining the benefits of containers. Kubernetes makes it easy to scale across nodes. VESP would need to run a cluster of services, dedicated to each consumer, to deliver their business logic. Also, to keep the cost-structure low, all the containers need to use the hardware resource efficiently and should be designed to scale-up or scale-down based on demand. This leaves us in a situation where multiple containers of identical services, end up scheduled in different virtual hosts during run time. Kubernetes, by inherently administrating their respective namespaces, effectively tackles the tenant-wise isolations, while service-discovery guarantees the access of services only to the authorized user, independent of the actual virtual host they are scheduled to run. Kubernetes equipped with built-in “load-balancer”, “liveness-probe” and “horizontal-pod-autoscaler” takes care of instant overload or temporary fault, preventing the operation team from the midnight service calls.
Kubernetes combined with Heapster and Grafana dashboards provides great visibility to the ops team. VESP powered by Kubernetes, not only provides all the necessary manageability to the platform operator, but also makes it simple to consume services to SaaS developer. SaaS developer can make use of hosted node-red, to program flows for a business logic, make use one of the hosted analytics services to create a live or historic chart, build user specific UI controls and deliver them to mobile apps. Also, any containerized application, can work alongside the platform using the essential APIs and database services provided by our VESP. These features enable application developers to focus only on the business logic and use-cases, leaving all the related complex and cumbersome programming, to the underlying VESP.
With superior manageability, Kubernetes can extend its control to the Edge (VESPa in our terms), by including the IoT fog nodes to its administration domain. The Gateway agent inside Vitalpointz FogOS can register the FogNode to the platform as a Kubernetes namespace extension. This enables workload migration from the platform to the Edge, opening the door to operate IoT services in low bandwidth or latency-sensitive application environments. With Kubernetes, building a forward-looking IoT platform is a much more feasible endeavor.
More info on VESP & VESPa can be found at https://vitalpointz.io