TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户

基于Backstage的开发者门户

随着云原生的理念和技术逐渐深入人心,很多企业都在思考和实践如何落地,实实在在地达成云原生所承诺的目标:使工程师能够轻松地对系统作出频繁和可预测的重大变更。

越来越多的企业认识到,以Kubernetes为代表的云原生技术确实可以作为构建企业自己的内部平台的基础底座,并且大大赋能运维团队,但同时也意识到Kubernetes对开发人员而言复杂度还是太高了,有陡峭的学习曲线。
能找到会用Kubernetes的开发人员可能不难,但能找到精通的人恐怕就不容易了。

那现在的开发者体验到底如何呢?设想一个新加入的开发人员,他经常会问:

  • 我们的技术标准和架构规范是什么?
  • 可以用哪些开发语言、框架、开源软件?什么版本?我们使用什么编码规范和代码风格?
  • 到哪儿能找到项目文档?还有架构图、拓扑图?
  • 有什么微服务API可以调用?
  • 有没有现成的项目模版可以重用?
  • 代码提交到哪儿?多长时间提交一次?测试覆盖率需要达到多少?
  • 怎么构建镜像?
  • 怎么触发流水线执行部署应用?
  • 到哪儿查看应用的遥测信息如运行日志、指标、分布式跟踪信息?
  • ……

运气好的话,上述问题都能找到对应的人给出对应的答案。之后呢?他们还需要申请多个系统的账号,分别打开多个工具的界面(如Wiki查看文档信息,Jira查看用户故事或缺陷,Jenkins查看流水线执行状态,Kubernetes查看应用负载运行状况等),熟悉各自的操作,不时的切换和copy & paste,人工串联起整个工作流程,费时费力,还容易出错。

麦肯锡公开的一份研究报告1指出:开发者效率高的公司比开发者效率低的公司的收入增长速度快4-5倍。它们的营业利润率也更高,创新能力更是高55倍!处于前四分位的公司的总股东回报率也高60%,营业利润率高20%。由此可见,开发者效率是企业塑造核心竞争力的关键因素之一。


那如何弥合这些开发体验上的差距?

我们来看Gartner关于开发者体验的报告2,其中推荐的关键实践包括:

  • 建立内部开发者门户,理顺软件开发流程,支持重用、分享和协作,以提升开发体验和效能
  • 通过开发者门户提供内置“安全护栏(Guardrail)”的自助服务,在快速敏捷交付迭代创新的同时,兼顾治理规范的要求
  • 把开发者门户作为产品,积极听取开发者的反馈,持续演进和创新,适应不断变化的需求

这份报告还大胆预测,到2025年75%的企业平台团队都将提供自助服务的开发者门户。理想的开发者门户提供一站式的服务,涵盖Day 0发现与构建、Day 1集成与部署、Day 2运维和改善三大部分:
TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第1张图片

这份报告把Backstage作为开发者门户的典型,而与这份报告不谋而合的是,在VMWare新推出的现代化应用平台Tanzu Application Platform (TAP)中就包含了开发者门户TAP GUI,正是基于Backstage进行构建和扩展的。VMWare也是Backstage社区的活跃的贡献者,提供企业级的商业支持。


Backstage简介

Backstage起源于音乐流媒体巨头Spotify,它的Vision正是”Kubernetes for Developer Experience”.
TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第2张图片
Backstage大致的发展时间线如下:

  • 2016年发起的内部项目,用于构建Spotify内部开发者门户,Spotify的开发人员的上手时间比以前减少了55%,在内部得到广泛使用
  • 2020年3月的“黑客周”,正式开源
  • 2020年9月贡献给CNCF进入沙箱阶段
  • 2022年3月从沙箱进入正式孵化阶段
  • 2022年3月17日正式GA,发布了1.0版本。

目前有100多个知名公司与机构公开采用,包括Netflix,Expedia,Splunk,美国航空、VMWare等。

Backstage提供了统一的UI体验和可扩展的核心框架。在此基础上主要包括:

  • Software Catalog: 软件目录,统一管理软件系统的各个组件
  • Software Templates: 软件模版,快速创建项目和脚手架(Scaffolding),确保符合技术标准和规范
  • TechDocs: 技术文档,统一发布,查找和使用技术文档(Markdown格式)
  • Kubernetes: 运行在Kubernetes上的资源如Deployment, Pod等的可见性
  • Search: 搜索软件目录和技术文档,基于Lunr、ElasticSearch或Postgres等

TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第3张图片


Backstage的系统模型

Backstage的Software Catalog定义了一套描述软件系统的模型
TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第4张图片
主要类型包括:

  • Domain: 某个业务领域,如电商
  • System:组成Domain的各个应用系统,如商品目录、购物车、订单等系统
  • Component:系统中的组件,如订单前台页面SPA,订单微服务组成了订单系统
  • Resource:系统中的资源,如订单数据库、订单执行的消息中间件等
  • API:组件既可以发布API(符合OpenAPI、AsyncAPI、GraphSQL等)供使用方调用,可以使用其它组件提供的API,如订单微服务组件发布订单API供前台页面调用

