V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuyl
V2EX  ›  程序员

中小公司如何打造云原生应用平台?

  •  
  •   xuyl · 2018-04-11 13:00:12 +08:00 · 3314 次点击
    这是一个创建于 2402 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现状:

    网络媒体行业,运维和开发流程都很传统(落后)。有 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、根据需要在不同环境生产 /更新应用容器

    可以想见,要达到上面的效果,有大量的工作要做,有无数的坑等着。各位有何看法?

    27 条回复    2018-04-12 10:34:58 +08:00
    whileFalse
        1
    whileFalse  
       2018-04-11 13:33:42 +08:00   ❤️ 1
    中小公司难道不该直接用云吗?
    cloverstd
        2
    cloverstd  
       2018-04-11 13:45:04 +08:00
    应该结合 PaaS 和 IaaS 吧
    就算是容器,也可以跑在虚拟机里
    tao1991123
        3
    tao1991123  
       2018-04-11 13:53:15 +08:00
    中小型公司的话 直接上云吧
    defunct9
        4
    defunct9  
       2018-04-11 14:28:29 +08:00
    开 ssh,让我上去搞
    yidinghe
        5
    yidinghe  
       2018-04-11 14:32:40 +08:00
    物理服务器卖掉,上云。跟运维团队说你们以后再也不用听风扇嗡嗡叫了,服务器有问题也不必跑到机房来,而是可以随时在线处理。
    xuyl
        6
    xuyl  
    OP
       2018-04-11 15:14:38 +08:00
    @yidinghe 是直接上 PaaS 还是租用 IaaS 呢?
    hezhile
        7
    hezhile  
       2018-04-11 15:54:14 +08:00
    zstack 可以了解一下
    wampyl
        8
    wampyl  
       2018-04-11 16:29:48 +08:00
    mark 回来看各位的想法。
    xuyl
        9
    xuyl  
    OP
       2018-04-11 16:59:37 +08:00
    @hezhile 看了下,这东西没什么人关注啊,坑多不敢入。
    tomczhen
        10
    tomczhen  
       2018-04-11 17:08:55 +08:00 via Android
    愿意讨论分享的估计公司都会嫌弃没实际大规模实践经验。而有实际大规模实践经验的,我估计是懒得跟你在小众论坛浪费时间的。
    towser
        11
    towser  
       2018-04-11 20:42:33 +08:00
    中小企业应该在 PaaS 之上构建自己的技术平台。
    gamecreating
        12
    gamecreating  
       2018-04-11 21:39:07 +08:00
    哪家公司 ....这么 low
    likuku
        13
    likuku  
       2018-04-11 21:44:30 +08:00
    LZ 的 8 条需求,aws,aliyun,还有一些国内云平台,就是提供现成服务的了嘛...

    君不见历史上搞“平台化”的绝大多数项目 /公司的下场么?真没几个成功的

    成功案例也有: amazon, google, MS, alibaba,tencent
    opengps
        14
    opengps  
       2018-04-11 21:56:26 +08:00 via Android
    200 台物理机做成虚拟化啊
    FreeEx
        15
    FreeEx  
       2018-04-11 22:06:44 +08:00 via Android
    @gamecreating 看样子你们公司非常高大上了?说说你们咋搞的呗
    heww
        16
    heww  
       2018-04-11 22:34:51 +08:00
    自己做会 OpenStack 好累的!
    heww
        17
    heww  
       2018-04-11 22:36:45 +08:00
    可以直接用 k8s 来在物理机上做 PaaS 运行 App,RDB 什么还是人肉来处理。
    dexterzzz
        18
    dexterzzz  
       2018-04-11 22:39:30 +08:00
    把 200 台服务器换成 4 台 Azure Stack
    tempdban
        19
    tempdban  
       2018-04-11 22:39:52 +08:00 via Android
    我裸装 openstack 还不到半小时…
    heww
        20
    heww  
       2018-04-11 22:41:06 +08:00
    @tempdban #19 OpenStack 的安装还是很容易的,但维护呢?难道安装完以后就不管了。
    tempdban
        21
    tempdban  
       2018-04-11 22:46:24 +08:00 via Android
    @heww 怎么叫维护?
    feverzsj
        22
    feverzsj  
       2018-04-11 22:55:41 +08:00
    200 台服务器的,可以考虑申请云服务商的经销商,你可以从服务商那里获得折扣和返点,实际总体费用会低得多
    Tuisku
        23
    Tuisku  
       2018-04-11 23:03:21 +08:00
    XenServer 等一系列衍生技术、产品了解一下
    mchong
        24
    mchong  
       2018-04-11 23:16:13 +08:00
    把 200 台服务器按照负荷整合为 10-20 台性能高的服务器跑虚拟化。虚拟化建议商业产品,除非你们能搞定 openstack
    aleechan
        25
    aleechan  
       2018-04-11 23:38:16 +08:00
    @mchong OpenStack 17,18 年好像没有什么热度了,你们还知道现在最新的社区版本叫什么吗? 好像浪潮已经过去了。
    glues
        26
    glues  
       2018-04-12 01:27:38 +08:00 via iPhone
    找个好点的 SA,200 台服务器管理起来也并没有什么难度。然后所有的应用都 docker 化,管理起来就容易多了
    KarPy
        27
    KarPy  
       2018-04-12 10:34:58 +08:00
    直接上 openstack 虚拟化,openstack 也有 docker 管理项目啊。
    其实 openstack 的 dashboard 已经够用了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:40 · PVG 06:40 · LAX 14:40 · JFK 17:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.