首页 > 其他分享 >Followme Devops实践之路

Followme Devops实践之路

时间:2022-10-24 16:32:06浏览次数:83  
标签:Followme 服务 devops 实践 Devops 开发 服务器 docker net

引言

天下武功,唯快不破

想要提高开发团队效率,势必要有一套完整而成熟的开发流程方案,除了sprint迭代开发模式之外,还有近几年流行的devops流程,都是可以大幅度提高开发效率的工具. 我们团队也不断探索、实践,最终形成了现有的一套体系,从最初的手动发布到现有的自动化,从起始的繁琐易乱到当下的简洁明了。我们希望将我们曾经踏过的脚印与大家一起分享,为各位展示一条 我们的devops 的实践之路,同时也希望能为各位避免走入同样的弯路提供些许帮助。

 

背景

我们是一个 .net(core) / go / nodejs 的多语言混合式开发团队,致力于微服务架构。项目初期基于 .net framework, 开始并没有准备做 devops,基于Windows的 gRPC 服务、ASP.NET 做持续部署还是比较麻烦(不管是停止远程服务/更新二进制包/docker化流程都太重)。当我们全面拥抱.net core 2.0之后,其原生跨平台的特性促成了我们的 CI/CD (continue integration/continue deployment) 之路。

 

发展历程

从0,到devops我们也经历过好几个阶段,每个阶段所存在的问题, 大家也可以对号入座的看看

1 原始阶段/纯人工管控

  • 大家司空见惯的在开发机build,然后copy到服务器上,手工解压更新,启动服务!
  • 这种方式效率太低, 质量也不敢保证, 没有流程章法

2 Ansible + git

  • 采用git来管理二进制发布包 ,可以有效的进行发布的粗略diff/特别是配置文件
  • 采用ansible来管理服务器,大大减低了人肉成本
  • 运维大量的重复性操作

3. devops

 

Devops

Followme Devops实践之路_服务器

为了实现开发自运维, 我们采用Jenkins +docker + portainer 三剑客, 来解决开发/运维/服务器/各自的问题

  1. Docker
  1. 环境依赖, 例如 .net core runtime版本/ OS 版本, 再也不用让运维提前准备环境了
  2. 资源限制, 例如有些服务存在内存泄漏/CPU问题, docker可以限制他的最大使用率, 确保同台服务器上其他docker 服务可以正常使用
  1. Portainer
  1. Docker management UI
  2. 统一管理docker服务
  1. Jenkins
  1. Build source code
  2. Build docker image ,ship
  3. Auto deploy

架构如下 https://github.com/FollowmeTech/jenkins-cicd

Followme Devops实践之路_服务器_02

功能

  • base on Jenkins
  • base on docker register hub
  • base on portainer management

依赖

  • docker registry [harbor]
  • portainer (docker management)
  • git-server
  • docker /docker-compose

体验一下

为了方便大家快熟感受, 我搭建了一个play环境

大家可以向 ​​https://github.com/FollowmeTech/jenkins-cicd-practise​​ 提交代码

再登陆 ​​https://ci.rileme.club​​ ,选择相应的分支进行build发布 (play/123456)

项目发布完成, 快熟预览效果 ​​http://demo.rileme.club​



标签:Followme,服务,devops,实践,Devops,开发,服务器,docker,net
From: https://blog.51cto.com/shanyou/5790255

相关文章

  • 实验5:开源控制器实践——POX
    (一)基本要求1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,控制器使用部署于本地的POX(默认监听6633端口)sudomn--topo=single,3--mac--controller=remote,ip=127.0.0.1,......
  • 敏捷、DevOps和嵌入式系统测试
    01.覆盖率测试概念“测试”在百度百科中的注释为:具有试验性质的测量,即测量和试验的综合。如今人们在提到“测试”时,通常指代的是软件测试(SoftwareTesting),而本文着墨对象......
  • 复杂场景数据处理的 OLTP 与 OLAP 融合实践
    本文首发于NebulaGraph公众号DagController介绍DagController是NebulaGraph企业版的系统,经过反复测试无误后进行了发布,它主要解决的是OLTP和OLAP的融合问题......
  • HTML躬行记(2)——WebRTC基础实践
    WebRTC(WebReal-TimeCommunications)是一项实时通讯技术,在2011年由Google提出,经过10年的发展,W3C于2021年正式发布WebRTC1.0标准。WebRTC标......
  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实......
  • 实验5:开源控制器实践——POX
     实验5:开源控制器实践——POX一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;......
  • 实验5:开源控制器实践——POX.md
    实验5:开源控制器实践——POX一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;......
  • 企业数据安全建设的思考和实践
     针对于近期所参与的一些讨论或学习的一些内容,再从近期各个培训机构所发布的一些材料综合整理的资料。        本次我们计划从几个话题来进行解说。       ......
  • 实验5:开源控制器实践——POX
    一)基本要求1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,控制器使用部署于本地的POX(默认监听6633端口)生成拓扑sudomn--topo=single,3--mac--controller=remote,ip=......
  • 实验6:开源控制器实践——RYU
    基本要求搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器建立拓扑连接RYU控制器L2Switch.pyfromryu.baseimportapp_managerfromryu.controllerim......