初创公司应该如何做好持续集成和部署?(3)

发表于:2016-11-23来源:裴双才作者:裴双才点击数: 标签:持续集成
三剑客GitLab+Jenkins+Gerrit,Gerrit作为创业公司代码审核的话略显复杂,不足够敏捷;建议使用GitLab的Merge Requests或者Github和Bitbucket中Pull Requests作为代码审核和讨

 

三剑客GitLab+Jenkins+Gerrit,Gerrit作为创业公司代码审核的话略显复杂,不足够敏捷;建议使用GitLab的Merge Requests或者Github和Bitbucket中Pull Requests作为代码审核和讨论的工具,也可以选择Facebook的Phabricator(可同时作为代码托管和评审,非常敏捷,由于Phabricator提供的工具集在windows下使用起来不太友好,后来没有选用,后期会分享Phabricator的使用思路和工作流)

目录结构

 

规范的目录结构不仅有利于开发者理解代码结构,更有利于代码的快速部署,以PHP为例目录结构建议将代码配置文件(数据库,Redis,OSS Key,语言开关,日志级别开关等),日志文件,其他文件缓存等独立于代码库之外存放,前端项目src为源码目录,dist为前端经过压缩合并等最终生成的代码目录(发布时可忽略src);每个项目详细写README.md:项目说明,各个环境对应的访问路径,目录说明,构建压缩方式,Nginx配置等,代码仓库中包含额外的test目录存放测试用例(本着谁开发谁写测试用例);

权限管理规范

 

权限有两类一个是系统权限(包括服务器登陆,数据库/Redis等)另外一个是服务运行时的权限;

针对系统权限层面

 

统一入口,受限访问IP,禁止空密码弱口令,生产环境服务器需要先拨入vpn之后通过跳板机才能连接成功(当然我们使用的是开源当中最好的跳板机Jumpserver),任何人的操作都需要审计;生产数据库及Redis禁止了外网访问,分别使用phpMyAdmin和RedisLive统一访问入口(增加了多主机访问及屏蔽了危险操作如DDL 数据的导入导出等,也需要先拨入vpn才能访问);开发测试环境权限控制现对宽松,DEV Leader和QA Leader同时具有开发和测试环境的服务器及数据库权限,便于测试和Debug;生产环境为了便于开发调试生产代码且不影响线上增加了低配的节点,未在线,但环境,代码及后端均和生产一致;

原文转自:http://www.simlinux.com/archives/1638.html