如何从 AWS CodeCommit 迁移到极狐GitLab?

news2024/9/22 16:28:35

极狐GitLab 是 GitLab 在中国的发行版,可以私有化部署,对中文的支持非常友好,是专为中国程序员和企业推出的企业级一体化 DevOps 平台,一键就能安装成功。安装详情可以查看官网指南。

本文将分享如何从 AWS CodeCommit 服务无缝迁移到极狐GitLab,并且使用极狐GitLab 的一体化 DevSecOps 平台功能来进行软件研发。

file

2024 年 7 月 25 日,AWS 官方发布了一则重要通知:旗下的代码托管服务 AWS CodeCommit 服务将不再接受新用户的注册,老用户可以继续使用,但是该产品不会再添加新功能,只是维护其安全性和可靠性。

官方表述:After careful consideration, we have made the decision to close new customer access to AWS CodeCommit, effective July 25, 2024. AWS CodeCommit existing customers can continue to use the service as normal. AWS continues to invest in security, availability, and performance improvements for AWS CodeCommit, but we do not plan to introduce new features.

这项官宣也就意味着研发团队不得不寻找对应的替代品,而极狐GitLab 作为一个企业级的一体化 DevOps 平台,是可以对 AWS CodeCommit 服务进行平替的。下面的内容将完整分享如何从 AWS CodeCommit 迁移到极狐GitLab。

极狐GitLab 作为 GitLab 在中国的发行版,可以一键私有化部署,中文体验更好,下载安装可以直接查看官网: https://dl.gitlab.cn/gbex3vbt 。

写在前面

本指南为使用极狐GitLab 的开发团队提供了全面信息,适用于考虑与 AWS 服务集成或计划从 AWS 托管的Git仓库迁移到 JihuLab.com 的情况。迁移指南包括以下几个主要部分:

  • 并行迁移至极狐GitLab:详细讲述了如何将托管在 AWS 上的既有仓库逐渐迁移到 JihuLab.com,同时将风险最小化。
  • 和 AWS CodeBuild集成:对极狐GitLab 和 AWS CodeBuild 的集成提供了详细的步骤,以便打造一个强大的持续集成(CI)环境。
  • 和 AWS CodePipeline 集成:详细讲述了如何将极狐GitLab 和 AWS CodBuild 进行连接,从而构建高效的持续交付(CD)流水线。
  • CodePipeline 和 CodeStar 连接的下游集成:阐述了如何利用极狐GitLab 与 AWS 的连接实现广泛的服务访问,解锁了跨AWS生态系统的一系列集成可能性。

通过这份指南,你将会学习到如何将极狐GitLab 强大的功能特性和 AWS 结合起来,从而创建高效、灵活的研发工作流。

第一部分:并行迁移至极狐GitLab

对于那些考虑将托管在 AWS 上的 Git 仓库迁移到 JihuLab.com 上的用户来说,这部分内容将介绍整个迁移过程,并且将风险最小化。通过使用极狐GitLab 的镜像能力,你可以在继续使用既有工作流的情况下对新环境进行测试。

为什么并行迁移如此重要?

大型系统的迁移往往伴随着风险,特别是对现有工作流、既有集成以及自动化流程的潜在影响。采用并行迁移能够获得以下好处:

  1. 风险最小化:让既有系统正常运行的时候,还能测试新环境。
  2. 无缝迁移:研发团队可以逐渐适应新环境。
  3. 集成测试:在新环境中完整地测试所有的测试和自动化流程。
  4. 未来适应性:使团队能够逐步在现有 CI 并行运行的情况下迁移到极狐GitLab CI/CD。

如果你决定直接从既有系统完全切换到极狐GitLab,那么就没必要执行并行迁移。

迁移步骤

