博卡软件于2004年在上海成立,是一家专注于为本地美丽生活相关行业提供软件服务的SaaS软件提供商。主要产品是门店运营所需要的,管理软件,智能硬件以及营销小程序等。
作为一个不足30人的研发团队,并且没有真正专职的运维人员,面对快速增长的客户以及越来越多的需求,拥有20多个微服务,几十个前端应用(web,小程序,app等),传统的开发和部署的方式已经逐渐成为了我们研发团队的瓶颈,为了能高效的完成交付,我们开始了DevOps转型之路。
因为我们的SaaS应用完全部署在阿里云上,通过一个偶然的机会接触到云效后,我们开始了使用云效+阿里云ACK替代我们现有的Gitlab+Jenkins+ECS的CI/CD来实现DevOps。、
客户痛点
因为我们服务的客户都是小商户为主,通常有需求或者遇到问题都不愿意等待一周或者几天时间,大多数时候都需要我们快速解决,并且因为我们客户量比较大,使得我们必须快速反应,做到持续交付,交付周期可能是一天一次,甚至一天几次。
方案优势
源码管理
云效的代码管理Codeup的内置评审功能,能高效的完成Code Review。内置的代码检测开箱即用,促进编码规范执行。
流水线
通过Flow流水线可以很简单的实现持续交付。Flow流水线比起Jenkins来最大的好处就是简单易用。
容器化部署
部署的最佳选择,自然是Flow流水线的最佳搭档ACK。使用ACK后,我们的最大收益,主要是以下3点。
- 节约成本。
- 故障自动重启。
- 自动扩容。
回滚
通过Flow流水线可以回滚基本上所有部署方式。选择阿里云ACK这种Flow的最佳搭档,则可以实现快速零停机回滚任意版本,并且因为ACK是基于Kubernetes升级,回滚的版本不会出现环境变化等各种其他因素造成的意外导致回滚失败。
客户反馈
SaaS公司要在竞争中拔得头筹,就需要快速影响客户需求,同时保持较高的稳定性。同时要快速占领市场,就需要不断推出新产品不断创新,这个时候开发的交付效率以及低成本试错就尤为重要。经过我们的不断尝试,最终找到了一套适合我们公司的高效流程和工具,那就是云效配合ACK来实现DevOps。
在DevOps上我们也是摸着石头过河,上面分享的方法只是我们团队当下寻找到的最佳方案,当然其中也有很多不足,我们也在不断的摸索和改进,这篇文章分享我们的DevOps转型过程就是希望可以跟大家多交流,共同探讨和摸索适合自己团队的模式。
解更多云效
阿里云云效:https://www.aliyun.com/product/yunxiao