首页 > 其他分享 >关于微服务的自动化部署+运维,于企业发展的思考,技术性路线实践

关于微服务的自动化部署+运维,于企业发展的思考,技术性路线实践

时间:2023-03-22 20:06:27浏览次数:38  
标签:compose 运维 部署 技术性 gitlab 自动化 docker

1、背景

这段时间由于各人原因需要了解java系统部署方法。之前没有系统学习过,所以只能参考公司现有的系统部署架构。在这个学习的过程中有了个人的一些感悟+踩了一些坑。往下主要记录下对个人而言最实在的部分信息。

2、以前

以往的项目主要是以单体架构为主,很多时候估计用的是Jenkins + WebHook进行部署,或者直接Jenkins直接操作服务调度打包等。

3、现在

微服务的情况下,功能性服务会启动好几个节点,不再像以往那么单一。在部署的流程上,也没有太大的变化,还是追求自动化。但是对于节点而言,docker就是一个非常好的工具了,可以启动很多个互不干扰,关于docker是个啥,不再细讲。重点是,很多公司都会引入,这对于个人开发者而言,是很有借鉴意义的,因为开发一个东西,最好是把它定位为一个产品,整套完善的思考才是持续生存的关键,这也是个人能更好进步+生存的关键。

4、样例

自动化部署+公司需要将自己的数据本地化,通常会采取全量工具的引入。比如:

gitlab + gitrunner (CI/CD) +  docker + docker-compose + Harbor + K8s + kuboard,这是一套很全面的配套体系。

5、实践

我的电脑是16G内存的,为了跑环境需要装虚拟机。一开始为了节省资源我装了两台4G的centos7,从gitlab开始搭建。

6、问题开始发生

gitlab自己的运行环境就需要4G+,光是这一个东西就要那么大内存,其他东西怎么可能安装的下。硬着头皮在第二台机子上安装:gitrunner +  docker + docker-compose + Harbor,搭建完全的本地化部署策略。到这里,只是完成了自动打包部署,docker容器启动管理这些还没有接上,内存基本就爆炸了,gitlab卡死报500,Harbor卡死等等。

7、对于问题的思考

样例的的自动化链条确实很好,但是硬件部分的卡死情况却很严重,原因在于:需要很多的硬件来支撑大体量的系统运维环境。对于学习来说,全部学习确实是个好事,但是对于开发者来说,我们更多的时候应该根据现实情况来判断和选择最适合我们自己的运维路线。对于大一点的公司和部门,全量部署是有充足的硬件条件支持的,可以放心大胆的去做,而且效果会很好,因为这本身就是自己的业务要求,比如:全量可控、安全、保密等等。但是对于普通的开发人员,很多时候是没有那么多钱的,所以就要找尽可能省钱的,集成化高的方案。

8、最终方案

经过尝试,最终调整为:

gitee + webhook + docker + docker-compose + aliyun镜像仓库,在这条线里面,实际只需要负载docker + docker-compose这个核心部分,nginx、数据库这些另算不参与讨论。

自动化打包也使用ssh远程执行指令直接完成,配合webhook使用,可以完美实现。

--------------- 结语

其实,对于开发人员,不能只关注与开发,系统的架构、选型、运维部署同样十分重要,只有每个环节都尽可能与自身实际情况相匹配才能发挥最好的效果,千万不能贪大求全,求新。普通的开发人员,重点的工作是开发,而不是研发,两者有着很大很大的区别,重点在开发,就说明需要善用工具实现系统功能,一切以系统稳定运行为主,不能过分追求新技术、新方案以免造成各种各样的潜在风险。






















标签:compose,运维,部署,技术性,gitlab,自动化,docker
From: https://blog.51cto.com/u_15595167/6143106

相关文章

  • 工业锅炉设备远程监控运维
    ​我国是全球工业锅炉生产应用数量最大、应用范围最广泛的国家,规模以上锅炉生产企业有千余家。我国工业锅炉容量小、数量大、布点散、能耗高,无法做到集中管理和控制,对于锅炉......
  • python---打包exe文件运行自动化
    前言我们正常执行自动化测试的代码都是在有python环境和对应的python库的环境中进行执行的,那么如何能否将我们的自动化测试代码放到没有python环境的电脑上进行运行呢?这个......
  • selenium自动化测试学习1
    注意:py文件命名的时候,不能直接命名为selenium.py,会和第三方包selenium冲突 一、环境搭建:1、下载第三方包seleniumpip3installselenium -ihttps://pypi.tuna.tsing......
  • UI自动化alter框 、等待机制
    一、下拉框处理:网页上的js弹出框一般有三种情况,且识别不了元素,需要使用switch_to.alert()进行跳转    情况一: 这时候需要先跳转到此弹窗,才能做到自动化点击确......
  • 接口自动化行情+pytest常用的库
    一.常用的接口自动化框架1.市面上主流的接口测试工具:(适用于中小型公司或者项目)Postman+Newman+Git+JenkinsJmeter+Ant+Git+Jenkins目前主流的接口自动化测试技术:(适用于......
  • TiDB运维命令
    查看TiDB参数查看configshowconfigwherenamelike'%%';查看参数showvariableslike'%%';#pd-ctl中configshow[all]Dumpling工具下载示例#dumpling导......
  • 运维工程师之日常巡检
    #情境最近面试过程当中,发现好多运维工程师日常工作内容中,有一项周而复始每天都要做的事巡检服务器资源信息(如:CPU,硬盘,内存...)作为一个技术人,起码的懒人意识应该要有,同样的......
  • GaussDB(DWS)运维:导致SQL执行不下推的改写方案
    摘要:本文就针对因USING子句的书写方式可能导致MERGEINTO语句的执行不下推的场景,对USING子句的SQL语句进行改写一遍,整个SQL语句可以下推。本文分享自华为云社区《​​GaussD......
  • 构建DevOps落地的自动化持续交付流水线的工具链
    DevOps流程涉及到需求管理(包括需求的任务管理、进度管理等)、持续集成、版本管理、代码编译、测试、配置管理和监控等多项工作任务。DevOps需要构建相应的工具链,将工作任......
  • Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路
    一、安装docker二、安装Jenkins三、系统配置四、创建任务五、测试六、运行项目本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走......