第一步:设置 JihuLab.com
  • 先检查贵公司是否已经在 JihuLab.com 上有对应的群组在使用以及他们是否开启了 SSO 设置——如果确认开启,那么你会在稍后用到它。
  • 如果贵公司在 JihuLab.com 上没有对应的账号,可以直接注册创建。
  • 创建一个新的公司命名空间(在 JihuLab.com 上创建一个顶级群组)。
  • 名称的选择要能够完整地反映贵公司的情况。
第二步:导入仓库

对并行迁移来说:使用极狐GitLab 的 Pull 镜像功能将 AWS 上的仓库自动同步至 JihuLab.com。

  1. 在 JihuLab.com 上导航至目标群组。
  2. 在右上角,选择“新建项目”。
  3. 在“创建新项目”页面,点击“导入项目”。
  4. 在“导入项目页面”,点击“通过 URL 导入仓库”。
  5. 在“Git 仓库 URL”字段中输入完整的 AWS 仓库 URL。
  6. 在 Git 仓库 URL 字段下方,勾选“镜像仓库”。
  7. 设置认证:在 AWS CodeCommit 控制台,选择你想迁移仓库的克隆 URL。如果你计划将 CodeCommit 仓库导入极狐GitLab,你可以使用 HTTPS CodeCommit URL 通过极狐GitLab仓库镜像功能克隆仓库。你需要将你在 AWS IAM 用户系统中存储的 Git 凭据提供给极狐GitLab。你可以根据 AWS 官方指南来创建 AWS CodeCommit Git 凭据。

file

默认情况下,这项设置将每隔五分钟将 AWS 上 Git 仓库中的变更同步至 JihuLab.com。

更多详情,可以查看极狐GitLab 仓库镜像文档。

第三步:测试和验证集成
  1. CI/CD 流水线:在极狐GitLab CI 中设置 .gitlab-ci.yml文件,来对既有流水线进行“复刻”。更多详情,你可以阅读如何从其他 CI 工具迁移到极狐GitLab CI/CD 这篇文章。
  2. 议题追踪:导入项目议题,然后测试工作流。
  3. 代码审核:设置合并请求流程并且测试审核工作流。
第四步:逐步迁移
  1. 从小型或者非核心项目开始来逐步熟悉如何在 JihuLab.com 上进行工作。
  2. 为团队成员提供配置并且给予一定的时间来适应新的工作流。
  3. 逐步迁移更多的项目,同时要确保集成和工作流是没问题的。
第五步:完成迁移

一旦完成所有的测试和验证,而且团队在新的环境下也感觉很舒适,那么就进行完整的迁移。对于每一个项目:

  1. 设置一个迁移日期并且通知所有干系人。
  2. 执行最终的数据同步。
  3. 从极狐GitLab 项目中移除镜像设置。
  4. 将 AWS 仓库设置为只读,然后将所有研发工作流迁移到极狐GitLb 上。
第六步:评估采用新的能力

极狐GitLab 在协作和工作流自动化方面的能力远比 CodeCommit 丰富。值得花费一些时间来学习这些能力。单就合并请求流程来讲,极狐GitLab 就要比 CodeCommit 强大很多。

等到极狐GitLab 上的仓库稳定以后,就可以很容易地采取并行的方式来体验极狐GitLab CI/CD。在生产工作流不受影响的情况下,团队可以花费一些时间来执行极狐GitLab CI/CD 自动化流程。

极狐GitLab 制品管理也非常强大,具有发布功能和多种软件包仓库。

第一部分总结

通过采用向极狐GitLab 的并行迁移方式,你可以在最小化风险的同时感受丝滑的迁移。整个流程能够让团队逐渐适应新的环境,而且确保所有的集成和自动化功能都是正确的。而一旦确定并行迁移不再是必需的时候,完全切换过来也仅仅是一个勾选框的事情(指取消镜像设置)。

第二部分:将极狐GitLab 和 AWS CodeBuild 集成

对于那些想要使用 AWS CodeBuild 来对极狐GitLab 代码仓库进行构建和测试的用户来讲,下面的分享指南将帮助完成高效 CI 流水线的设置。

