最近,有多位粉丝和同学反应,想让我讲一讲如何把测试平台部署到服务器,并且实现自动持续部署和集成测试等。
我一开始回复说,这种没什么技术含量,随便百度个教程都可以实现的东西,而且实现的方法和工具有很多很多,为什么非要我来讲呢?大家知道我个人一直更新原创,极少去搬运什么工具教程。
but人家说:因为我讲的一定明白,我经常会是从一个小白的模糊处境出发,然后用土话来讲明白,而且大家一直很信任我。
我听后很感动,于是问他想用哪个工具实现,他说百度了一个:gitlab-runner的插件,但是他看了很久教程,也看不太懂,并且总是各种报错。于是,我自己趟了一遍,的确发现很多教程的内容并不适用于实际,并且删减了很多细节大坑。
本来,这个东西,我是放在了收费培训内容里,带着大家手把手的视频演示实现。但是我觉得应该还有很多人需要这个简单的教程,所以我用公众号文章的方式再次记录一遍。
但我写的途中发现了一个问题:就是网上从来不缺实际的代码/命令 教程!缺的是让你如何理解这个过程,不理解,哪怕你照葫芦画瓢下来,也无法做到举一反三,也无法明白报错,甚至都不明白为什么要执行某句命令。
如果一个人,一旦明白了,某件事的流程和原理,那么具体的细节命令,他随便百度也秒懂了,并且会更加游刃有余,举一反三,吸收的更好。
所以我在此写下这个简单的ci/cd教程的流程原理,而非具体的实现代码,相信你读完后,会醍醐灌顶,恍然大悟,原来那些高端的操作,其实都这么接地气啊~ 。
所谓的持续自动,并不单单只对咱自己的平台实现,对公司其他的平台产品一样可以进行自动的跑自动化等脚本,而全程,并没有用到额外的第三方平台,如jenkins,所以稳定性和效率都大幅提高。
今天是第一节,让我们跟随着一个个小白疑问,来探究这个问题。
可能你第一次做测开,第一次写了一个django平台,但是在写的过程中,总隐隐觉得有个流程自己很苦恼,那就是平台完成后,要怎么部署到服务器上?
我们先想一个问题:为什么要部署到服务器上?部署到自己电脑上不行么?
答:行,当然行,前提是你自己的电脑不打算用了,以后就常开着跑平台,然后服务于全体同事,你别上去瞎操作,容易给搞坏了。
所以,部署到公司提供的服务器上是个很好的选择,便宜,简单,更高效。
继续想问题:服务器选什么系统?
答:最好是linux,开源免费等这些官方回答我不想多说了,就直接告诉你,windows不适合当服务器,你有mac电脑也可以当服务器,linux系统的电脑则更便宜,更耐操。全公司都用,你就老实遵守吧。服务器也别太神话,就是一个正常的电脑而已,只是人为被当做服务功能而已。
继续带着问题:什么叫部署?
答:部署这个词,简单来说,就是让你的平台能在服务器上跑起来,仅此而已。但是呢?你一定总听到一些很高大上的技术,比如什么分布式,什么负载均衡,什么zookeeper,什么nginx,什么docker等等。所以很多人会被吓得直接打退堂鼓,但是我可以明确的说,这些额外的技术都属于优化,你可以不用,如果公司人不多,你又不是很想炫耀技术,那你完全可以直接把测试平台像在你本地电脑运行一样,把代码复制到服务器上,直接启动即可。只有走出了这一步,你才可能有去学习之后部署和运维的技术需求。所以,别上火,部署很简单,最关键的第一步,就是想办法把代码复制到服务器上
继续想问题:那怎么把代码复制到服务器上呢?
答:你要是不想学git,就直接手动复制,比如用scp命令,远程传送到服务器上。当然,这样也忒low了。所以我们用的可以说,全是git。那么我们接下来的事就是选择一个git工具了。
问题:选什么git工具?
很简单,gitlab,如果公司有具体要求和内部的gitlab,那你就用。如果没有,那你就自己去注册一个gitlab账户。有的同学可能听说过github,说为什么不用这个呢? 这里明确说一下,github是面向全世界开源的工具,你是想你的测试平台和你公司的敏感数据被全世界的黑客们知道么?然后你被公司开除甚至坐牢?当然,有人也一定会说,github也可以创建私有的不公开的代码仓库,那么...看下图:
据说hub现在可以免费创建私有,但是 所以,老老实实用gitlab吧,免费,高效,还可以设置仓库访问权限。