php发展

首页 » 常识 » 预防 » 项目环境部署演变之路
TUhjnbcbe - 2021/5/20 17:27:00

来源

juejin.im/post/5ade8a37fda0b8ddff

前言在环境部署问题上,我们经历了3个阶段:传统安装、镜像恢复、自动发现注册+指令下达。目前镜像恢复后,启动虚拟机,一旦能ping通我们公司地址,就会自动注册这台机器(即使没有其他外网访问权限、也未开放任何对外端口),我们也就有了这台机器的管理权限,可批量群控下发指令。(第二阶段、第三阶段均为我自主设计。)背景我们是一家产品+定制化需求公司,项目做好之后会直接部署到客户服务器上。而客户很少选择云服务器,因为他们有自己的机房,部署前会提供给我们1-2台虚拟机,然后整个环境部署问题就交给我们了。演变第一阶段:传统安装使用时间:?~年需甲方提供windows或linux服务器远程连接方式(这里各个甲方提供都不一样,有堡垒机、vpn、直接定向开放端口、vpn+堡垒机等)非常复杂,只能casebycase远程到服务器上上传数据库、jdk、tomcat各类安装包(受限带宽因素,往往很耗时)安装安装数据库安装jdk、tomcat、nginx(linux环境下,使用写好的sh脚本直接运行,依然比较耗时)人工部署war包等等此方式缺点太多,往往需要3-5人天才能完成所有部署,但我们只有一位运维人员,所以当项目冲突时,极为被动。而且因为各个软件版本发生变动、甲方提供的虚拟机3个盘符、2个盘符,或者没有D盘(虽然可以通过计算机管理更改驱动器显示号,但可能导致其他软件无法运行)所以环境比较乱。这种方式比较老,我也不介绍更多。当然,据我了解,目前还有一些小公司在沿用这种部署方式,所以在这里劝采用这种方式的公司尽快完成转型。第二阶段:镜像恢复使用时间:年~年需甲方提供windows或linux服务器远程连接方式(这里各个甲方提供都不一样,有堡垒机、vpn、直接定向开放端口、vpn+堡垒机等)非常复杂,只能casebycase使用vm镜像恢复虚拟机并设置好ip(内含docker)通过deploy模块一键部署war包此方式,我们将第一阶段的2、3、4、5封装成vm虚拟机镜像、开发了deploy模块、抽取项目无状态。这时我们对运维人员依赖大大减少,工作量大大减少至2-6小时。(这个阶段起,我们公司没有运维人员,进入DevOps时代。事实上,此阶段初我们运维人员离职,使得我不得不加快设计)第三阶段:自动发现注册+指令下达使用时间:年~年甲方使用我们vm镜像恢复并设置好ip,保证能ping通我们公司地址自动发现注册+指令下达通过deploy模块一键部署war包此阶段,我们部署耗时在5-10分钟,而且我们不再需要甲方提供远程,我们还可以批量管理所有机器,不仅满足了此时的需求,并为后面扩展做了铺垫。具体技术这里主要讲二、三两个阶段因为传统方式缺点特别多,所以在我向领导介绍方案后,领导很感兴趣,很快就安排我着手去干。为了提高效率,期间选型多款工具或框架组成的方案,本文只介绍最终选型的设计。frpfrp是一款内网穿透软件,可以使得没有外网ip的机器暴露在外网里,但本文利用它将一台内网机器端口暴露在另外一个内网中的特性。安装frp服务端选择一台内网机器比如.0.0.2,需临时保证这台服务器走公网固定ip线路

wget--no-check-certificate

1
查看完整版本: 项目环境部署演变之路