前提

  • 一个极狐GitLab 账号
  • AWS 账号
  • AWS CLI(已配置好)

第一步:在 AWS CodeStar 连接中创建极狐GitLab 连接

  1. 登录 AWS 管理控制台,然后导航找到 CodeBuild service。
  2. 在左侧导航栏面板中选择“设置” > “连接”。
  3. 点击“创建连接”按钮。
  4. 选择“GitLab”作为供应商。
  5. 输入连接名称后点击“连接到极狐GitLab”。
  6. 你将被重定向到极狐GitLab 认证页面。
  7. 授予必要的权限。
  8. 一旦成功,连接状态将变为“可用”。

file

第二步:创建 AWS CodeBuild 项目

  1. 在 CodeBuild 仪表盘上点击“创建构建项目”。
  2. 输入项目名称和描述。
  3. 在源设置中,选择“GitLab”作为供应商。
  4. 选择上一步创建好的连接,然后指定极狐GitLab 仓库和分支。

file

注意:从第三步开始,请根据您的特定环境和需求配置设置

第二部分总结

这部分详细介绍了如何将极狐GitLab 仓库和 AWS CodeBuild 进行集成。此项设置会开启一个持续集成流水线,当存储在极狐GitLab 仓库中的代码发生变更时,使用 AWS CodeBuild 就会自动完成变更代码的构建和测试。

第三部分:将极狐GitLab 和 AWS CodeBuild 进行集成

对于那些想要使用 AWS CodePipeline 来完成极狐GitLab 仓库代码的持续交付的用户来说,下面的内容将详细阐述如何实现这一点。现在这一点已经非常容易实现了,因为极狐GitLab 已经成为了 AWS CodeStar 的连接器供应商。

前提

● 一个极狐GitLab 账号
● AWS 账号
● AWS CLI(已配置好)

第一步:在 AWS CodeStar 连接中创建极狐GitLab 连接

  1. 登录 AWS 管理控制台,然后导航找到 CodePipeline 服务。
  2. 在左侧导航栏中选择“设置” > “连接”。
  3. 点击“创建连接”按钮。
  4. 选择“GitLab”作为供应商。
  5. 输入连接名称后点击“连接到极狐GitLab”。
  6. 你将被重定向到极狐GitLab 认证页面。
  7. 授予必要的权限。
  8. 一旦成功,连接状态将变为“可用”。

file

file

第二步:创建 AWS CodePipeline

  1. 在 CodePipeline 仪表盘中点击“创建流水线”。
  2. 输入流水线名称然后点击“下一步”。
  3. 将“GitLab”作为源供应商。
  4. 选择上一步创建好的连接,然后指定极狐GitLab 仓库和分支。
  5. 选择触发方式:你可以根据对仓库中特定分支和文件类型的拉取或推送事件来触发CodePipeline流水线的执行。

file

注意:从第三步开始,请根据您的特定环境和需求配置设置。

第三部分总结

这部分详细介绍了极狐GitLab 仓库和 AWS CodePipeline 的集成。此项设置将开启一个持续交付流水线,当极狐GitLab 仓库中的代码发生变更时,变更会被自动部署到你的 AWS 环境中。

第四部分:迁移到极狐GitLab

极狐GitLab 和 AWS 的集成能够解锁很多丰富的功能,用以简化你的研发工作流,而且能够帮助你解决源代码管理问题。这种集成可以通过多种方式来实现,每一种都有其独特的优势:

  • 使用 AWS 服务中的 AWS CodeStar 连接完成和极狐GitLab 的集成,这种方式能够通过使用外部 Git 仓库(诸如极狐GitLab)和不同 AWS 服务的连接来构建统一的工作流。此项设置支持直接从极狐GitLab 仓库来实现自动化构建、部署和其他必要的执行步骤,从而让研发工作流更加集成和简化。
  • 通过 AWS CodeStar 连接来实现极狐GitLab 和 AWS CodePipeline 的集成,通过允许创建完整的CI/CD流水线,将自动化提升到一个新的水平。这种方式的集成能够让你自动化整个流程——从源代码控制、构建到测试和部署,这些使用 AWS 服务即可,比如 CodeBuild 和 CodeDeploy。这确保了流程的可靠、可扩展以及高效。

