各位彦祖,想问下你们公司都是怎么给客户部署 B/S 软件的? 我司 5w 多家企业客户,要部署一套 200+微服务 springboot 应用和 20+周边服务如( redis/rabbitmq/ng 等等)+所有类型数据库( Mysql/SQLServer/Oracle/PG 等),现在部署一次大概得一天左右,主要通过 shell 脚本部署,想问下怎么优化?
1
isno 2023-03-01 11:32:00 +08:00
全都给改成 docker 的?
|
2
perfectlife 2023-03-01 11:36:18 +08:00
感觉有必要那么多微服务么,你们客户对这些没意见么,我们供应商要是给我搞这么多微服务,我估计裂开。 你可以用服务全做成容器,去客户现场部署,k8s+yaml 直接梭哈
|
3
ixixi 2023-03-01 11:40:27 +08:00
我比较好奇的是做的是哪一类的软件 ?
|
4
westoy 2023-03-01 11:42:27 +08:00
慢点好, 好收费
|
5
youisme 2023-03-01 11:43:15 +08:00
k8s, 需要落地执行的可以找我们合作
|
6
hhjswf 2023-03-01 11:45:45 +08:00 via Android
这就是 k8s ,docker swarm 的场景啊
|
7
moshiyeap100 2023-03-01 11:57:21 +08:00
@perfectlife 也可能指的是 200+的微服实例,比如一个订单服务有 30 个实例这种。
|
8
julyclyde 2023-03-01 12:03:09 +08:00
shell 脚本,我猜大概都是写“动作”的吧
建议还是用 ansible ,写“期望结果” 或者用容器,直接交付结果 |
9
la2la 2023-03-01 12:11:14 +08:00
目前 shell 脚本不也没有碰到什么问题么?接着用啊
如果需要快速交付的场景: all on k8s |
10
tomczhen 2023-03-01 12:22:16 +08:00 via Android
大型还是商业,交付部署有很多根据实际情况来做的细节,网友顶多给个云来的方向,实际坑还是得自己踩,最后也不一定能行得通。至于真的实践过的,就算想分享给你,打字都要一堆,白嫖方案细节更不可能。
商业就是商业,别想得太简单。 花一天时间,只要稳定不出问题,不埋隐患,客户认可,万一优化成 1 小时,客户反而不愿意掏钱呢? |
11
whileFalse 2023-03-01 12:31:55 +08:00
你们这软件。。。感觉写代码的人瞎几把搞。
|
12
hhjswf 2023-03-01 12:45:29 +08:00 via Android
@tomczhen 啥?这不是说 5w 多客户,应该是做平台的,不是每个客户部署一套,部署成本肯定不是客户掏钱
|
13
cheneven 2023-03-01 13:03:56 +08:00
k8s, 需要落地执行的可以找我合作
|
14
jucelin 2023-03-01 13:15:04 +08:00
虚拟机镜像,然后 U 盘带过去
|
15
idblife 2023-03-01 13:31:42 +08:00
k8s
也可以联系我 哈哈 |
16
luxsunzhe1 OP @perfectlife 容器简单了,主要是客户不会给 kubectl 权限的,大部分是通过 jenkinsfile 实现,还不能用 shell 脚本,更麻烦!
|
17
luxsunzhe1 OP @isno 现在是 docker 或虚拟机,问题是容器镜像非常多,磁盘空间占用特大,导入导出镜像耗费了大量时间
@tomczhen 说的对,但是领导不同意,说我们自动化程度太低,耗时太久 @ixixi 企业软件 @moshiyeap100 不是,就是单纯模块服务 @julyclyde 有 ansible ,ansible 这块的问题是客户服务器操作系统多变,比如 windows ,centos ,麒麟一大堆,导致 ansible playbook 冗杂且容易出问题,尤其是第三方中间件,不上容器化的话,这块根本没法玩,早期我们就是各种操作系统兼容问题,后来切容器后还好一点 @la2la 领导要求优化呀 @whileFalse 是的,拆太细了,我们现在一套系统要求 200 多 g 内存,小客户根本承受不了 @hhjswf 即做平台,也做私有化,很多 guoqi/zhengfu 不允许使用我们的 saas 服务 @jucelin 不现实,几万家客户不可能全带 u 盘过去的 |
18
goodryb 2023-03-01 14:19:00 +08:00
@luxsunzhe1 #17 既然领导说自动化程度太低,时间太久那就要拿出来具体分析下,部署的卡点在哪里,耗时在哪里
不管用 k8s 、虚拟机,甚至是 shell 脚本,都是实现自动化的手段。 高效的前提标准化,敏捷化; 部署环境、方式、验证是不是足够标准; 业务本身是否足够简洁、敏捷; 分析之后再看怎么去提升和优化。 |
19
defunct9 2023-03-01 14:24:49 +08:00
开 ssh ,让我来
|
20
Mithril 2023-03-01 14:47:18 +08:00 5
这就是云架构师纯瞎搞出来的,面向 KPI 的架构设计。。。
你每个客户都搞一套这玩意,光售后维护就能搞死你。而且最重要的问题在于,如果客户没有这么大的数据量需求,那你搞这么个复杂的微服务架构有意义吗? 如果他们有这么大的需求,那自己还没个运维团队?开发还要外包? 恕我直言,绝大多数的企业级应用,都根本用不上这么复杂的微服务架构。没那么多并发,也不需要多高的容错。你要说只有 500 强客户还好说,5W 多家企业客户里面怕是大部分都用不上。 已经搞成这样了,那最简单的办法就是连着硬件一起卖。OEM 几台机器,配置好了发给客户去。版本更新直接换硬盘,省得你到时候乱七八糟的环境问题搞不定。也省得客户抱怨你这东西吃配置自己的机器跑不起来。 |
21
99s 2023-03-01 15:09:01 +08:00
微服务架构不是只存在 PPT 中吗?做事用这个不是折腾自己吗
|
22
litchinn 2023-03-01 15:21:39 +08:00
正文里说目前主要用 shell 部署,楼层回复里我看又说不让用 shell 呢
这种大型项目,对面不给 kubectl 权限是啥情况,服务器权限也没有吗,那不就是你们写方案别人部署吗? 镜像问题,现在有使用 harbor 吗,建议自建 harbor ,部署时通过合适的手段直接访问,或者部署地建一个 harbor 另外确实如 @Mithril 所说,真的有 5w 家这种都需要自部署这么复杂项目的企业吗,不会是所有服务 all in one 吧 |
23
hhjswf 2023-03-01 16:18:34 +08:00 via Android
@luxsunzhe1 一家企业就要部 200 多微服务 20 多中间件?那整个平台得部多少套。。牛批
|
24
BeforeTooLate 2023-03-01 16:52:30 +08:00
一套系统要求 200 多 g 内存,小客户根本承受不了。
这里是指一家企业就要这么大内存? |
25
julyclyde 2023-03-01 16:58:23 +08:00
|
26
cmingxu 2023-03-01 16:59:02 +08:00
10 个服务以内我现在全是 docker-compose , 超过 10 个的服务我还没见过。
|
27
rushssss 2023-03-01 17:08:54 +08:00
200+微服务 springboot 应用和 20+周边服务如( redis/rabbitmq/ng 等等)+ 所有类型数据库( Mysql/SQLServer/Oracle/PG 等)
这么大一堆东西,能一天部署完调试好也算你们厉害了。 想要再提高效率,容器化和声明式 API 部署应该是唯一的路,就算客户不给你 kubectl 权限,通过 jenkinsfile 调用 kubectl 和你通过 jenkinsfile 调用 shell 实际上是一码事,所以还是可行的。 |
28
jamosLi 2023-03-01 17:36:05 +08:00
不可能每次发版都是重头再来吧。
|
31
LLaMA2 2023-03-01 18:00:40 +08:00
要不你把你的 shell 中一些经典的部分抹除掉敏感信息,发出来大家伙给你说道说道
|
32
yrj 2023-03-01 21:52:33 +08:00
我感觉,你们公司的技术主管是在这练手呢吧?能用的都用上了
|
33
WildCat 2023-03-01 21:56:57 +08:00 via iPhone
Ansible or
https://github.com/mrsked/mrsk |
35
smg 2023-03-02 08:42:32 +08:00
最近上了 2 套完全不同的系统,本地内网部署的,供应商都是直接 all in k8s 交付,把测试灰度和正式环境全上了。部署时间一两天对我们来说无所谓,我们关心的是后续维保问题,环境问题你们自己去修,要划清工作界面。前期沟通好能单独提供一个主机就更好了,以后这个盒子的问题都是你们。
|
36
echoyangjx 2023-03-02 09:25:31 +08:00
试试 ansible
|
37
darling19961030 2023-03-02 10:06:20 +08:00
个人经验不上云上 docker 意义不大,尤其是离线环境,纯粹给自己找事
|
38
Mithril 2023-03-02 10:58:23 +08:00
@smg 这就是问题所在。
能正常跑那啥事都没有,集群出问题想要调试和调查就麻烦了。客户那里的 IT 可能没有这个水平,再说就算有,也不一定会愿意帮你调查。比如经典的,“我们什么也没动,他就坏了,那不就是你们质量问题吗?” 而且调查也不一定方便,涉及网络方面没准还要去现场。 所以说 k8s 这种东西,只适合做 SaaS 服务。哪怕是客户那里有自己的私有云,自己的 k8s 集群,你也不要去碰,给他们发布镜像就好了,不然真的搞坏了那你这锅可就大了。 拿这套东西去把整套 SaaS 服务直接打包卖给客户,只能说是徒增部署和维护成本。 要是有自己的 SaaS 服务,为了省成本直接打包卖那还好说。 要是大部分客户都是这种,还要搞 all in k8s ,也就只能指望老板不懂技术了,不然一核算成本 CTO 怕是要直接跑路。 |