部署策略


一 介绍

在我们日常的开发流程中,对于单体架构的服务而言,我们可以通过简单的命令进行启动部署,但是对于多模块服务而言,我们可以通过脚本的方式进行部署的策略,这样可以大大的节省人力资源成本,使服务的部署运维能力不会变的那么笨重。
本实例的演变,仅仅简单的初步的演变方式,没有涉及容器

二 部署能力的演变
2.1 原始部署

例如,我们要开发一个简单的单一架构的项目。项目中需要依赖mysql,如果客户让我们部署到他们内部提供给我们的一个linux服务器上,对于原始能力的部署,我们需要做的事情就是

  • 首先是安装项目需要依赖的基础组件,比如安装jdk,mysql等。
  • 对于基础组件的部署,我们需要把相关的包下载下来(也可以通过在线网络下载的方式),网络搜索相应的安装方法,比如 搜索引擎搜索:如何在centos7上安装mysql ,搜索之后,找到一篇文章,照着安装
  • 对于项目的部署,常见的是通过打包成jar包(spring boot,cloud),或者是war,通过tomcat容器进行部署,或者直接使用java -jar ***.jar 的方式部署运行
2.2 脚本化

慢慢的。我们发现单一架构的项目,如果客户要求我们把A项目部署到linux 1主机,把B项目部署到linux 2主机,我们会发现,我们会重复的安装基础组件,不断的搜索 如何在linux虚拟机安装mysql,zookeeper,kafka,es等,当然你如果安装熟练了之后,那自然是水到渠成,更过分的时候,有时候,你明明按照网络上的一些文档进行安装,命令该敲的也敲了,最后就是安装不成功,无奈你只能再次搜索错误信息进行修复。。。
针对这一部分的工作,对于基础组件的安装,我们可以通过重构基础组件脚本化的安装策略进行安装。各个主机安装,我们只需要通过执行安装脚本的方式进行安装。

  • 编写脚本,例如linux系统我们可以通过编写shell脚本,window系统我们可以通过bat脚本
  • 例如 install.sh(安装脚本),uninstall.sh(卸载脚本)

但是对于脚本化的部署基础组件,同样还是存在一定的不便

  • 安装基础组件的版本固定。既然我们选择脚本化的部署策略,那我们在脚本的部署策略的时候一般是固定对应的组件版本的,针对离线的情况下例如银行或者大型国企公司,他们的安装主机一般是不允许你连接互联网的。
  • 我们需要事先把安装的脚本来回的复制到对应的安装主机上,然后再执行脚本。
2.3 平台化

对于基础组件的安装,我们仍然使用脚本的安装策略,只是,我们可以将对应的组件化的安装能力升华到平台上,(可以了解一下Pass平台),通过平台的能力,我们可以自由的实现选择指定的主机安装特定的基础组件,相关的组件的版本选择和主机之间的组件安装包的复制我们进行封装。并体现到对应的平台化上。

2.4 脚手架

对于基础组件的安装,我们可以通过平台化的能力大大的简化基础组件的安装,但是对于产品模块的部署,我们同样可以使用脚手架的能力进行部署,我们可以约定后端的开发逻辑,将模块的集群部署,分布式部署的能力交给平台,我们可以通过开发相应的负载均衡组件(网关),实现模块的高性能部署

2.5 容器化

容器化部署是目前对应大型分布式系统的主流,通过容器化部署,我们可以实现构建服务,并部署任意容器中,这大大的屏蔽了对于服务本身环境的依赖,并且加以分布式的容器资源管理器(k8s),进行服务的编排,资源分配,以及动态扩容,和相应的发布回滚机制,能大大的提升对于容器的服务管理和分布式系统的维护操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值