file

  1. 使用 AWS CodeStar 连接将极狐GitLab 和 AWS 服务连接起来

AWS CodeStar 连接是一个允许你将外部 Git 仓库(诸如 GitHub 或者 Bitbucket)连接 AWS 服务的服务。你还可以通过 CodeStar 连接来将极狐GitLab 连接到 AWS 服务上。当使用极狐GitLab 时,可能你需要将自定义连接设置为 HTTP Git 服务器。使用这种方式可以将下面的 AWS 服务连接到极狐GitLab:

  • AWS Service Catalog

AWS 服务目录用来帮助组织对 AWS 资源进行标准化和管理。和极狐GitLab 集成能够改善资源管理的透明度并简化变更追溯。特别地,你还可以基于极狐GitLab 代码提交来自动化目录的更新,这又进一步提升了操作效率。

  • AWS CodeBuild

AWS CodeBuild 是一个管理构建的服务,它能够对源代码进行编译、运行测试并且生成可部署的软件包。极狐GitLab 和 CodeBuild的集成能够实现只要极狐GitLab 仓库中的代码有变更,就自动进行整个构建流程。这种构建方便的连续性让协作和版本控制变得更加容易。

  • AWS Glue Notebook Jobs

AWS Glue Notebook Jobs 是一项服务,允许你交互式地开发和运行数据准备和ETL(提取、转换、加载)任务。极狐GitLab 和 Glue Notebook Job 的集成能够对 notebook 和 ETL 脚本实现版本控制,提高团队成员的协作效率,改善数据流程流水线的质量管理。

  • AWS Proton

AWS Proton 是一个能够自动化研发、部署微服务和无服务器应用程序的服务。通过将极狐GitLab 和 AWS Proton 进行集成,你可以对 IaC(基础设施即代码) 进行管理、自动化部署,而且能够确保环境管理的连续性,最终提高研发效率。

因为 AWS CodeStar 连接支持多种服务,因此极狐GitLab 和其他 AWS 服务的集成就变得非常容易。定期检查支持CodeStar连接的新服务是非常有必要的。

  1. 通过 AWS CodeStar 连接(包括 CodeDeploy)将极狐GitLab 和 CodePipeline 连接起来

AWS CodePipeline 是一个持续交付服务,能够自动化软件的发布流程。为了将极狐GitLab 和 CodePipeline 进行连接,你需要使用 AWS CodeStar Connection。此项设置允许你将极狐GitLab 指定为源代码仓库,然后自动化整个 CI/CD 流水线。CodePipeline 支持的主要操作包括:

  • 源代码管理:AWS CodeCommit、GitHub、GitLab、Bitbucket
  • 构建和测试:AWS CodeBuild、Jenkins
  • Deploy:AWS CodeDeploy、Elastic Beanstalk、ECS、S3
  • 批准:手动批准
  • 基础设施管理:AWS CloudFormation
  • 无服务器:AWS Lambda
  • 测试:AWS Device Farm
  • 自定义操作:AWS Step Functions

通过极狐GitLab 和 CodePipeline 的集成,无论何时极狐GitLab 中的代码发生变更,都能自动化触发整个流水线,完成从构建到部署。此外,将此功能和极狐GitLab 的版本控制能力结合起来,能够更容易地追踪部署历史、状态,最终带来灵活、可靠的软件交付。

总结

