基于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运维和改善三大部分:
这份报告把Backstage作为开发者门户的典型,而与这份报告不约而同的是,在VMWare新推出的现代化利用平台Tanzu Application Platform (TAP)中就蕴含了开发者门户TAP GUI,正是基于Backstage进行构建和扩大的。VMWare也是Backstage社区的沉闷的贡献者,提供企业级的商业反对。
Backstage简介
Backstage起源于音乐流媒体巨头Spotify,它的Vision正是”Kubernetes for Developer Experience”.
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等
Backstage的零碎模型
Backstage的Software Catalog定义了一套形容软件系统的模型
次要类型包含:
- 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等
残缺的配置项参见: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的灵便的插件架构,额定开发了如下组件:
- Workload Visibility: 利用部署后的动静视图,包含资源树上的各层对象如Knative Service, Kubernetes Deployment, ReplicaSet, Pods等的详细信息,通过Knative Route能够一键拜访利用
- App Live View: 基于Spring Boot利用的Actuator机制,图形化的展现利用的衰弱状态,以及CPU/Memory的实时监控,最近的HTTP申请的详情,动静调整日志级别等
- App Accelerator: 当时定义好的我的项目模版,凋谢给开发团队选用,主动生成我的项目的整体目录构造及根本配置文件,满足企业技术标准和架构标准,不便项目组疾速上手
- Supply Chain Visibility: 图形化展现供应链的执行门路及状态,可进一步查看每个步骤的执行细节
总结与瞻望
构建开发者门户是一个继续的工作,不是一个一次性的交钥匙工程,不是说装置好了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...
作者:罗治年
罗治年是VMWare大中华区利用现代化部门的资深云原生利用架构师,有近20年的软件研发和架构设计教训,曾先后就任于埃森哲、毕博治理征询、迪士尼、Pivotal等公司,长期从事企业IT布局,企业级零碎架构设计,及零碎研发和施行治理等工作。近期次要专一于采纳麻利开发方法实现微服务云原生利用的设计和开发,对传统利用实现现代化并实现云上迁徙领有丰盛的实战经验,并取得诸多技术认证,包含:Spring Professional, Kubernetes 管理员 (CKA) 、AWS Professional、DevOps Professional和Cloud Foundry 专家等。
起源|公众号:VMwareTanzu云原生