周末的时候,收到好几个云服务器临近过期的通知短信,准备续个费,居然都要大几千!因为这几个都是以前低价抢购的,掐指一算,如果都续费的话,要蚕食好多利润!作为一名自己养活自己的独立开发者,节省成本是必备技能,不然哪来可观的利润?于是,我就开始琢磨着做一些架构上的调整,看看能否在这次服务器资源减少的情况下,继续低成本的运行目前还在跑的业务。

因为业务产品是最重要的,所以这块基本不能动。那么能动的就是一些周边设施了,比如:做任务管理、文档管理或持续交付的工具。在调研了诸多SaaS产品和云服务之后,最后选择了阿里云的云效全家桶。为什么最终选择了云效全家桶呢?核心原因还是“全家桶”三个字,基本上我想要的研发管理功能都能否覆盖了。那么这个全家桶具体能做什么呢?下面给大家分享下我改造前和改造后的平台结构,给大家一个直观的认识。

老架构:散装集成

老架构的建立基本上借鉴了以前在公司里搭建基础平台时候所用的常用开源产品和商业产品,按功能来分,主要有以下这几个:

  • 代码仓库:GitLab
  • 持续集成:Jenkins
  • 任务管理:JIRA
  • 文档管理:Confluence

Gitlab和Jenkins都是开源产品,免费且应用广泛,是大部分公司的散装方案中会囊括的。JIRA和Confluence虽然是商业产品,但初级版本的认证只需要9.9美元,对个人和10人以下小团队还是非常友好的,由于JIRA强大的流程配置功能,可以将其作为整个研发管理平台的门户。

补充:有很多开发者对于JIRA只认为是一个任务管理的工具,不太了解JIRA的工作流功能,这里简单说明一下。JIRA之所以强大,有很大一点就是得益于其强大的工作流配置功能。由于GitLab、Jenkins等这些工具都有WebHook或JIRA市场下的插件支持,我们就可以很方便的把这些工具的使用步骤串联起来。这样我们在软件研发过程中的业务需求、任务拆解、代码版本、构建部署等一体化过程都可以JIRA这样一个单一入口中来完成。

所用资源:由于之前抢购的各个服务器配置都不高,大多是1C2G、2C4G的。为了稳定运行就都做了分开部署,一共消耗了4台ECS。

方案优点:

  • 学习成本低:这些产品都是互联网公司中非常常见的,大部分开发都不会太陌生。同时这些软件的生态都非常健全,都有很丰富的插件市场来适应用户的各种需求。
  • 产品成本低:这里用到的产品不是免费就是很便宜,所以成本的基础成本不高

方案缺点:

  • 部署成本高:因为需要安装的软件产品多,部署成本较高

新架构:云效全家桶

在决定使用云效全家桶之后,接下来要做的就是对老架构中用到的各个产品找到替代的解决方案。下面跟着我的调研使用步骤,来看看这一个个产品的对应关系吧!

代码仓库

代码仓库在云效的解决方案中是一个名为云效Codeup的产品,产品地址:https://codeup.aliyun.com/ 。如果你跟我一样,是要做仓库迁移的话,非常简单。如下图所示,Codeup为各种常用平台都提供了专用的导入方式,对Git管理不是特别熟悉的小伙伴也可以根据提示轻松的完成代码仓库的迁移。

在点击“导入代码库”之后,我们可以看到下图界面,基本上常用的一些Git管理平台都已经支持,选择你要迁移的源平台,然后根据官网文档,找到对应平台需要获取的认证方式做好配置即可。

在完成认证信息配置好之后,Codeup就会从对应的平台获取所有项目仓库,接下来只需要逐个选择你要导入的仓库点击“导入”按钮,就能轻松完成代码的迁移。

这块比较简单,基本所有的Git管理平台都可以支持类似的迁移操作。也不算特别的亮点吧,光从代码管理上来说,主要贡献就是为这次的改造计划节省了一台ECS。

持续集成

完成了代码迁移之后,接下来开整持续集成部分,对应的产品是云效Flow,产品地址是:https://flow.aliyun.com/。

在云效Flow中创建CI/CD的流水线非常简单,因为它提供了各个主流开发语言的多种持续集成案例的配置模版。

这里我尝试了配置一个Spring Boot后端应用部署到ECS上,只需要选择上图中的第一个推荐模版。就会出现如下图的流水线配置界面,点击每个步骤都可以进行细节配置

点击每个步骤都可以进行细节配置,比如:如何用maven命令构建,如何上传制品

在部署操作上,因为与阿里云的结合,可以很方便的关联到账号下的资源来选择部署,所以你就不用自己维护服务器清单了,特别方便!

那么这个流水线功能是否能满足云原生应用一次构建多处部署的特性呢?下面我也尝试做了一下,大致流程就是:在test环境,做构建、上传制品、部署;在pre环境,做选择制品、部署;在pro环境,做选址执行、部署。模拟了一下这种比较常见的CI/CD管理流程。

