热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

再见了,我的散装研发管理平台;再见了,4台ECS

周末的时候,收到好几个云服务器临近过期的通知短信,准备续个费,居然都要大几千!因为这几个都是以前低价抢购的,掐

周末的时候,收到好几个云服务器临近过期的通知短信,准备续个费,居然都要大几千!因为这几个都是以前低价抢购的,掐指一算,如果都续费的话,要蚕食好多利润!

作为一名自己养活自己的独立开发者,节省成本是必备技能,不然哪来可观的利润?于是,就开始琢磨着做一些架构上的调整,看看能否在这次服务器资源减少的情况下,继续低成本的运行目前还在跑的业务。

因为业务产品是最重要的,所以这块基本不能动。那么能动的就是一些周边设施了,比如:做任务管理、文档管理或持续交付的工具。在调研了诸多 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 那样强大的工作流支持,这样的话如果团队有一些复杂流程管理,例如多人参与的审核流程,还有与其他系统的联动,还没有比较好的支持(不过,在与云效的小伙伴咨询这类功能的时候,得知这类功能已经在内测,那么具体功能支持如何,等后面公测了我们一起拭目以待吧)。

作者|翟永超

原文链接

本文为阿里云原创内容,未经允许不得转载。


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • MateCloud 3.5.8 发布,基于 Spring Cloud Alibaba 的微服务框架
    基于SpringCloudAlibaba的微服务框架MateCloud3.5.8已经发布。此版本更新内容包括:功能升级针对MybatisPlus3.4.3新特性进行微调依赖升级升级至SpringCloud2020.0.3升级至Mybatis-Plus3.4.3详 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
author-avatar
郭彩凤da
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有