现状:
网络媒体行业,运维和开发流程都很传统(落后)。有 200 来台物理服务器,由于没有个 IaaS 平台,OS 直接安装在物理机上,靠的是人力一台一台安装维护,传统 LNMP 架构,环境搭建配置基本靠脚本来做。用 docker 容器来跑部分应用,应用部署和更新都是用 ftp 上传。用 Nagios 和 Cacti 做系统和应用的监控报警,需要在被监控的机器上一个个安装客户端并配置。没有集中的日志收集和分析处理平台,各个应用和系统日志都分散在不同机器上。用 bucula 做数据备份。用 gitlab 做代码托管,没有启动 CI/CD,也没有 code review,不写测试,基本靠开发人员手工点击无明显 bug 就上线了。
考虑到这样下去实在落后,对公司对个人成长都有极大的坏处,必须做出改变了。看到一篇讲京东 JDOS2.0 的文章,受里面提到的技术栈启发,决定对现有架构做改造。
首先是搭建 IaaS 平台,可选方案有 Vmware vSphere 和 OpenStack,前者需要商业授权,价格昂贵,但相对稳定且对运维人员要求不高;后者开源免费但稳定性存疑,并且专业要求高;怎么选?
其次是 PaaS 平台,打算选择 Kubernetes+docker 的方案。集中日志处理,采用 ElasticSearch + Logstash + Kibana 方案;采用 Jenkins 做 CI/CD ;运维方面,使用 Ansible 做自动化配置管理。
最后需要实现的一个一站式解决方案如下:
1、开发者提交代码到源码管理库
2、触发 Jenkins Master 生成构建任务
3、Jenkins Master 使用 Kubernetes 生成 Jenkins Slave Pod
4、Jenkins Slave 拉取源码进行编译打包
5、将打包好的文件和 Dockerfile 发送到构建节点
6、在构建节点中构建生成镜像
7、将镜像推送到镜像中心 Harbor
8、根据需要在不同环境生产 /更新应用容器
可以想见,要达到上面的效果,有大量的工作要做,有无数的坑等着。各位有何看法?
1
whileFalse 2018-04-11 13:33:42 +08:00 1
中小公司难道不该直接用云吗?
|
2
cloverstd 2018-04-11 13:45:04 +08:00
应该结合 PaaS 和 IaaS 吧
就算是容器,也可以跑在虚拟机里 |
3
tao1991123 2018-04-11 13:53:15 +08:00
中小型公司的话 直接上云吧
|
4
defunct9 2018-04-11 14:28:29 +08:00
开 ssh,让我上去搞
|
5
yidinghe 2018-04-11 14:32:40 +08:00
物理服务器卖掉,上云。跟运维团队说你们以后再也不用听风扇嗡嗡叫了,服务器有问题也不必跑到机房来,而是可以随时在线处理。
|
7
hezhile 2018-04-11 15:54:14 +08:00
zstack 可以了解一下
|
8
wampyl 2018-04-11 16:29:48 +08:00
mark 回来看各位的想法。
|
10
tomczhen 2018-04-11 17:08:55 +08:00 via Android
愿意讨论分享的估计公司都会嫌弃没实际大规模实践经验。而有实际大规模实践经验的,我估计是懒得跟你在小众论坛浪费时间的。
|
11
towser 2018-04-11 20:42:33 +08:00
中小企业应该在 PaaS 之上构建自己的技术平台。
|
12
gamecreating 2018-04-11 21:39:07 +08:00
哪家公司 ....这么 low
|
13
likuku 2018-04-11 21:44:30 +08:00
LZ 的 8 条需求,aws,aliyun,还有一些国内云平台,就是提供现成服务的了嘛...
君不见历史上搞“平台化”的绝大多数项目 /公司的下场么?真没几个成功的 成功案例也有: amazon, google, MS, alibaba,tencent |
14
opengps 2018-04-11 21:56:26 +08:00 via Android
200 台物理机做成虚拟化啊
|
15
FreeEx 2018-04-11 22:06:44 +08:00 via Android
@gamecreating 看样子你们公司非常高大上了?说说你们咋搞的呗
|
16
heww 2018-04-11 22:34:51 +08:00
自己做会 OpenStack 好累的!
|
17
heww 2018-04-11 22:36:45 +08:00
可以直接用 k8s 来在物理机上做 PaaS 运行 App,RDB 什么还是人肉来处理。
|
18
dexterzzz 2018-04-11 22:39:30 +08:00
把 200 台服务器换成 4 台 Azure Stack
|
19
tempdban 2018-04-11 22:39:52 +08:00 via Android
我裸装 openstack 还不到半小时…
|
22
feverzsj 2018-04-11 22:55:41 +08:00
200 台服务器的,可以考虑申请云服务商的经销商,你可以从服务商那里获得折扣和返点,实际总体费用会低得多
|
23
Tuisku 2018-04-11 23:03:21 +08:00
XenServer 等一系列衍生技术、产品了解一下
|
24
mchong 2018-04-11 23:16:13 +08:00
把 200 台服务器按照负荷整合为 10-20 台性能高的服务器跑虚拟化。虚拟化建议商业产品,除非你们能搞定 openstack
|
25
aleechan 2018-04-11 23:38:16 +08:00
@mchong OpenStack 17,18 年好像没有什么热度了,你们还知道现在最新的社区版本叫什么吗? 好像浪潮已经过去了。
|
26
glues 2018-04-12 01:27:38 +08:00 via iPhone
找个好点的 SA,200 台服务器管理起来也并没有什么难度。然后所有的应用都 docker 化,管理起来就容易多了
|
27
KarPy 2018-04-12 10:34:58 +08:00
直接上 openstack 虚拟化,openstack 也有 docker 管理项目啊。
其实 openstack 的 dashboard 已经够用了。 |