基于容器技术的持续集成

敏捷开发需要为每一个特性验证提供测试环境,因而特性版本的发布非常频繁,手工的发布显然满足不了该应用场景,使用自动化部署方式则显得更为高效可靠。下面简单描述自动化部署涉及到的相关工具与技术。
1、工具
持续集成环境:jenkins。
源码版本仓库:建议git。
代码编译器:建议maven。
api文档生成器:apidoc。
容器环境:docker
私有镜像仓库:docker registry
容器调度:k8s
http反向代理:nginx
2、流程
通过jendins创建一个作业,设置源码下载路径,下载源码,编译源码,生成api接口文档,创建docker镜像,将镜像push到私有镜像仓库,创建k8s部署(deployment)资源,创建k8s服务(service)资源,通过k8s更新deployment中设定的image为最新的docker镜像。
由于docker容器内的应用是以k8s 的service方式向外暴露服务,从外网访问k8s集群的service需要实现一个路由策略,具体实现上可以通过nginx来解决,通过在nginx上配置k8s节点(node)和service暴露的端口,实现从外网访问k8s集群的服务。
3、核心步骤代码片段

编译源码

mvn install

你可能感兴趣的:(基于容器技术的持续集成)