-
Notifications
You must be signed in to change notification settings - Fork 42
App centric Abstraction
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.
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.
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.
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](https://github.com/hyscale/hyscale/raw/master/docs/images/hyscale-abstraction.png)
For more on this subject, see: https://www.cncf.io/webinars/simplifying-app-migration-k8s-with-app-centric-abstraction/