如上图所示,是可以满足的。这也已经满足了我这边的持续集成要求。不过这里在流水线串联,想要实现选择制品这一步上,支持的用户体验还不是特别好,花了我一些配置和咨询的时间才完成。据悉这部分体验优化马上在9月15日版本也会优化!迭代很快,非常给力!

这里值得一提的是,在云效Flow中所提供的各种操作模版是非常适应于我们国内用户的,比如:可以看看我在test环境的流程细节,这里增加了代码扫描,里面就涵盖了阿里巴巴代码规约的检查报告等。

而对于通知提醒也是非常符合国内开发团队的管理特点,提供了钉钉、企业微信、飞书这些国内才常用的软件支持。

好了,通过云效Flow,又帮我节省了一台Jenkins的ECS。

管理门户

在讲老架构的时候,我提到了使用JIRA的重要原因是要将其作为整个研发管理的门户,因为他可以整合其他所有周边设施。比如:任务的管理、持续集成的触发等等。那么在云效全家桶中,是否有扮演这样角色的产品呢?作为一站式的解决方案,必须得安排上,对应的产品就是云效DevOps,产品地址:https://devops.aliyun.com/

到这里可能你要问了,任务管理和文档管理这两个不替换了吗?必须替换!只是,因为作为门户的云效DevOps其实就涵盖了这两块内容。所以,接下来就一起看看云效DevOps的强大功能吧!

这款产品的上手非常快,因为它提供了一些常用模版。我这边就直接给予DevOps研发模版来创建。

完成创建后,不难发现菜单中的需求、迭代、任务、缺陷、测试计划、版本管理不就是JIRA的替代品么?而知识库不就是Confluence的替代品嘛!

这里还很贴心的提供了Excel导入的功能,所以我只需要从JIRA里导出Issue,然后在这里导入,就可以继续做之前的任务管理啦!

同时,作为管理门户,对于之前介绍的云效Codeup、云效Flow自然也可以联系起来。只需要通过点击菜单中的代码、流水线(刚创建的时候,需要点击关联选择同账号下配置的代码仓库和流水线),就能进行查看和实现日常操作!

到这里,云效DevOps基本就完成在散装方案中JIRA和Confluence的角色,妥妥的继续释放出两台ECS!

总结

最后,盘点下这次从自己做的散装方案到使用云效全家桶之后,我认为比较大的几个收益点:

  1. 成本降低了:节约了4台ECS。对于我们这种个人开发或小团队来说,云效基本就是免费的,白嫖能不爽么?
  2. 运维容易了:跟阿里云的高度整合,对于资源的维护以及关联操作更加方便!

对于云效DevOps这个产品,从我的场景来说非常好用,核心原因是已经够用。但如果要做非常复杂的管理可能还有一些困难,比如:在目前版本中,我并没有找到类似JIRA那样强大的工作流支持,这样的话如果团队有一些复杂流程管理,例如多人参与的审核流程,还有与其他系统的联动,还没有比较好的支持(不过,在与云效的小伙伴咨询这类功能的时候,得知这类功能已经在内测,那么具体功能支持如何,等后面公测了我们一起拭目以待吧)。

就目前整个云效全家桶的功能来说,我觉得最主要的适用群体还是我这种个人开发或者中小团队!如果你此时正在为搭建这类管理平台做选型,同时跟我一样,预算和人力都捉襟见肘,那么不妨试试云效这个产品!点击这里直达云效全家桶,一起白嫖一起爽!尤其服务器资源在阿里云的小伙伴们,真得不能错过!

如果你还没有实际可以操作的项目来体验云效DevOps,但也想学习和了解一下这个研发管理产品。那么也可以通过参与下面这个“1分钟代码自动捉虫”活动,来体验一把。

9月6-10日,云效新用户完成体验,还可抽Cherry机械键盘、阿里云定制GIt命令鼠标垫、积木星球等。1000份礼品,100%中奖,先到先得!

欢迎关注我的公众号:程序猿DD,分享外面看不到的干货与思考!

