选型简述
为什么要使用GitLab
GitLab是一个开源的版本管理系统。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。
采用GitLab作为代码管理的基础,是因为GitLab提供了一系列重要的功能:
- 权限管理 && GitLab CI (GitLab自带的持续集成工具)
- 流畅的网路体验
权限管理 && GitLab CI
GitLab提供一系列权限管理的功能,在GitLab中可以对分支和项目进行权限保护,补充了Github的空白。
GitLab CI和主要竞争对手Jekins基本相同。都是通过编写一份描述文件来描述CI有怎样的阶段和环境,然后设置每个阶段需要运行的脚本。
GitLab提供了代码管理到持续集成的一站式服务,所以我感觉GitLab比Jekins会更加好用一些。
流畅的网路体验
由于GitLab是自行架设在自己管理的服务器上的,其push/pull的体验那叫一个爽。
为什么要使用Docker与容器服务
Docker是一种轻量级的虚拟化解决方案,使用Docker作为应用的运行环境是因为:
- 依赖管理 && 环境管理
- 较为成熟的社区
依赖管理 && 环境管理
现在已经普及的虚拟机可能就是为了解决五花八门的环境和依赖问题才发展出来的。
为了彻底的隔离环境为,每一个应用都开启单独的VPS仍然显得有些破费,那么轻量级的Docker就是用来解决这个问题的。
使用Docker之后还带来了一个转变,传统的开发从交付代码变成了交付包括依赖和环境的打包环境。
这样开发人员也会涉及到一些运维的工作,这就是DevOps的雏形。
甚至可以说正是Docker这一技术的出现,让DevOps这一概念如此的流行。
较为成熟的社区
Docker在2017年来看已经不存在什么选型上的技术风险,无数的公司都已经或者将要使用Docker作为自己的运行环境管理工具。
无论是文档还是社区支持,各种语言和社区五花八门的官方Docker镜像都堆积如山,不存在吃螃蟹的问题。
推荐一本对学习Docker不错的书 Docker — 从入门到实践
为什么要使用阿里云容器服务
虽然说作者没有收阿里云一毛钱,而且也踩了阿里云容器服务不少坑(面向工单编程)。
但是阿里云容器服务对持续交付提供了关键的便捷之处:
- 阿里容器仓库服务
- 阿里容器服务
阿里容器仓库服务
阿里云的容器仓库服务不但提供了高速的国内Docker镜像源,还可以让用户开设私有的Docker仓库。
这些私有的Docker仓库可以和GitLab的仓库关联,当代码变更的时候可以触发仓库的服务的自动构建任务,自动构建最新的Docker镜像。
当镜像更新之后,会自动触发下面提到的容器服务更新对应的应用,完成自动部署。
阿里容器服务
阿里云的容器服务是免费的,需要付费的部分是作为底层宿主机的VPS。当你在容器服务中创建了集群之后,就可以喝着咖啡等待他完成宿主机的配置了。
当集群初始化完成之后,使用Docker通用的编排模板即可快速的把上面构建的Docker镜像上线。
熟练之后配置上线一个新的应用时间差不多就是十分钟,老的应用更新可以直接设置为自动更新,也可以点点鼠标手动更新。
容器服务还提供了自动伸缩的配置项,当资源吃紧的时候自动扩容,使用这个工具应该是服务器费用省钱的核心要点。