【云原生-DevOps】企业级DevOps平台搭建及技术选型-项目管理篇

开篇

为什么要搭建企业级的DevOps

  • 如果产品研发团队相对比较迷你,比如在100人以内,个人觉得是不需要企业级DevOps的,大家简单快捷的安装一些常用的协作软件就能正常运转
  • 本篇文章主要简述主要是企业级DevOps私有化部署及安装,会大量用到开源软件,所以为了匹配的只有的业务,二开是必不可免的,所以对人员要求和资金的耗费都要有一定的评估
  • 为什么要自己搭建的???不可以用成熟的SAAS软件吗? 不是所有企业都能上云的 , 自己去GET。
  • 这样也能节省成本【服务器减少啦 哈哈】、避免大家每个团队都使用横七竖八的软件,也方便公司进行统一管理及绩效考核。
  • 每到年底的时候就能统一取数,到底哪个团队提交的代码最多?发版的次数、时间???当然这也是最近子系统【效能看板】、系统要做的功能。

知识储备

业界标杆

阿里巴巴-云效

腾讯-CODING

  • 提供一站式开发协作工具,帮助研发团队快速落地敏捷开发与 DevOps 开发方式,实现研发效能升级
  • https://coding.net/

项目管理软件

代码仓库

  • 代码仓库亦称储存库、资源库、资源库、版本库、代码库、存放库,在版本控制系统中是指在磁盘存储上的数据结构,其中包含了文件、目录以及元数据。
  • 代码仓库是一个公共或私有的保存大量源代码的地方。大多数仓库会用作备份、版本控制,在多人开发的项目中会帮助处理各种代码版本问题,如:开发者同时修改源码导致的冲突。现今,流行使用Subversion,Git和Mercurial等工具构建仓库(repository)并处理上述的事情,在开源项目十分流行。
  • 代码库通常不包含由工具生成的源代码文件或二进制文件(目标文件),因为它们可以从人工编写的源代码构建生成,没有必要加入代码库。但是,代码库通常包括配置文件和属性文件,因为这些文件是构建时所必不可少的数据。

GitLab【推荐】

  • 推荐理由:受众广、资料多
  • 通过细粒度的访问控制来管理Git存储库,确保您的代码安全。执行代码审查并通过合并请求的实现更紧密的开发协作。每个项目还可以配置议题跟踪和wiki。
  • 官网:https://about.gitlab.com/
  • 企业版本:https://gitlab.cn/
  • Rest API:https://www.apifox.cn/web/project/406098/
  • GitLab分为企业版和社区版,如私有化安装可以选择免费的社区版,也有极狐公司提供的SAAS平台,具体可以在企业版本了解,社区版本也支持
  • 支持RestAPI的调用,比如企业需要做关于代码提交的频率、时间段、次数等看板数据都可以通过API的方式拿到数据进行看板展示
  • 单点接入参考 https://blog.csdn.net/qq_16077549/article/details/118720698

Gogs【推荐】

  • 推荐理由:Go语言编写、完全开源、二开容易、云原生契合???
  • 官网:https://gogs.io/
  • 源码地址:https://github.com/gogs/gogs
  • Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
  • 一款极易搭建的自助 Git 服务,属于简化版的GitLab,功能相对GitLab要少许多,但是单纯的做为代码托管平台也更纯粹一些【个人建议】

文档中心

  • 文档中心是一款企业知识管理工具,通过独立的知识库空间,结构化地组织在线协作文档,实现企业知识的积累和沉淀,促进知识的高度复用和流通。
  • 随着人与人之间的交流越来越频繁,大部分的经验和知识却只能停留在少数人的脑海中,通过口述低效传播。我们迫切需要一款好的知识管理工具,将四散的无形知识转为结构化的有形知识,在企业中高效地流动起来。

Confluence【推荐】

  • 推荐理由:标准成熟的产品模式、体系
  • 风险:非开源版本,法律风险
  • 首先声明一点,Confluence非开源版本,但是网上有非常多得破解方式
  • Confluence 是适合远程操作的团队工作空间,可有效融合知识与协作
  • 开放、互连的结构使信息可以在企业所有人之间自由流动
  • 专为持久性知识而构建,因此您永远不会在瞬态通知或聊天中丢失绝佳的想法或情境
  • 借助社交功能,每个级别的员工都可以发声表达、分享并接收反馈。
  • 官网:https://www.atlassian.com/zh/software/confluence
  • PS:国外的非开源版本、比较成熟的产品体系、已经形成标准的产品模式。
    在这里插入图片描述

SAAS收费版

  • 说道文档中心saas收费版本,世面上还是非常非常多得,现在列举几个,供大家选择
  • ONES:https://ones.cn/
  • (强大的自定义引擎,可满足多行业、多场景、多角色的协同需求)
  • 印象:https://verse.app.yinxiang.com/general/
  • SAAS版本网上确实非常多,可自行通过搜索引擎搜索 “wiki”

