当前位置: 首页 > 后端技术 > Java

再见了,我的批量研发管理平台;再见,4ECS!

时间:2023-04-01 22:12:57 Java

周末收到好几条短信通知说云服务器快到期了,本来打算续费的,可是好几千啊!因为这些都是之前低价抢购的,如果全部算上的话,再续订的话,会吃掉很多利润的!作为一个养活自己的独立开发者,节约成本是必备的技能,不然怎么会有可观的利润呢?于是,我开始考虑做一些架构上的调整,看看能不能在服务器资源减少的情况下,继续以低成本运行还在运行的业务。因为业务产品是最重要的,这部分基本不能动。然后是一些活跃的外围设施,例如用于任务管理、文档管理或持续交付的工具。调研了很多SaaS产品和云服务,最终选择了阿里云的云效全家桶。为什么最后会选择云霄全家桶?核心原因还是“全家桶”二字,基本上能不能涵盖我想要的研发管理功能。那么这个全家桶到底能做什么呢?下面给大家分享一下改造前后的平台架构,让大家有个直观的认识。老架构:批量集成老架构的建立基本上是借鉴了公司常用的开源产品和商业产品来搭建基础平台。按功能分主要有以下几种:代码仓库:GitLab持续集成:Jenkins任务管理:JIRA文档管理:ConfluenceGitlab和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。持续集成完成代码迁移后,接下来开始持续集成部分。对应产品为CloudEffectFlow,产品地址:https://flow.aliyun.com/。在CloudEffectFlow中创建CI/CD流水线非常简单,因为它在每个主流开发语言中都提供了多个持续集成案例的配置模板。这里我尝试配置一个SpringBoot后端应用部署在ECS上,选择上图中第一个推荐的模板即可。会出现如下图所示的流水线配置界面。单击每个步骤进行详细配置。点击每一步进行详细配置,如:如何使用maven命令构建,如何在部署操作中上传产品,因为和阿里云相关联,可以方便的关联账号下的资源来选择部署,不需要自己维护服务器列表,非常方便!那么这个流水线功能能否满足云原生应用一次构建多个部署的特点呢?接下来,我也尝试去做了。大致流程是:在测试环境中,构建,上传产品,部署;在前置环境中,选择产品并部署;在专业环境下,做选址、执行、部署。模拟这个比较常见的CI/CD管理流程。如上图,可以满足。这也已经满足了我这边的持续集成需求。但是在流水线这边,选品这一步的用户体验不是很好,花了我一些配置和咨询的时间才完成。据悉,这部分体验优化将在9月15日版本进行优化!迭代非常快,非常强大!这里值得一提的是,云效流中提供的各种操作模板,非常适合我们国内的用户。比如你可以在测试环境中看到我的流程详情。这里增加了代码扫描,涵盖了阿里巴巴代码规范的检查报告等。通知提醒也很符合国内开发团队的管理特点,并且提供了钉钉、企业版等国内常用的软件支持微信、飞书。嗯,通过云效Flow,又救了一个JenkinsECS。在谈到管理门户的旧架构时,我提到使用JIRA的一个重要原因是将其作为整个研发管理的门户,因为它可以集成所有其他外围设施。比如:任务管理,持续集成触发等等。那么在云霄全家桶中,有没有产品起到这样的作用呢?作为一站式解决方案,必须安排。对应产品为CloudEffectDevOps,产品地址:https://devops.aliyun.com/。说到这里,你可能要问了,任务管理和文档管理不会被取代吗?必须更换!只是因为作为入口的云效能DevOps其实涵盖了这两块内容。那么,让我们一起来看看云效DevOps的强大功能吧!这个产品上手非常快,因为它提供了一些常用的模板。我会直接给DevOps研发模板来创建。创建完成后,不难发现菜单中的需求、迭代、任务、缺陷、测试计划、版本管理不是JIRA的替代品吗?而且知识库不能替代Confluence!这里还有贴心的Excel导入功能,我只需要将JIRA中的Issue导出,再导入这里,就可以继续做之前的任务管理了!同时作为管理入口,自然可以和之前介绍的云效Codeup和云效流挂钩。只需在菜单中点击代码和流水线(刚创建时需要点击关联选择同一账号下配置的代码仓库和流水线),即可查看和实现日常操作!至此,CloudEffectDevOps基本完成了批量解决方案中JIRA和Confluence的角色,继续妥善发布两台ECS!总结一下,在盘点自己做的批量方案和这次使用云效全家桶后,我觉得有几大好处:降低成本:节省4个ECS。个人开发或者像我们这样的小团队,云效果基本都是免费的,白嫖能不爽吗?易运维:与阿里云高度集成,资源维护及相关操作更方便!云效DevOps产品,在我的场景下非常好用,核心原因就是够用。但是如果要做很复杂的管理,可能还是会有一些困难。例如:在目前的版本中,我还没有找到像JIRA这样强大的工作流支持。在这种情况下,如果团队有一些复杂的流程管理,比如reviewwithmultipleparticipants对流程和与其他系统的联动没有很好的支持(不过在咨询云霄的朋友这种功能的时候,了解到这种功能已经内测了,那么具体的功能支持情况如何等等,等以后公测之后再看吧)。就目前整个云霄全家桶的功能来说,我觉得最适用的人群是我个人开发或者中小型团队!如果你此时正在选择管理平台搭建这类管理平台,同时又像我一样预算和人力捉襟见肘,那你不妨试试云霄!点此直达云霄全家桶,一起免费畅玩吧!尤其是服务器资源在阿里云的朋友,真的不能错过!如果你还没有实际项目体验云效应DevOps,但又想学习和了解这款研发管理产品。那么你也可以通过参与下面的“1分钟代码自动抓bug”活动来体验一下。9月6日-10日,云霄新用户完成体验,还可抽Cherry机械键盘、阿里云定制Git指令鼠标垫、积木星球等1000份好礼,100%中奖,先到先得!欢迎关注我的公众号:程序员DD,分享别处看不到的知识和思考