上面分享的内容提供了关于迁移到AWS并集成GitLab的全面信息。通过上面的四个重要主题,我们涵盖了:

  • 并行迁移到极狐GitLab:如何将托管在 AWS 上的 Git 仓库逐步迁移到极狐GitLab 上,而且能将风险最小化。
  • 和 AWS CodeBuild 集成:设置与极狐GitLab仓库集成的强大CI(持续集成)环境的步骤。
  • 和 AWS CodePipeline 集成:如何使用极狐GitLab 仓库构建高效的持续交付流水线。
  • CodePipeline 和 CodeStar 连接的下游集成:利用极狐GitLab-AWS 连接获取广泛的服务访问,解锁了跨AWS生态系统的一系列集成可能性。

因为每个组织的代码托管和集成实现策略都是独一无二的,本文可能只能作为你使用极狐GitLab + AWS 来构建企业自身所需工作、流程的一个初步指南。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无标题】XSS安全防护:responseBody (输入流可重复读) 配置

接上文:配置XSS过滤器 XXS 安全防护:拦截器+注解实现校验-CSDN博客XSS(跨站脚本)攻击是一种网络安全威胁,允许攻击者注入恶意脚本到看似安全的网站。当用户浏览这些被注入恶意代码的网页时,恶意脚本会在用户的浏览器环境中执行,这可能导致多种安全问题,如窃取敏感数据、…

链表算法题(上)

在之前单链表和双链表两个专题中我们学习了链表相关的概念和性质,同时了解了单链表和双链表各自的特征,那么接下来在本篇中我们就将使用这些链表的知识来解决链表相关的算法题,在本篇中这些算法题能强化我们的算法思想,会对我们之…

HTML5好看的花店商城源码2

文章目录 1.设计来源1.1 主界面1.2 界面效果11.3 界面效果21.4 界面效果31.5 界面效果41.6 界面效果51.7 界面效果61.8 界面效果71.9 界面效果8 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者&#…

postgresql数据库创建表分区和分区分区查询失效问题

postgresql数据库创建表分区和分区失效场景 一、前言二、分区表创建1、范围分区(Range Partitioning)2、列表分区(List Partitioning)3、hash分区(hash Partitioning) 三、表分区查询失效问题 一、前言 在…

AcWing算法基础课-785快速排序-Java题解

大家好,我是何未来,本篇文章给大家讲解《AcWing算法基础课》785 题——快速排序。这篇文章介绍了使用快速排序算法对整数数列进行排序的方法,包括选择基准元素、分区操作和递归排序子数组。通过详细的步骤和示例,解释了快速排序的…

Axure打造科技感数据可视化大屏原型

在数字化浪潮的推动下,数据已成为企业决策不可或缺的核心驱动力。面对海量且复杂的数据集,如何高效解读并转化为洞见,是企业面临的重大挑战。数据可视化,尤其是科技感十足的大屏展示,不仅为企业提供了直观的数据洞察&a…

9,sql 约束