再见了,我的散装研发管理平台;再见了,4台ECS!的更多相关文章

  1. 研发管理平台DevOps使用流程

    研发管理平台DevOps使用流程:一.注册开发者账号二.登录平台三.点击:我的项目-内部项目三.点击"发布内部项目",创建项目五.进入项目六.研发管理平台研发管理平台的功能包括:可 ...

  2. Oracle PLM,协同研发的产品生命周期管理平台

    官网:Oracle PLM - 方正璞华 适用企业:电子高科技.机械制造.医疗器械.化工行业等大型企业和中小型企业 咨询热线:4006-160-730 申请试用.预约演示.产品询价 邮箱:jiangc ...

  3. RTC — 软件协作开发管理平台

    IBM Rational Team Concert (简称RTC )是构建在IBM Rational面向软件交付技术的下一代协作平台Jazz平台上的一个商用产品.一个协作式的软件开发环境,它包含了集成 ...

  4. Worktile完成新一轮融资,将发力研发管理赛道

    Worktile 宣布完成B+轮融资.本轮融资由亿联凯泰基金领投,老股东斯道资本.宽带资本跟投.该轮融资将用于公司产品技术研发及市场拓展. 作为企业服务行业的佼佼者,Worktile 始终以打造世界级 ...

  5. 开发haproxy管理平台

    1.说明:该脚本仅适用于Linux操作系统2.使用方法: 在该脚本同级目录下要创建一个名字叫做 haproxy 的文件 haproxy 文件内容如下 global log 127.0.0.1 loca ...

  6. Atitit.研发管理--提升效率--软件开发方法DSM总结o99

    Atitit.研发管理--提升效率--软件开发方法DSM总结o99 1. 什么是DSM? 1 2. DSM使用的语言DSL 2 3. 模型的优点 2 4. DSM 跟与MDA区别 2 5. MDA的实 ...

  7. VirboxLM许可管理平台,一站式软件保护解决方案

    安全,易用,灵活 轻松解决开发者软件版权保护难题 Virbox LM为企业提供安全易用的软件保护管理平台,实现高安全强度的软件防护,防止盗版及逆向工程.实现便捷.安全的软件授权,包括创建灵活的许可模式 ...

  8. [持续交付实践] 研发协作平台:DevOps背景下的组织结构

    前言 今年以来做的事情越来越杂,负责的技术方向越来越广,精力越来越分散(创业公司的典型特点),编码的时间越来越少,有时候也会觉得很疲惫没办法专注一个事情. 除了技术方向上的实践,组织上如何组建一个最优 ...

  9. 基于SpringBoot+SSM实现的Dota2资料库智能管理平台

    Dota2资料库智能管理平台的设计与实现 摘    要 当今社会,游戏产业蓬勃发展,如PC端的绝地求生.坦克世界.英雄联盟,再到移动端的王者荣耀.荒野行动的火爆.都离不开科学的游戏管理系统,游戏管理系 ...

随机推荐

  1. Sunset靶机

    仅供个人娱乐 靶机信息 https://www.vulnhub.com/entry/sunset-sunrise,406/ 一.主机探测 二.信息收集 nmap -sS -sV -T5 -A -p- ...

  2. Hadoop 3.1.1 - Yarn - 使用 FPGA

    在 Yarn 上使用 FPGA 前提 YARN 目前只支持通过 IntelFpgaOpenclPlugin 发布的 FPGA 资源 YARN NodeManager 所在的机器上必须预先安装供应商的驱 ...

  3. 缩减Azure上Linux虚拟机系统盘容量

    [话在前头] 这么些年微软 Azure 创建虚拟机一直不能修改系统盘大小,但很多时候实际又用不了这么大的操作系统磁盘.微软自己甚至还针对 Windows 服务器镜像推出一个 smalldisk 的镜像 ...

  4. 一个故事看懂HTTPS

    我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习. 为了不让别人看到浏览记录,主人选择了"无痕模式". 但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什 ...

  5. 实现 pow 函数

    1 ////实现pow函数 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 double power(double,int) ; ...

  6. jmeter正则表达式介绍

    分三个层次介绍: 1. jmeter正则表达式有什么作用? 2. 正则表达式在哪? 3. 正则表达式怎么用? 1. jmeter正则表达式有什么作用? 答:提取请求中返回的数据, 然后获取的数据放入其 ...

  7. Spring Cloud Alibaba - Spring Cloud Stream 整合 RocketMQ

    Spring Cloud Stream 简介 在微服务的开发过程中,可能会经常用到消息中间件,通过消息中间件在服务与服务之间传递消息,不管你使用的是哪款消息中间件,比如RabbitMQ.Kafka和R ...

  8. SpringBoot开发十六-帖子详情

    需求介绍 实现帖子详情,在帖子标题上增加访问详情页面的链接. 代码实现 开发流程: 首先在数据访问层新增一个方法 实现查看帖子的方法 业务层同理增加查询方法 最后在表现层处理查询请求 数据访问层增加根 ...

  9. 【原创】利用“进程注入”实现无文件不死webshell

    引子 上周末,一个好兄弟找我说一个很重要的目标shell丢了,这个shell之前是通过一个S2代码执行的漏洞拿到的,现在漏洞还在,不过web目录全部不可写,问我有没有办法搞个webshell继续做内网 ...

  10. msfvenom简介

    写此文是因为网上资料杂乱,不方便查阅,辣眼睛 测试免杀的时候刚好用到这个功能,顺便写一下(0202年靠msfvenom生成的纯原生payload可以宣告死亡了,如果有查不出来的杀软可以退群了,这也叫杀 ...