本文介绍: 很多开发人员应该是了解过运维发布相关平台或实际操作应用发布,但又通常不是十分熟悉。在一个初创公司,或者没有成熟的运维发布平台公司,如果让你来搭建一套发布平台,你应该如何去抉择呢?这里简单介绍几种

很多开发人员应该是了解过运维发布相关平台或实际操作应用发布,但又通常不是十分熟悉。在一个初创公司,或者没有成熟的运维发布平台的公司,如果让你来搭建一套发布平台,你应该如何去抉择呢?

这里简单介绍几种

Tomcat + nginx

有不少公司在初期项目数量很少时有使用这种方式的,一两台服务器,把项目打个jar上传上去,启动起来完事,主打一个简单便捷。其实这种方式在不少情况下还是不错的选择,并不是所有公司都适合dockerk8s一套的,这样比较节省服务器资源lowlow了点,适应自己就行。

dockerdocker compose

服务器上装个docker然后项目代码打成容器镜像,在服务器运行镜像

这种方式也有不少开发者使用代码打成镜像可以选用阿里云的容器镜像服务,有免费的也有收费方式指定代码地址编写Dockerfile即可打成镜像服务器使用

命令行形式的docker方式其实我不太赞成,毕竟没有可视化界面就很难把控服务运行状态,以及启动关闭操作还得敲命令挺麻烦的,推荐使用portainer这种简易容器管理界面平台进行管理操作查看日志比较方便。portainer操作简单功能也不多,基本就是docker基本管理

rancher1.6平台

rancher1.6是我长期使用的、也认为是非常适合于中小规模的公司作为企业发布平台,之前曾经写过多篇rancher使用教程,虽然目前rancher官方已经停止维护1.6版本,而全面转向k8s的2.x版本,但是1.6依旧是可以使用的,目前直接docker pull rancher还是拉取的是1.6版本

之前的rancher安装教程:安装配置Rancher管理docker-CSDN博客

rancher1.6采用自己cattle编排方式通过设置镜像地址方式来启动各个容器大家仍然可以采用阿里容器镜像服务来进行镜像的制作,然后在rancher添加服务设置镜像地址即可。

rancher里面还有添加服务依赖功能,可以将多个服务关联起来,从而进行容器间的服务调用而无需设置IP就能进行访问。同时里面内置负载均衡器,可以将服务暴露外网,作为反向代理进行使用,类似于k8singress功能

rancher用来管理规模不大,如50台以下的服务器集群,进行应用服务容器化编排,其实是非常合适的。内置的编排方式cattle其实是很不错的,和k8s很类似,但整体学习成本使用成本可比k8s简单太多了,没那么多概念需要理解,上手半小时就能直接进行运维了,而k8s光学习就得好几天。

对于规模不大的服务,可以选择rancher1.6作为发布运维平台。

k8s原生

这年头作为开发要是不会k8s感觉都不好意思跟人打招呼一样,无论多小的公司、三两个服务也得上k8s,对此我只想说,你开心就好。

技术很难,但在合适的场景下能做出正确选择更重要,过度设计比不会设计更可怕。

目前k8s肯定是主流的运维发布首选,但在上k8s之前,建议还是考虑考虑是不是有必要性,如果就没几个服务,也不要强行就上springclouddubbo之类的微服务框架,至少rancher1.6就可以搞定大部分场景了。k8s和k3s差不多,有时上个k3s也可以。

这玩意自己搭建的话说实话有点麻烦的,尤其是原生搭建,不建议开发自行尝试,一来要好几台服务器,二来确实步骤多很麻烦,一上来就搭建k8s环境网上搜很多教程,又搞不成功就容易把你劝退。

目前国内有几个比较成熟的一站式k8s环境搭建的方式,譬如kubersphere、rancher2、rainbond都提供了自己快速搭建k8s集群功能大家访问他们官网就能看到。如果是用的云服务,那么阿里云的ACK也是搭建好的k8s环境,这些都可以避免手工搭建k8s环境的困难。

如果你头铁,就是自己在空的服务器上搭建,那么也可以尝试,仅学习即可,学几个命令,搞不定也没关系,反正日后大概率不会用原生命令部署啥的。

kubersphere、rancher、rainbond

这三个都是开源免费平台,都是用来搭建、管理k8s集群的,但都侧重点不同

如果你就是普通的开发,想快速构建起k8s平台并发布运维项目,也不想去学习那么多的k8s的概念什么deploymentserviceingress等等,也不愿意去学,那么rainbond非常适合你,Rainbond是什么? | Rainbond

它和rancher1.6类似,都是非常容易上手的平台,在自己本机就能搭建起k8s环境并进行发布、管理。也支持发布容器镜像、代码源构建应用市场等多种来源的应用构建,也支持服务依赖(和rancher1.6的应用关联类似),整体还是比较容易上手的。其中服务间通信也提供了service mesh和k8s原生两种方式整体我比较推荐rainbond,因为难度最低,对开发来说不需要懂k8s就可以快速上手。

kubersphere和rancher2.x也都是比较流行的k8s管理平台,其中rancher还创造了k3s。这两个平台我都用过,但都有相当的难度kubersphere基本就是把k8s的各个概念组件给界面化了,你需要了解deploymentservice各个k8s的概念才能玩的转,而且查看日志很不方便,里面需要手工编写一些k8s的yml文件才能发布启动,整体我感觉不适合新手开发。

rancher相对来说不需要手工写一些配置,但也是暴露了很多k8s的概念里面,你还是需要serviceingress等,不然还是跑不起来。

kubersphere和rancher我理解就是将k8s的各个功能给界面化了,并且提供了快速部署起k8s集群能力,都有相当的操作使用复杂度,对于开发人员来说,并不是很容易。

综上,对于一个尚未有完善运维发布平台的公司,而且后续也不打算招专门的运维人员场景下,如果规模不大,机器也不多,我建议使用rancher1.6,如果稍复杂,并期望用k8s,我建议上rainbond。并且建议用阿里云的容器镜像服务来进行代码的打包镜像化,不太建议自建jenkins流水线那套,运维平台只负责发镜像搞服务关联即可。

原文地址:https://blog.csdn.net/tianyaleixiaowu/article/details/134639529

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_37874.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注