Skip to content

App centric Abstraction

vijay rama raju samanuri edited this page Aug 4, 2020 · 2 revisions

K8s is infra-centric

Kubernetes as a container orchestration platform provides infrastructure centric operations. Application Teams need to deal with individual infrastructure resource objects in Kubernetes. Kubernetes defines hundreds of such objects and attributes. Most of these terminologies and concepts are new and unfamiliar even to a seasoned developer or devops professional. For example, in order to provision a volume to store some state/data in the application, one needs to …. For example, if you want to perform some action like backup on a single microservice, you have to first resolve the underlying kubernetes objects and then perform some series of operations on individual objects to achieve the higher level action goal.

Complexities grow

With more micro-services and complex applications, the individual objects needed scale too and the complexity increases. This is further compounded by newer objects introduced by K8s itself and also having to deal with backward compatibility with each new K8s version. And though not every object/attribute is needed for every app, even knowing what is needed and what the implications are can be hard. Despite all the well-known benefits of containers, this makes adoption, maintenance and troubleshooting quite difficult, tedious and error-prone.

Need for abstraction

Hence we need a framework which abstracts this underlying complexity and enables us to operate on top of applications rather than low level objects. This is more like giving an application context (“app-centric”) which Kubernetes (“infra-centric”) lacks. Such an app-centric abstraction is much the same as how dealing with the browser DOM was difficult in Javascript (but not impossible) and then later made much easier with jQuery. HyScale's goal is to bring such a layer on top of Kubernetes.

Building a more complete abstraction

Furthermore, for an abstraction to succeed, it must reduce the learning curve greatly, result in lesser code to write/maintain and also reduce the amount of leakage. A more complete abstraction must deal with aspects of deployment, operations and troubleshooting. So this Application centric abstraction enables developers to do self-service deployments as well as development on K8s with minimal DevOps intervention.


Building an app-centric abstraction for Kubernetes

Building an app-centric abstraction for Kubernetes

For more on this subject, see: https://www.cncf.io/webinars/simplifying-app-migration-k8s-with-app-centric-abstraction/