每个项目需要提供描述自己的元数据(catalog-info.yaml),与源代码一起保存在版本控制系统,如Git里面。元数据主要包括

  • 所属的种类(domain/system/component/resource等)
  • 名字、描述
  • 标签、注解
  • 类型(service/website/library)
  • 所属的system/component
  • 负责的团队(group/user)
  • 服务的生命周期(production/experimental/deprecated)
  • 依赖项(component/resource)
  • 提供的API、使用的API等

TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第5张图片
完整的配置项参见:https://backstage.io/docs/fea...


Backstage的生态系统

Backstage可以无缝集成主流的源代码管理系统如Github, GitLab,AWS S3等,并支持使用第三方认证包括Github, GitLab, Okta, Auth0, Atlassian等。

Backstage开源社区很活跃,生态系统(https://backstage.io/plugins )中有大约60个现成的插件,覆盖软件开发生命周期,可以大致分类为如下:

  • 敏捷管理: Jira
  • 源代码管理:Github Pull Requests, Github Insights
  • 发现:API Docs, Harbor, Home, Tech Radar, TODO, Cost Insights
  • CI/CD:Argo CD, Azure Pipelines, Circle CI,Github Actions,Gitlab, Jenkins, Travis CI
  • 监控:Datadog,Grafana,Kafka,New Relic,PagerDuty,Prometheus
  • 安全:Snyk,Security Insights
  • Infrastructure: AWS CloudFormation, AWS Lambda

可以看到,插件已经初步完备,并且还在持续增加和丰富中,相信大部分企业典型的需求都可以得到满足。即使目前还未完全满足,企业也可以而且应该开发自己的插件,并贡献回社区,这样的社区生态才会越来越好!


TAP的扩展

TAP除了包含Backstage核心组件外,还基于Backstage的灵活的插件架构,额外开发了如下组件:
TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第6张图片

  • Workload Visibility: 应用部署后的动态视图,包括资源树上的各层对象如Knative Service, Kubernetes Deployment, ReplicaSet, Pods等的详细信息,通过Knative Route可以一键访问应用

TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第7张图片

  • App Live View: 基于Spring Boot应用的Actuator机制,图形化的展示应用的健康状态,以及CPU/Memory的实时监控,最近的HTTP请求的详情,动态调整日志级别等

TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第8张图片

  • App Accelerator: 事先定义好的项目模版,开放给开发团队选用,自动生成项目的整体目录结构及基本配置文件,满足企业技术标准和架构规范,方便项目组快速上手

TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第9张图片

  • Supply Chain Visibility: 图形化展示供应链的执行路径及状态,可进一步查看每个步骤的执行细节

TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第10张图片


总结与展望

构建开发者门户是一个持续的工作,不是一个一次性的交钥匙工程,不是说安装好了Backstage和TAP之后就万事俱备了。在这个基础上,还需要适应企业特定的需求和集成现有的工具,不断的改善现有的开发体验。

同时,TAP也是一个比较新的产品,还在持续的迭代和发展中。在近期的路线图上,TAP开发者门户正在开发和集成的还有:

  • API Portal: 符合OpenAPI标准的服务API都可以发布到API门户,方便服务的发现和重用,还可以调用API查看实际的请求和结果
  • Learning Center: 学习中心提供教程和动手实验环境,让开发人员尽快上手!
  • 供应链执行过程的更多信息:如构建、扫描结果等
  • ……

以上初步介绍了TAP所提供的开发者门户以及Backstage的基本情况,如果您对TAP和其中的组件感兴趣,我们会在后续的系列文章中进一步介绍,敬请关注与期待!如果您有任何反馈,也请联系我们!

参考
1: Mckinsey, Developer Velocity: How software excellence fuels business performance: https://www.mckinsey.com/indu...
2: Gartner,Innovation Insight for Internal Developer Portals https://tanzu.vmware.com/cont...


作者:罗治年
TAP 系列文章4 | 基于 Backstage 的 TAP 开发者门户_第11张图片
罗治年是VMWare大中华区应用现代化部门的资深云原生应用架构师,有近20年的软件研发和架构设计经验,曾先后就职于埃森哲、毕博管理咨询、迪士尼、Pivotal等公司,长期从事企业IT规划,企业级系统架构设计,及系统研发和实施管理等工作。近期主要专注于采用敏捷开发方法实现微服务云原生应用的设计和开发,对传统应用实现现代化并实现云上迁移拥有丰富的实战经验,并获得诸多技术认证,包括:Spring Professional, Kubernetes 管理员 (CKA) 、AWS Professional、DevOps Professional和Cloud Foundry 专家等。

来源|公众号:VMwareTanzu云原生

你可能感兴趣的:(vmware云原生)