diff --git a/README.md b/README.md index d22423fd6..c01b4b8cd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ # KubeVela -KubeVela is a modern application delivery system. It brings *Developer Centric* experience to Kubernetes based application deployment, in a robust, repeatable and modularized approach. +KubeVela is a modern application engine that exposes higher level API for self-service experience. ## Community @@ -24,11 +24,15 @@ KubeVela is a modern application delivery system. It brings *Developer Centric* ## What problems does it solve? -Application deployment with **developer-centric experience** requires higher level primitives which is out-of-scope of Kubernetes itself. Hence, we platform teams build abstractions. +Managing microservices on hybrid infrastructure with constantly changing user requirements is painful. This in turn makes continuous delivery at scale a nearly impossible task. -However, great in flexibility and extensibility, the existing solutions such as IaC (Infrastructure-as-Code) and client-side templating tools all lead to ***Configuration Drift*** (i.e. the generated instances are not in line with the expected configuration) which is a nightmare in production. +Hence, as the platform team, we build abstractions to manage such complexity and enforce best practices in the deployment workflow. -KubeVela allows platform teams to create developer-centric platforms with IaC but maintain them with the battle tested [Kubernetes Control Loop](https://kubernetes.io/docs/concepts/architecture/controller/). Think about a framework that turns your Kubernetes cluster into a *Heroku* via abstractions designed by yourself. +However, great in flexibility and extensibility, existing solutions such as IaC (Infrastructure-as-Code) and client-side templating tools all lead to *Configuration Drift* (i.e. the generated instances are not in line with the expected configuration) which is a nightmare in production. + +KubeVela solves this by allowing platform teams to manage complexities with IaC, expose abstractions as self-service capabilities, and enforce the consistent standard with [Kubernetes Control Loop](https://kubernetes.io/docs/concepts/architecture/controller/). Rollout model and strategies are also built-in so deployment confidence in hybrid environments is guaranteed. + +Think about a *Heroku* fully designed by yourself. ## Getting Started @@ -38,10 +42,10 @@ KubeVela allows platform teams to create developer-centric platforms with IaC bu ## Features -- **Robust, repeatable and extensible approach to create and maintain abstractions** - design your abstractions with [CUE](https://cuelang.org/) or [Helm](https://helm.sh), ship them to end users in LEGO-style, automatically generating GUI forms, upgrade your abstractions at runtime, and let Kubernetes controller guarantee determinism of the abstractions, no configuration drift. +- **Robust, repeatable and extensible approach to manage abstractions** - design and enforce best practices with [CUE](https://cuelang.org/) or [Helm](https://helm.sh) templates, ship them to end users with `kubectl`, automatically generating GUI forms for capabilities, and let Kubernetes controller guarantee determinism of the abstractions, no configuration drift. - **Generic progressive rollout framework** - built-in rollout framework and strategies to upgrade your microservice regardless of its workload type (e.g. stateless, stateful, or even custom operators etc), seamless integration with observability systems. -- **Multi-cluster app delievry model** - built-in model to deliver or rollout your apps across multiple enviroments and/or clusters, seamless integration with Service Mesh for traffic shifting. -- **Simple and Kubernetes native** - KubeVela is just a simple custom controller, all its app delivery abstractions and features are defined as [Kubernetes Custom Resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) so they naturally work with any CI/CD or GitOps tools. +- **Multi-cluster multi-revision application deployment** - built-in model to deploy or rollout your apps across multiple enviroments and/or clusters, seamless integrated with Service Mesh for traffic shifting. +- **Simple and Kubernetes native** - KubeVela is just a simple custom controller, all its abstractions and features are defined as [Kubernetes Custom Resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) so they naturally work with any CI/CD or GitOps tools. ## Documentation