创建表时添加非空约束 create table sys3(name int,age int not null) 建表后修改 alter table sys3 modify name int null 删除 创建表时添加默认值约束 关键字 default 默认值的意思 后面跟着默认的值create table sys_4(列名1 数据类型 default 默认值,列名2 数据类型 no…

网络安全售前入门09安全服务——安全加固服务

目录 1.服务概述 2.流程及工具 2.1服务流程 2.2服务工具 3.服务内容 ​​​​​​​4.服务方式 ​​​​​​​5.风险规避措施 ​​​​​​​6.服务输出 1.服务概述 安全加固服务是参照风险评估、等保测评、安全检查等工作的结果,基于科学的安全思维方式、长期的安全…

Apache CloudStack Official Document 翻译节选(十三)

快速部署一朵 Apache CloudStack 云 (二) 部署一朵pache CloudStack 云 安装Apache CloudStack的云内管理服务组件 本部分我们将安装Apache CloudStack的云内管理服务组件及周边工具。 关于数据库的安装与配置: 我们会安装和配置MySQL并配…

【机器学习入门】一文读懂非线性支持向量机SVM

前面已经分别介绍了基于硬间隔最大化的线性可分支持向量机、基于软间隔最大化的线性支持向量机,这次来总结下使用核函数来解决非线性可分问题的非线性支持向量机。 【机器学习入门】一文读懂线性可分支持向量机【机器学习入门】一文读懂线性支持向量机SVM 一 非线…

GCViT实战:使用GCViT实现图像分类任务(一)

摘要 GC ViT(全局上下文视觉转换器)是一种创新的深度学习架构,旨在提升计算机视觉任务中的参数和计算效率。它通过将全局上下文自注意力模块与标准的局部自注意力相结合,有效地建模长程和短程空间交互,同时避免了传统…

IJCAI-信也科技杯全球AI大赛-华东师范大学亚军队伍分享

作者:彭欣怡(找不到工作版) 华东师范大学; 马千里(搬砖版) 虾皮; 指导:闫怡搏(科研版) 华东师范大学 比赛链接:https://ai.ppdai.com/mirror/goToMirrorDetailSix?mirrorId34 前言 这是我们首次参加语音领域的比赛,最初只是抱着…

深度学习之 OpenCV 图像边缘检测算法解析及代码演示

引言 在计算机视觉领域,边缘检测是一种重要的图像预处理技术,用于识别图像中对象的边界。边缘检测有助于提取图像的关键特征,这对于后续的图像分析(如物体识别、运动检测等)至关重要。OpenCV 是一个强大的计算机视觉库…

Zabbix 企业级高级应用(Zabbix Enterprise Advanced Application)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

备忘录1【java环境变量手动更改】

B站视屏链接:https://www.bilibili.com/video/BV1cV8BeCESA?vd_source3e4562475feb55327a8adde111050d4e 1.电脑设置 2.系统-------系统信息 3.高级系统设置 4.环境变量 5.系统变量中,更改之前创建好的JAVA_HOME 版本可以将1.8改成本机安装的其他版本…

Java进阶13讲__第九讲

Stream流 1. 案例初体验 package cn.hdc.oop9.stream.using;import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream;public class t1 {public static void main(String[] args) {LinkedList<String&g…

认知杂谈30

今天分享 有人说的一段争议性的话 I I 《豁然开朗&#xff1a;男性成长的关键转折》 在男人的人生旅程当中啊&#xff0c;最金贵的可不是那些让人眼馋的钱财啥的&#xff0c;也不是啥惊天动地的事儿&#xff0c;更不是偶尔碰到的贵人帮忙。真正无价的宝贝呢&#xff0c;是在…

培训第四十一天(docker-compose一键部署项目,haproxy容器代理多个web或java容器)

# 创建脚本&#xff0c;可以在java环境中运行任何的jar包或者war包#!/bin/bash/usr/local/jdk/bin/java -jar /java/src/*.?ar 一、思路分析&#xff1a; &#xff08;1&#xff09;nginx 1、下载镜像&#xff0c;将本地的dist项目的目录挂载在容器的/usr/share/nginx/html…

论文解读:Visual Prompt Tuning

Comment: ECCV2022 摘要 当前调整预训练模型的方法需要更新backbone的全部参数&#xff0c;即完全微调。本文提出了一种高效的方法VPT&#xff0c;成为视觉中大规模transformer模型完全微调的替代方案。从微调大规模语言模型中吸取经验&#xff0c;VPT仅在输入空间中引入少数…

【C语言】通讯录的实现(详解)

通讯录的实现 主要用到的知识&#xff1a; 1.结构体相关知识 2.枚举 3.多文件 在学习完结构体和枚举后就可以利用学过的知识去实现一个通讯录了 1.通讯录要求 用C语言所学知识实现下面这样一个通讯录 1.通讯录100个联系人 2.姓名 性别 年龄 电话 地址 3.添加联系人 4.删除指…