- 总体架构
我们的平台工程建设之路,介绍前期方案设计、中间踩坑历程。
分享我们平台工程建设的一些基本原则。
为便于理解,我们仍然按照惯用架构模型,将架构分为 IaaS、CaaS、PaaS、Applications 这几个层级。
专业的运维人员作为 platform engineer 着重于 IaaS、CaaS、PaaS 建设,开发人员作为 application engineer 更专注于 PaaS、Applications 建设,为开发和运维提供工具、协作平台、基础应用。
C4Context title 平台工程总体架构 Boundary(users, "Users", "用户接入") { Person(superAdmin, "超级管理员") Person(admin, "平台管理员") Person(developer, "开发人员") Person(maintenance, "运维人员") } Boundary(console, "Console", "开发者平台") { Container(backstage, "Backstage","react","开发者门户") Container(apps, "应用管理平台","Application","容器管理、应用管理、配置管理、自动化测试") Container(ops, "统一运维平台","x-ops","数据库、中间件、日志、监控告警平台") Container(iam, "IAM", "Keycloak", "统一用户、组织、角色权限管理") } Boundary(paas, "PaaS", "PaaS") { ContainerDb(rds, "RDS", "PostgreSQL/MySQL", "PostgreSQL、MySQL 等关系型数据库") ContainerDb(clickhouse, "ClickHouse", "ClickHouse", "BI、Logging、Metrics 等列式数据库") ContainerDb(nosql, "NoSQL", "NoSQL", "ES、Redis、Mongo 等缓存数据库、文档数据库") ContainerDb(mq, "消息队列", "Kafka", "Kafka、RocketMQ 等消息队列") } Boundary(caas, "CaaS", "CaaS") { Container(k8s, "Kubernetes","k8s","K8S 容器平台") Container(workflow, "编排引擎","Argo","流水线,流程、应用编排引擎") Container(kms, "KMS","HashiCorp Vault","秘钥管理系统") Container(harbor, "Harbor","harbor","容器镜像仓库") Container(git, "IaC","GitLab","IaC、GitOps 源码仓库") } Boundary(iaas, "IaaS", "IaaS") { Container(vm, "云主机","vm","云主机自带本地存储") Container(cbh, "堡垒机","cbh","安全运维审计堡垒机") Container(s3, "S3","S3/Minio","分布式对象存储") Container(nfs, "NFS","nfs","共享文件存储") } UpdateLayoutConfig($c4ShapeInRow="4", $c4BoundaryInRow="1")
基础设施标准化是平台工程建设的第一步,通过对基础设施服务进行标准化,减少开发人员和运维团队之间的摩擦,减少运维难度,大大降低出错的概率。
云平台已经成熟,在云平台的基础上,我们更近一步,提出 All In K8S 策略,这里的 All In 主要包括两点:
作为一个由传统运维转变而来的团队,分享几个可能有用的关注点:
如何提升开发者体验。如何实现开发者自助。内部开发者平台解决不了的问题有哪些,如何解决的。
可观测助力提升开发者体验和质量提升。AIOps 是不是未来。
平台工程如何推动和影响组织架构变革。
我们的平台工程建设之路,介绍前期方案设计、中间踩坑历程。
分享我们平台工程建设的一些基本原则。
为便于理解,我们仍然按照惯用架构模型,将架构分为 IaaS、CaaS、PaaS、Applications 这几个层级。
专业的运维人员作为 platform engineer 着重于 IaaS、CaaS、PaaS 建设,开发人员作为 application engineer 更专注于 PaaS、Applications 建设,为开发和运维提供工具、协作平台、基础应用。
C4Context title 平台工程总体架构 Boundary(users, "Users", "用户接入") { Person(superAdmin, "超级管理员") Person(admin, "平台管理员") Person(developer, "开发人员") Person(maintenance, "运维人员") } Boundary(console, "Console", "开发者平台") { Container(backstage, "Backstage","react","开发者门户") Container(apps, "应用管理平台","Application","容器管理、应用管理、配置管理、自动化测试") Container(ops, "统一运维平台","x-ops","数据库、中间件、日志、监控告警平台") Container(iam, "IAM", "Keycloak", "统一用户、组织、角色权限管理") } Boundary(paas, "PaaS", "PaaS") { ContainerDb(rds, "RDS", "PostgreSQL/MySQL", "PostgreSQL、MySQL 等关系型数据库") ContainerDb(clickhouse, "ClickHouse", "ClickHouse", "BI、Logging、Metrics 等列式数据库") ContainerDb(nosql, "NoSQL", "NoSQL", "ES、Redis、Mongo 等缓存数据库、文档数据库") ContainerDb(mq, "消息队列", "Kafka", "Kafka、RocketMQ 等消息队列") } Boundary(caas, "CaaS", "CaaS") { Container(k8s, "Kubernetes","k8s","K8S 容器平台") Container(workflow, "编排引擎","Argo","流水线,流程、应用编排引擎") Container(kms, "KMS","HashiCorp Vault","秘钥管理系统") Container(harbor, "Harbor","harbor","容器镜像仓库") Container(git, "IaC","GitLab","IaC、GitOps 源码仓库") } Boundary(iaas, "IaaS", "IaaS") { Container(vm, "云主机","vm","云主机自带本地存储") Container(cbh, "堡垒机","cbh","安全运维审计堡垒机") Container(s3, "S3","S3/Minio","分布式对象存储") Container(nfs, "NFS","nfs","共享文件存储") } UpdateLayoutConfig($c4ShapeInRow="4", $c4BoundaryInRow="1")
基础设施标准化是平台工程建设的第一步,通过对基础设施服务进行标准化,减少开发人员和运维团队之间的摩擦,减少运维难度,大大降低出错的概率。
云平台已经成熟,在云平台的基础上,我们更近一步,提出 All In K8S 策略,这里的 All In 主要包括两点:
作为一个由传统运维转变而来的团队,分享几个可能有用的关注点:
如何提升开发者体验。如何实现开发者自助。内部开发者平台解决不了的问题有哪些,如何解决的。
可观测助力提升开发者体验和质量提升。AIOps 是不是未来。
平台工程如何推动和影响组织架构变革。