项目管理

  • 项目管理系统是项目的管理者应用专门管理项目的系统软件,在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。它从项目的投资决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标。
    在这里插入图片描述

Jira【推荐】

  • Jira和Confluence都是由 atlassian 这家公司研发的商业化软件
  • 推荐理由:标准成熟的产品模式、体系
  • 风险:非开源版本,法律风险
  • 首先声明一点,Jira非开源版本,但是网上有非常多得破解方式
  • Jira 共同迅速行动、保持一致并构建更优秀的产品
  • 官网:https://www.atlassian.com/zh/software/jira
  • PS:国外的非开源版本、比较成熟的产品体系、已经形成标准的产品模式。

选择Jira还有非常非常非常重要的优势:
丰富的插件机制
(测试用例管理插件synapseRT - Test management and QA in JIRA)
(BigPicture 插件)
如果你要使用某些功能,既然你有这个需求,网上的很可能也有这个需求,总有**“好事之者”** 会将功能做成插件供大家使用。
在这里插入图片描述
工作流配置
例如任务、需求、缺陷等,但每种类型的生命周期都是不一样的,所以JIRA给我们提供了可以灵活自定义的工作流方案,以方便我们实现不同类型的项目管理。

禅道【推荐】

  • 禅道是专业的研发项目管理软件
  • 官网:https://www.zentao.net/
  • 是由青岛一家公司开发,还有其他配套软件一起使用,开发语言主要是PHP。
    在这里插入图片描述
    在这里插入图片描述
  • 大家可以清晰的看到禅道版本分为开源版、企业版、旗舰版、甚至还带有客户端,现有大部分公司都使用禅道的开源版本进行私有化部署进行使用,说实话禅道毕竟是国人开发的,对国内的软件开发环境和使用习惯还是比较熟悉的,所以大家使用起来也比较快上手,相对来说契合多还是比较高。
  • 如果要二开的话,还是要有专业的PHP人才,现在貌似不是太好找,很多都是兼职的,具体大家自己选择吧。

UED原型系统

自主研发【推荐】

  • 大家估计经常看到同一份原型由产品经理改了又改然后先发给测试、然后发给开发、然后发给不同角色进行评审等,大家信息不同步不对等。
  • 可以通过开源的文件管理系统包一层壳进行Web访问,比如 Linux 的 httpd 然后包一层Web页面

核心功能
添加用户
团队管理(增加、删除、加入)
原型上传(Axure导出来的就是HTML、进行打包上传)
支持分享文件(是否需要密码、分享的时效性等)

其他系统

公共私服

  • Nexus私服管理
  • Nexus 是一个强大的 Maven 仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用 Nexus 你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个 Artifact。Nexus 是一套 “开箱即用” 的系统不需要数据库,它使用文件系统加 Lucene 来组织数据。Nexus 使用 ExtJS 来开发界面,利用 Restlet 来提供完整的 REST APIs,通过 m2eclipse 与 Eclipse 集成使用。Nexus 支持 WebDAV 与 LDAP 安全身份认证。
  • NPM私服
  • https://blog.csdn.net/Li_dengke/article/details/121938840

项目管理篇总结

  • 在项目管理篇中,主要介绍了DevOps前半部的的功能实现,常用到的软件分别有:GitLab/Gogs、Confluence、Jira、禅道、私服等。
  • 在企业级的公司中,肯定会有一个系统叫 用户中心 ,整个公司入职离职的人员都应该在这个系统中,所以DevOps做为子系统,用户数据都应该从用户中心去进行同步,实现单点登录的功能。

单点登录

  • 当然也有成熟的开源软件可以快速的接入单点登录
casdoor【推荐】
keycloak
  • 毫不费力地为应用程序和安全服务添加身份验证。无需处理存储用户或验证用户。
  • Keycloak 提供用户联合、强身份验证、用户管理、细粒度授权等。
  • 官网:https://www.keycloak.org/

Confluence、Jira

  • OIDC协议实现单点登录、这就是为啥要用开源的单点登录了呢,这下似乎明白啦。
DevOps项目管理篇到这里就差不多结束啦,相信大家都有了一个基本的概念,当然DevOps肯定不是我这一篇文章就能取实现的,这里只是给大家 抛砖引玉 ,给有需求的小伙伴提供一个方向或者一个开篇,仅供大家参考。
下一篇主要更新DevOps 的CICD子系统效能看板两大核心子系统。

当然如有问题沟通,也可以私信与我交流,谢谢。

猜你喜欢

转载自blog.csdn.net/u010800804/article/details/127451055