如何从 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 来构建企业自身所需工作、流程的一个初步指南。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年六月英语四级真题及解析PDF共9页

2024年六月英语四级真题及解析PDF共9页,真题就是最好的复习资料,希望对大家有所帮助。

Python爬虫(一文通)

Python爬虫(基本篇) 一:静态页面爬取 Requests库的使用 1)基本概念安装基本代码格式 应用领域:适合处理**静态页面数据和简单的 HTTP 请求响应**。 Requests库的讲解 含义:requests 库是 Python 中一个…

基于百度AIStudio飞桨paddleRS-develop版道路模型开发训练

基于百度AIStudio飞桨paddleRS-develop版道路模型开发训练 参考地址:https://aistudio.baidu.com/projectdetail/8271882 基于python35paddle120env环境 预测可视化结果: (一)安装环境: 先上传本地下载的源代码Pad…

如何在IDEA的一个工程中创建多个项目?

在IDEA中,可以通过Module来创建新的工程。

​如何通过Kimi强化论文写作中的数据分析?

在学术研究领域,数据分析是验证假设、发现新知识和撰写高质量论文的关键环节。Kimi,作为一款先进的人工智能助手,能够在整个论文写作过程中提供支持,从文献综述到数据分析,再到最终的论文修订。本文将详细介绍如何将Ki…

torch.backends.cudnn.benchmark和torch.use_deterministic_algorithms总结学习记录

经常使用PyTorch框架的应该对于torch.backends.cudnn.benchmark和torch.use_deterministic_algorithms这两个语句并不陌生,在以往开发项目的时候可能专门化花时间去了解过,也可能只是浅尝辄止简单有关注过,正好今天再次遇到了就想着总结梳理一…

Redis安装步骤——离线安装与在线安装详解

Linux环境下Redis的离线安装与在线安装详细步骤 环境信息一、离线安装1、安装环境2、下载redis安装包3、上传到服务器并解压4、编译redis5、安装redis6、配置redis(基础配置)7、启动redis8、本机访问redis9、远程访问redis 二、在线安装1、更新yum源2、安…

【LeetCode】01.两数之和

题目要求 做题链接:1.两数之和 解题思路 我们这道题是在nums数组中找到两个两个数使得他们的和为target,最简单的方法就是暴力枚举一遍即可,时间复杂度为O(N),空间复杂度为O(1)。…

域内安全:委派攻击

目录 域委派 非約束性委派攻击: 主动访问: 被动访问(利用打印机漏洞) 约束性委派攻击: 域委派 域委派是指将域内用户的权限委派给服务账户,使得服务账号能够以用户的权限在域内展开活动。 委派是域中…

P4560 [IOI2014] Wall 砖墙

*原题链接* 做法:线段树 一道比较基础的线段树练手题,区间赋值,在修改时加些判断剪枝。 对于add操作,如果此时区间里的最小值都大于等于h的话,就没必要操作,如果最大值都小于h的话,就直接区间…

坐牢第三十五天(c++)

一.作业 1.使用模版类自定义栈 代码&#xff1a; #include <iostream> using namespace std; template<typename T> // 封装一个栈 class stcak { private:T *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参…

【全志H616】【开源】 ARM-Linux 智能分拣项目:阿里云、网络编程、图像识别

【全志H616】【开源】 ARM-Linux 智能分拣项目&#xff1a;阿里云、网络编程、图像识 文章目录 【全志H616】【开源】 ARM-Linux 智能分拣项目&#xff1a;阿里云、网络编程、图像识1、实现功能2、软件及所需环境3、逻辑流程图及简述3.1 完整逻辑流程图3.2 硬件接线3.3 功能简述…

部署project_exam_system项目——及容器的编排

&#xff08;一&#xff09;安装docker、编辑daemon.json文件、安装docker-compose编排容器、启动docker 1.环境准备 [rootdocker--1 ~]# rz -Erz waiting to receive.[rootdocker--1 ~]# lsanaconda-ks.cfg docker.sh[rootdocker--1 ~]# source docker.sh [rootdocker--1 ~…

基于Flink的流式计算可视化开发实践之配置->任务生成->任务部署过程

1. 引言 在我们大数据平台(XSailboat)的DataStudio模块中实现了基于Hive的业务流程开发和基于Flink的实时计算管道开发。 DataStudio是用来进行数据开发的&#xff0c;属于开发环境&#xff0c;另外还有任务运维模块&#xff0c;负责离线分析任务和实时计算任务在生产环境的部…

30岁程序员的焦虑:转行还是继续死磕?现在什么方向更有前景?

最适合转入AI大模型的莫过于程序员和在读大学生了吧。 对于程序员来说&#xff0c;码农之路并不是一帆风顺。对于每一个入行IT业的社会青年来说&#xff0c;谁不是抱着想要成为最高峰的技术大咖或者跃进管理岗的小目标&#xff1f; 然而往往更多的人并非互联网吹捧的如此耀眼…

低代码平台:加速企业制造业数字化转型的新引擎

近期&#xff0c;国家发布了中小企业数字化转型试点城市的政策&#xff0c;旨在通过先行先试&#xff0c;探索支持制造业特别是汽车制造行业数字化转型的有效模式。这一政策的出台&#xff0c;为汽车制造企业的数字化转型提供了强有力的政策支持和方向指引&#xff0c;标志着汽…

【论文速读】| SEAS:大语言模型的自进化对抗性安全优化

本次分享论文&#xff1a;SEAS: Self-Evolving Adversarial Safety Optimization for Large Language Models 基本信息 原文作者: Muxi Diao, Rumei Li, Shiyang Liu, Guogang Liao, Jingang Wang, Xunliang Cai, Weiran Xu 作者单位: 北京邮电大学, 美团 关键词: 大语言模…

vue.js项目实战案例详细源码讲解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; 为帮助大家更好地掌握Vue.js项目的开发流程&#xff0c;我将为你讲解一个完整的Vue.js实战案例&#xff0c;并提供详细的源码解析。这个案例将涵盖从项目创建到实现各种功能模块的全过程&#xff0c;适合用于…

基于空间结构光场照明的三维单像素成像

单像素成像是一种新兴的计算成像技术。该技术使用不具备空间分辨能力的单像素探测器来获取目标物体或场景的空间信息。单像素探测器具有高的时间分辨率、光探测效率和探测带宽&#xff0c;因此单像素光学成像技术在散射、弱光等复杂环境下相较于传统面阵成像技术展现了很大优势…

面试题:软件测试缺陷产生的原因有哪些?

软件缺陷产生的原因多种多样&#xff0c;一般可能有以下几种原因&#xff1a; 1.需求表述、理解、编写引起的错误。 2.系统架构设计引起的错误。 3.开发过程缺乏有效的沟通及监督&#xff0c;甚至没有沟通或监督。 4.程序员编程中产生的错误。 5.软件开发工具本身隐藏的问…