平台设计
平台采用多租户架构设计,平台层面的所有资源对象全部关联上租户 ID,实现严格的租户隔离。一个租户推荐设置为一个组织。
集群
集群 (Cluster) 是一个由多台物理机或虚拟机组成的有机整体,是一个由 Kubernetes + Docker 组建的集群。集群主要用于资源的管理和服务的部署运行。
一个集群内的所有节点(也就是主机)的网络是互通的,集群与集群之间的网络是相互隔离的。每一个集群由三种类型的节点(主机)组成,分别是 Master 节点、LB 节点和 Worker 节点。Master 节点负责整个集群的高可用管控,一般是 3 个节点;LB 节点是集群的访问流量入口,一般为 2 节点,LB 需要外网 IP 地址能够被用户访问;Worker 节点用于部署应用服务,节点数按需规划即可。
一个集群除了需要安装有 Kubernetes + Docker 以外,还需要安装平台提供的 Agent 程序,用于监控相关数据的采集。
集群属于企业的一种资源,集群需要被添加到企业内才能够使用。任何一个企业都可以拥有任意多个集群,比如:企业可以创建两个集群,一个集群用于应用的开发测试,另外一个集群用于应用的生产部署。
业务应用
业务应用主要是指处理某一类业务流程的微服务组合,比如会员管理的业务应用。
应用分为多种类型,可根据具体的开发任务创建不同类型的应用。
库应用
库应用实际上就是一段编译好的二进制代码产物,可以在其他应用中被调用使用,比如一个人脸识别库,用户可以下载库然后根据库对接使用说明文档进行使用。
移动应用
移动应用主要是指移动 App 客户端,平台包含了移动应用开发商和证书管理的同时,还覆盖了代码构建、发布、上架、市场的全链路。
环境
环境 (Environment) 是应用的一个逻辑概念,每个应用拥有开发、测试、预发和生产四大环境。四个环境可以被设置共享一个集群,也可以分别设置一个独立的集群。如果资源预算充足的情况下,推荐每个环境独占一个集群,至少生产环境应该独占一个集群。
不是所有类型的应用都拥有环境,那些不需要部署运行的应用就没有环境,比如:库应用。
:::
服务 (Service) 一般就是一个单体的进程,比如:一个 Java 进程,一个 PHP 进程。一个应用可能是一个单体服务,也可能拥有多个服务。
::: tip 此处的服务 (Service) 不等同于 Kubernetes 的 Service,它们之间没有任何关系,只是刚好名字相同罢了。 :::
Runtime 就是一个应用部署后,所有服务的集合,也可以称为应用的运行实体。任何一个应用都可以被部署多份, 也即是多个 Runtime。