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

极狐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.rhkb.cn/news/414711.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gartner首次发布AI代码助手魔力象限,阿里云进入挑战者象限,通义灵码产品能力全面领先

8月29日消息,国际市场研究机构Gartner发布业界首个AI代码助手魔力象限,全球共12家企业入围,阿里云成为唯一进入挑战者象限的中国科技公司。通义灵码在产品功能和市场应用等方面表现优秀,获得权威机构认可。 该报告从技术创新性、产…

webpack--处理资源

在webpack.config.js中进行配置 const path require(path) module.exports {// 入口entry: ./src/main.js,// 输出output: {// 文件的输出路径path: path.resolve(__dirname, dist),// 入口文件打包输出的文件名filename: js/main.js,// 自动清空上次打包结果 原理&#xff…

Vidda电视X Ultra等加入能效补贴,京东天猫可买量大管饱

近日,“能效补贴”成为热门话题。打算给家里更换一台大电视的朋友要留意了,Vidda旗下多款巨屏电视都已支持此次补贴政策,京东和天猫均可下单享受补贴。 据「TMT星球」了解,Vidda是海信旗下的年轻科技潮牌,Vidda电视一…

BugKu练习记录:小山丘的秘密

题目: hill能有什么秘密呢 bugku{PLGTGBQHM} 其中A1,flag全为小写hill解密,a1,所以z0,字母表为zabcdefghijklmnopqrstuvwxy,根据图片上的棋子数得到对应的字母,分别是abczadefz,用工…

驱动开发系列14 - Linux Graphics Wayland 详解

目录 一:概述 二:操作系统如何支持 Wayland 三:显卡驱动如何支持 Wayland 四:Wayland 协议介绍 一:概述 Wayland 是一种通信协议,规定了显示服务器与其客户端之间的通信,以及该协议的 C 语言库实现。使用 Wayland 协议的显示服务器称为 Wayland 合成器,因…

Vue的冷门内置指令:优化与性能提升的利器

在Vue.js的广阔生态中,开发者们常常聚焦于那些耳熟能详的内置指令,如v-for用于循环渲染列表,v-if和v-else-if用于条件渲染等。然而,Vue还提供了一系列较为冷门但功能强大的内置指令,它们在某些特定场景下能够显著提升应…

Element-plus组件库基础组件使用

文章目录 按钮图标输入框表格表单对话框文件上传布局容器ElMessage消息提示MessageBox 消息提示框Pagination分页样式表单校验 记录vue3项目使用element-Plus,开发中常用的一些样式 下面这些组件是写增删改查是经常用到的,学习了这个写增删改查会好很多。…

实战docker第一天——windows安装docker,测试,并解决被墙办法

Docker 是一个开源的容器化平台,它允许开发者将应用程序及其所有依赖项打包在一个名为“容器”的单独环境中,从而确保应用程序在任何环境下都能一致地运行。以下是 Docker 的一些核心概念及其意义: 容器化:Docker 通过将应用程序及…

带头节点单链表和无头节点--简单选择排序

带头节点单链表 void simpleselectsort(LinkList& l)//简单选择排序 { LinkList s;if (l->next NULL || l->next->next NULL)return;LinkList q l->next;//第一个节点for (; q ! NULL; q q->next){int min q->data;s q;for (LinkList pq->next;…

MOS管驱动电路阻值如何选取?以及为什么要有下拉电阻

开通时,电源为高电平,会通过Rg1给MOS的Cgs充电,关断时,Cgs通过Rg2放电.实现慢开快关的过程 如果驱动阻值太大,开关会很慢,会让MOS管的损耗增加,降低了效率,dv/dt,di/dt也…

SpringBoot对接Midjourney Api

提示&#xff1a;SpringBoot对接Midjourney Api 文章目录 目录 文章目录 后端代码 导包 controller层 工具类层 前端代码 申请API 测试结果 后端代码 导包 <!--添加hutool的依赖--><dependency><groupId>cn.hutool</groupId><artifactId&g…

Java设计模式之单例模式详细讲解和案例示范

单例模式&#xff08;Singleton Pattern&#xff09;是Java设计模式中最简单但却非常实用的一种。它确保一个类只有一个实例&#xff0c;并提供一个全局的访问点。本文将通过电商交易系统为例&#xff0c;详细探讨单例模式的使用场景、常见问题及解决方案。 1. 单例模式简介 …

企业产品推广系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;活动资讯管理&#xff0c;产品分类管理&#xff0c;产品信息管理&#xff0c;用户分享管理&#xff0c;留言板管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页…

【Python机器学习】NLP词频背后的含义——奇异值分解

目录 左奇异向量U 奇异值向量S 右奇异向量 SVD矩阵的方向 主题约简 奇异值分解是LSA背后的算法。我们从一个小规模的语料库开始&#xff1a; from nlpia.book.examples.ch04_catdog_lsa_sorted import lsa_models,prettify_tdmbow_svd,tfidf_svdlsa_models() print(prett…

如何消除工人们对TPM管理培训的抵触情绪?

在探讨如何消除工人们对TPM管理培训抵触情绪的问题时&#xff0c;我们首先需要深入理解这种抵触情绪的根源&#xff0c;进而设计出一套既科学又人性化的策略来逐步化解。TPM作为一种旨在通过全员参与&#xff0c;实现设备综合效率最大化的管理模式&#xff0c;其成功实施离不开…

kube-scheduler调度策略之预选策略(三)

一、概述 摘要&#xff1a;本文我们继续分析源码&#xff0c;并聚焦在预选策略的调度过程的执行。 二、正文 说明&#xff1a;基于 kubernetes v1.12.0 源码分析 上文我们说的(g *genericScheduler) Schedule()函数调用了findNodesThatFit()执行预选策略。 2.1 findNodesTha…

新手使用住宅代理有哪些常见误区?

作为新手&#xff0c;在使用住宅代理时往往会陷入一些常见误区&#xff0c;这些误区不仅可能影响到使用效果&#xff0c;甚至可能会带来安全风险。今天将与大家探讨新手在使用住宅代理时可能会遇到的几个关键误区&#xff0c;并提供相应的解决方案。误区一&#xff1a;盲目追求…

Spike-in:微生态16S扩增子绝对定量重磅上线!

16S扩增子测序是一种广泛应用于微生物群落分析的技术&#xff0c;主要用于研究环境样本中微生物的种类、丰度及其生态关系。 然而&#xff0c;传统的16S扩增子测序通常只能提供相对丰度数据&#xff0c;无法准确反映样本中各微生物的绝对数量&#xff0c;导致在一定程度上掩盖…

LACP链路聚合

链路聚合包含两种模式&#xff1a;手动负载均衡模式和LACP&#xff08;Link AggregationControl Protocol&#xff09;模式。 手工负载分担模式&#xff1a;Eth-Trunk的建立、成员接口的加入由手工配置&#xff0c;没有链路聚合控制协议的参与。该模式下所有活动链路都参与数…

如何在 MySQL 中匹配列

在 MySQL 中&#xff0c;匹配列可以通过多种方式实现&#xff0c;具体取决于你要执行的操作类型。常见的列匹配操作包括条件查询、JOIN操作、字符串匹配等。以下是具体解决的几种方式。 1、问题背景 在 MySQL 中&#xff0c;可以使用 “” 运算符来匹配列。例如&#xff1a; …