专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
程序猿  ·  已婚程序员 ·  2 天前  
OSC开源社区  ·  微软Visual ... ·  4 天前  
码农翻身  ·  漫画 | 为什么程序员总是无法升职加薪? ·  5 天前  
51好读  ›  专栏  ›  OSC开源社区

穷人也能拥抱“持续集成”与“持续交付”

OSC开源社区  · 公众号  · 程序员  · 2017-07-24 08:44

正文

anbnb babba

点击图片报名参加广州&珠海源创会


首先说一说为什么说穷人,笔者自己买了一台阿里云的ECS服务器,最开始是一台便宜的单核1G的服务器(其实前面还有更苦的,一把辛酸泪就不说了),苦了它了,里面跑了一堆服务,诸如Tomcat、Nginx、MySQL、Redis、RabbitMQ、JVM等等,发现本来就很吃力,后来又想搞个持续集成部署个Jenkins,结果搞挂了几次服务器,每次内存飙到95%(要知道Gitlab要求机器最好为4G),只能重启服务器了。又没钱升级配置,只能看看有什么服务比较好。


基本概念


什么是持续交付与持续集成?

持续交付所描述的软件开发,是从原始需求识别到 最终产品部署到生产环境这个过程中,需求以小批量形式在团队的各个角色间顺 畅流动,能够以较短地周期完成需求的小粒度频繁交付。频繁的交付周期带来了 更迅速的对软件的反馈,并且在这个过程中,需求分析、产品的用户体验和交互 设计、开发、测试、运维等角色密切协作,相比于传统的瀑布式软件团队,更少 浪费。

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。


基本构建


  • 版本控制:可以简单的理解为代码管理(SCM),如常见的GitHub、GitOSC、GitLab等。

  • 持续集成CI:各种CI工具,如Jenkins、gitlab-ci等

  • 自动化测试

  • 构建工具及构建脚本

  • 部署上线


穷人的持续集成


今天的主角就是阿里云的CRP和OSCGit,先说说开源中国的git服务,它是完全免费的,允许开发者使用私有库托管代码,不是GitHub 7刀每月。另一个就是阿里云的CRP,免费的在线编译打包工具,当然CRP目前是公测,公测了好久了,说不定什么时候就收费了,OSCHINA红薯说他们马上会搞个免费的了。

CRP

给你私有、安全的代码托管服务。集合编译、测试、发布等插件。支持所有Git命令,兼容现有Git工具。私有Git仓库,存储任何类型的源代码及文件。在线浏览和管理代码,提升研发效率。

如何使用?

1.新建工作流

2.选择工作量模板

3.配置工作流

4.根据提示创建代码仓库

笔者这里使用的是OSCGit托管代码的,但是CRP只能从阿里code中拉取代码,所以难题就是怎么打通阿里code和OSCGit,让提交到OSCGit的代码怎么同步到阿里code,自建Git服务器可以使用GitHooks,但是OSCGit,以及GitHub只提供了Webhooks,后面我们在来说怎么使用WebHook同步代码。

5.小的注意点

  1. crp中‘编译/测试’环节,可以去掉mvn test以节约时间

  2. 物理输出路径必须填写,否则可能无法部署,可以直接填 target/

6.部署配置

在配置部署前需要配置目标机器,配置好才会出现如图所示的配置。

7.配置部署组

添加机器,请选择直接输入机器列表,这样方便点,注意需要支持公网SSH。

剩下比较简单,就不再赘述了。


如何同步OSCGit代码到阿里code


使用OSCGit提供的WebHooks,如图 

提供一个post接口,将接收osc git server 推送的数据

在接口所在机器上创建仓库镜像

clone代码

关于--mirror参数,请查看文章最尾部链接

使用Nodejs提供webhooks所需接口

这里使用express开发,比较简便,关于express入门请查看我的另一篇博客https://dev-heaven.com/2017/01/06/NodeEE%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/

参考

  1. git-mirror http://blog.csdn.net/agul_/article/details/7843678

  2. https://help.aliyun.com/document_detail/30513.html?spm=5176.doc30516.6.543.cigGFK


更多干货请前往公众号菜单栏“读我”->“干货分享”查看。




推荐阅读

赶超 Java 和 PHP,Python 跃升为编程语言第一名

Vim 爱好者看过来,12 个实用的 Vim 使用技巧

Spring 思维导图,让 Spring 不再难懂(mvc篇)

2017 开发者生态报告:Java 最火,Go 最有前途

点击“阅读原文”查看更多精彩内容