目前,我们企业内部的系统架构还处于传统IOE架构向PaaS云架构的转变过程中。许多基于Java EE技术的应用还部署在IBM的WebSphere Application上,开发和运维人员普遍对在WAS上应用的部署比较熟悉。开发人员使用本地Tomcat进行自测,发版本时打包成ear包,安装到WAS上。甚至有些时候,采取了增量的部署方式,既直接将本地编译出的class文件上传到WAS上。而基于Kubernetes的PaaS云上应用的发布和部署方式与传统架构的方式完全不同。众所周知,Kubernetes基于的是一种声明式的配置,运维人员首先需要使用Dockerfile将发布的ear包打包成Docker镜像,然后通过编写YAML格式的配置文件,将容器的部署编排策略提交给Kubernetes集群。这种配置模式有一定的学习成本,不利于PaaS云平台在企业内部的推广。
为此,我们自研了一个B/S架构的管理控制台(Dashboard)。与K8S自带的Dashboard和Rancher等第三方的企业级Kubernetes管理平台不同,我们的管理控制台并不是以“Kubernetes的角度“来做的,而是以PaaS平台的角度来做。例如,K8S的Namespace在我们的管理控制台里面叫“应用”,K8S的Deployment叫“模版”,应用的创建、模版的策略编排以及部署运行等操作都是可以在管理控制台上以图形化的方式进行的。这样就极大降低了K8S的学习使用成本,开发人员和运维人员甚至可以在没有任何K8S的基础知识的情况下,将自己的应用部署在PaaS云上。另外,管理控制台还提供了定制化的集群监控、日志收集、权限管理、自动伸缩、持续基础持续交付等功能,全方位地管理着我们企业内部的PaaS云平台。