• 企业级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子系统效能看板两大核心子系统。
    当然如有问题沟通,也可以私信与我交流,谢谢。
  • 相关阅读:
    怒刷LeetCode的第9天(Java版)
    【计算机辅助蛋白质结构分析、分子对接、片段药物设计技术与应用】
    第59节——redux-toolkit中的createSelector
    (计算机组成原理)第五章中央处理器-第六节3:五段式指令流水线
    12 个强大的现代 CSS 技术
    Yolov8引入 清华 ICCV 2023 最新开源移动端网络架构 RepViT | RepViTBlock即插即用,助力检测
    SPARKSQL3.0-PhysicalPlan物理阶段源码剖析
    PC安装苹果虚拟机?VirtualBox 安装
    Pymoo学习 (1):基本概念
    Unity3D 基础——使用 Mathf.SmoothDamp 函数制作相机的缓冲跟踪效果
  • 原文地址:https://blog.csdn.net/u010800804/article/details/127451055