作为⼀名程序员,相信大家平时都有代码托管的需求。
相信有不少同学或者团队都习惯把自己的代码托管到GitHub平台上。
但是GitHub大家知道,经常在访问速度这方面并不是很快,有时候因为网络问题甚至根本连网站都打不开了,所以导致使用体验并不友好。
经常一觉醒来,居然发现我竟然看不到我自己上传的代码了。。
那在国内,除了GitHub,另外还有一个比较常用的Gitee平台也可以用于托管代码。
Gitee访问速度倒是没问题,但是Gitee的免费版功能有限,在仓库容量、文件大小、团队协作研发管理等这块的高阶功能会有所限制,所以导致使用起来也会颇受限制。
再加上像代码这种重要数据放在别人的平台上总会有一些数据安全方面的担忧。
基于这些种种因素考虑,老规矩,我们还是决定自己动手来搭建一个企业级云端代码仓库。
说干就干,接下来我们就来上手实践!
材料准备
关于代码托管平台,我们这里选择的是可以支持私有化部署的GitLab,相信应该有不少小伙伴或者团队都在使用。
这是一个企业级代码托管平台,功能很全,而且重点是支持个人私有化部署,这一点比较难得。
网上一搜,GitLab的安装方式有很多,可以通过安装包,也可以通过Docker镜像。但无论如何也得各种环境和配置搞一通,总体来说还是太麻烦了。
所以接下来我们将介绍一种更为优雅和快速的搭建方法,需要的素材很简单,那就是一台服务器。
以华为云为例,这里选用的是华为云Flexus X实例,它的快速入口如下(复制到浏览器打开即可):
https://www.huaweicloud.com/product/flexus-x.html
Flexus系列是原华为云耀系列的品牌及产品升级。在这次华为HDC2024的「Flexus 云服务暨柔性计算黑科技发布会」上,华为云发布了一系列Flexus云服务产品,包括大家已经比较熟悉的Flexus L实例(原云耀L实例)、Flexus X实例、Flexus云容器实例、Flexus云数据库RDS。
其中Flexus X实例则是华为云推出的新一代开箱即用、体验跃级的云服务器,基于创新柔性计算技术打造,汇集了很多华为云新推出的黑科技,面向大多数通用工作负载场景,性能出众,极具品价比。
如官网所述:
华为云Flexus X实例有几个主要特性:首先是1.6倍算力,内嵌智能应用调优算法和底层多重调优加速,GeekBench单核及多核跑分可达业界同规格独享型实例1.6倍;其次,能够实现综合降本30%,其首创智能资源预画像,帮助用户在华为云上推荐匹配的资源规格,实现迁移降本;业界首创CPU内存规格柔性定义,支持100+规格组合,匹配业务实际需求;第三,关键应用6倍加速,独有X-Turbo加速技术+大模型智能调度,针对 Nginx、MySQL、Redis 等常见应用做特殊优化,能够发挥更强效力;最后,旗舰级可靠性,拥有与华为云旗舰级云服务器产品相同的单AZ 99.975% 可用性,跨AZ 99.995%可用性,还可搭载多版本主机安全服务。
实不相瞒,每次看到这种性能强价格优的云服务器,都忍不住想来薅一把(手动doge)。
等下演示时我们就能看到,在Flexus X实例上面配置网站、跑数据库、部署应用都非常方便。
所以接下来,我们就来上手演示,看怎么把它用起来。
上手实践
实例化部署平台
首先我们直接访问华为云Flexus X实例的快速入口(复制到浏览器打开即可):
https://www.huaweicloud.com/product/flexus-x.html
可以按需初始化一台服务器实例,用作部署云端代码仓库的线上平台。
配置部分其实大家根据自己需求进行选择即可,这里有两个地方需要注意。
第一个是**【实例规格】**。
这里我选了一台2核4G的服务器。
众所周知,为了简化云资源管理与调度,云厂商通常设计了固定比例的算力规格供用户选择。
而这次我们使用的Flexus X实例则打破了规格固定配比,支持柔性算力随心配,可以做到算力规格量身定制,提供100+种规格组合,能以1U为单位进行调整,以帮助用户选到更契合自己业务的配置。
讲真,这个选规格的过程,还挺魔性的。
另外一个需要注意的地方就是**【镜像】**。
大家可以选择经典的CentOS、Ubuntu等Linux系统。
也可以选择华为云所独有的HCE
操作系统,也即Huawei Cloud EulerOS
,大家如果之前用过CentOS等Linux的话,那在这里也可以无缝切换过来。
除此之外,选择了HCE系统的另外一个好处就是该系统支持应用加速。
Flexus X实例结合HCE系统,可以支持对MySQL、Redis、Nginx等关键应用进行性能加速,从而带来更跃级的使用体验。
实例化Flexus X实例时,只要选中对应的应用加速选项,即可获得开箱即用的最优性能。
然后剩余的其他部分大家按需进行选择和配置即可。
等待实例创建完成以后,接下来我们就可以通过给出的公网IP地址来远程连接上去进行服务器管理。
我们可以通过控制台自带的CloudShell来进行远登录:
也可以通过Secure CRT等SSH工具来进行远程连接管理:
安装宝塔面板
众所周知,宝塔面板是一款使用方便、功能强大的服务器运维管理工具,支持多平台和多系统。
那我们这一次也选用宝塔面板来实现应用的快速部署和管理。
在Flexus X实例上安装宝塔面板非常方便,只需在命令行执行一行代码即可实现:
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
安装完成后,等待出现如下信息即代表安装成功。
其中会给出宝塔面板的登录地址+端口,而下方的username和password则为宝塔面板的登录用户名和密码。
理论上来说,拿到了宝塔面板的登录地址之后,我们就可以在浏览器进行登录访问了,不过在此之前我们还需要完成一项配置,那就是:在Flexus X实例的安全组里放通宝塔面板的端口号。
我们回到Flexus X实例控制台,单击实例名称,选组“安全组”Tab页,然后进行规则配置。
选中“入方向规则”Tab页,点击“添加规则”,然后放通宝塔面板对应的端口号即可。
完成之后,我们再打开浏览器,输入上述宝塔面板的访问地址即可登录宝塔面板进行操作了。
那至此为之,我们就已经成功实现在Flexus X实例安装并登录宝塔面板,接下来我们就可以通过宝塔面板来部署更多应用了。
部署云端代码仓库
有了上一步已经就绪的宝塔面板,接下来我们就可以正式部署我们所需要的GitLab云端代码仓库了。
我们点击宝塔面板左侧的【软件商店】,我们可以直接在搜索栏中搜索“GitLab”来找到对应的应用安装镜像。
然后我们选中GitLab最新社区版进行安装即可。
此时宝塔面板就会帮助我们一键自动安装GitLab,非常方便,稍等片刻,安装过程就会完成。
这时候我们在设置中就可以拿到GitLab代码仓库的云端地址了。
注意:和前步骤一样,我们在正式访问云端代码仓库之前也需要在Flexus X实例的安全组规则中来放通GitLab服务对应的端口。
至此为止,大功告成,一个属于我们自己的云端代码仓库就顺利地在Flexus X实例上部署完成了!
大家也可以使用同样的方式在Flexus X实例上来部署各种其他应用以及软件环境。
接下来,我们来看一看Flexus X实例上云端代码仓库上线后的体验效果。
效果展示
打开浏览器,输入GitLab云端代码仓库的访问地址,就可以打开代码仓库登录界面。
登入后则可以看到如下主界面。
我们可以先在Preference里面做一些设置,包括修改系统语言以及相关页面的主题美化,然后就可以直接使用了。
可以看到,我们可以选择创建一个新的代码项目或者新的群组。
而在创建新代码项目时,既可以选择创建新项目来上传管理代码。
也可以选择直接同步GitHub上的项目代码仓库,非常方便。
可以看到,自建云端代码仓库的一大优势就是数据可控,个人和团队都能使用,对于私有内部项目也可以免费创建和使用。
除此之外,它还支持像持续集成、CI/CD流水线、监控、项目管理、Wiki等一系列团队代码项目所具备的各项功能。
大家可以根据自己的需求来定制使用。
性能提升实测
我们在选用华为云Flexus云服务器X实例时,一个非常重要的点就是它支持关键应用的性能加速。
当我们在选配Flexus云服务器X实例时,可以选择HCE系统(Huawei Cloud EulerOS),Flexus X实例结合HCE,可以支持对MySQL、Redis、Nginx等关键应用进行性能加速,从而带来更跃级的使用体验。
换句话说,配置Flexus X实例时,我们只要选择对应的应用加速,即可获得开箱即用的最优性能。
为了验证该特性,我们这里就以MySQL为例来做一项性能压测对比测试。
当我们在选购Flexus X实例时选择了HCE操作系统,并且勾选了MySQL应用加速。
那登录Flexus X实例后就会看到系统已经默认为我们安装了经过加速和优化后的MySQL 8.0.35版本。
作为实验对比组,这里选用一台同样安装了MySQL 8的其他云平台同样配置(2核4G)的业界U系列独享型实例来作为测试对比机器。
我们选用性能测试平台sysbench来作为MySQL性能压测工具。
首先我们分别在两台服务器上运行如下命令来构造测试表和数据。
sysbench --db-driver=mysql --threads=10 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test --tables=10 --table_size=100000 oltp_read_write --db-ps-mode=disable prepare
然后再分别在两台服务器上来运行如下命令来对各自部署的MySQL应用进行性能压测。
sysbench --db-driver=mysql --time=10 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test --tables=10 --table_size=100000 oltp_read_write --db-ps-mode=disable run
我们对比一下各自机器上MySQL的性能压测结果:
从压测数据对比可以看出,不论是MySQL数据库的读、写、事务等请求数据,还是Latency时延数据,华为云Flexus X实例上的MySQL性能很明显要高于其他同配置的测试对比机器。
当然,这里只是一个简单的压测,不同配置的Flexus X实例在MySQL的加速性能也有一些差异。按照华为HDC2024的「Flexus 云服务暨柔性计算黑科技发布会」上的现场实测展示,Flexus X实例的MySQL 性能最高可达业界同规格独享型实例的6倍,确实很惊艳。
背后的原因非常简单,因为Flexus X实例聚合了华为云项目长期的实战经验,并对关键应用进行了专门的应用调优。
所以这就使得对于同配置机器,华为云Flexus X实例可以承载更多的数据读写业务请求,从而更进一步降低上云成本。
写在最后
这篇文章我们主要是记录和梳理了一种非常方便且优雅的基于Flexus X实例自建云端代码仓库的方式,主打的就是一个方便和好上手。
一路使用下来,华为云Flexus X实例还是非常容易上手的,尤其是柔性算力和应用加速这一块相较于传统的云服务器确实非常有优势。
再加上Flexus X实例的智能动态业务画像功能,在云服务器用量比较多的ERP/OA、SaaS集群部署、Web/App/小程序部署等实际业务场景,按照华为云的数据,搬迁到Flexus X实例上就能有30%的成本节省。
聊了这么多,落实到应用上,还是得自己上手实践一波。
感兴趣的小伙伴可以自己来尝试一波,现在华为云也提供了Flexus云服务的体验官计划,可以免费申请Flexus X实例测试使用,具体快速入口如下(复制到浏览器打开即可):
https://www.huaweicloud.com/product/flexus-x.html
大家有兴趣也可以试一试,相信会打开一个新世界的大门。
注:本文在GitHub开源仓库「编程之路」 https://github.com/rd2coding/Road2Coding 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。