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

自建全套开源 DevOps 实践

  •  3
     
  •   bloodkey · 15 天前 · 3823 次点击

    国内的 Devops 云平台动辄封号,删库,屏蔽,国内云平台 devops 已死!自建 Devops 平台才靠谱。这里采用开源项目建立一个完善的 Devops 系统,基本运行良好!

    个人 devops 实践系统。整套系统可以完全内网实现,不用申请域名、ssl 证书,完全自己管理 dns ,自签名证书。

    配合 Consul 可以实现自动负载均衡 Consul

    大家有什么更好的项目推荐没?

    首发于个人 blog

    83 条回复    2022-05-22 11:26:10 +08:00
    bloodkey
        1
    bloodkey  
    OP
       15 天前   ❤️ 3
    尽量不使用 java 项目,不是 java 项目不好,而是同样的功能,java 项目是其它语言的至少 10 倍 cpu ,内存消耗,启动速度还贼慢

    整套系统基本打通了项目开发所有过程
    singerll
        2
    singerll  
       15 天前
    你怕不是对 devops 有什么误解,两个服务器监控都没有,你这些功能根本不是企业关心的,况且这个玩意根本就不是几个人能够完成的产品。

    至于你说的“国内的 Devops 云平台动辄封号,删库,屏蔽,国内云平台 devops 已死!”,先不说你说的对不对,你对私有云肯定是有误解的。。。
    duzhor
        3
    duzhor  
       15 天前
    esearch ? openstack ?多大的公司啊要给 devops 上这些?
    bloodkey
        4
    bloodkey  
    OP
       15 天前
    @singerll 整个系统普通 nas,32G 内存,跑起来完全没问题

    多节点监控,备份,负载平衡加服务器扩展,容易得很。ELK 集群对于小系统完全事多余的,portainer 就够用了

    少于 200 节点 k8s 也是多余的
    bloodkey
        5
    bloodkey  
    OP
       15 天前
    单台 nas, 32G 内存,上面 docker 跑起来完全没问题,nas 如果是 4 核,2Ghz 以上,支持 500 人同时开发应该没问题
    singerll
        6
    singerll  
       15 天前
    @bloodkey 别说容易的很,你去试试再说。
    至于你说的小系统,小系统上 devops 就是自找苦吃。
    bloodkey
        7
    bloodkey  
    OP
       15 天前
    我以及跑起来很长时间了
    @singerll
    bloodkey
        8
    bloodkey  
    OP
       15 天前
    是已经实现的系统
    bloodkey
        9
    bloodkey  
    OP
       15 天前
    不光是 devops,共跑了约 80 个 docker ,经过多次优化,平时负载低于 10.
    还是在运行 emby 的情况下,emby 可是很耗资源的
    IvanLi127
        10
    IvanLi127  
       15 天前
    不错欸
    bloodkey
        11
    bloodkey  
    OP
       15 天前
    搞云平台的看到我实现的系统是不是很瑟瑟发抖?
    可以说少于 1000 人的企业,使用这个基本就够用了
    云平台把数据交给别人,赌别人的道德不会私自偷拿你的数据?真是想多了。
    某垄断社交平台内部有专门的团队分析客户的数据,看有什么有价值的没有,是很多年前就爆出来的消息
    singerll
        12
    singerll  
       15 天前
    @bloodkey 我没有说你这个系统不能跑不稳定,我说的是不符合企业 devops 的需求
    xiaotianhu
        13
    xiaotianhu  
       15 天前   ❤️ 3
    做生意: 管他什么平台什么流程,先上线看看用户反馈再说,搞量搞内容第一位

    做技术:管他什么用户什么业务,先把运维搞完美
    bloodkey
        14
    bloodkey  
    OP
       15 天前
    @singerll 多大的企业,对 devops 有什么要求?

    整个系统每个节点都是可以随时扩容,多节点备份的
    Alliot
        15
    Alliot  
       15 天前
    @xiaotianhu 真相了 2333 感觉技术人都很容易陷入这样一个误区。
    bloodkey
        16
    bloodkey  
    OP
       15 天前
    @duzhor 对于企业自用,openstack 感觉就是多余,自用搭建个 k8s 云就够了,少于 200 节点直接 docker 就够了

    对外提供云服务的大型云平台才会考虑上 openstack
    scyuns
        17
    scyuns  
       15 天前
    还有没有更轻量级的
    hb0730
        18
    hb0730  
       15 天前
    我现在用的 gitea+drone 还 OK
    bloodkey
        19
    bloodkey  
    OP
       15 天前
    @scyuns 用 gitea+drone ,zentao 想用就用,资源占用极低,个人使用 8G 内存的 nas 跑起来完全够用
    bloodkey
        20
    bloodkey  
    OP
       15 天前
    gitlab 要跑起来至少要 8G 内存,jenkins 也是内存 cpu 占用大户。大于 16G 内存时考虑上这个
    32G 内存,图片中介绍的可以都跑起来!

    是不是非常节省内存,也省钱 O(∩_∩)O
    myu7815
        21
    myu7815  
       15 天前
    免费的 gitlab 无法使用 es 高级搜索吧
    Judoon
        22
    Judoon  
       15 天前
    别的不问了,就问问能支撑多大业务量吧
    huai
        23
    huai  
       15 天前
    腾讯的蓝鲸呢?
    bloodkey
        24
    bloodkey  
    OP
       15 天前
    @myu7815 自用,破解了 gitlabee 破解方法来自于官方文档,企业用就去买个授权
    bloodkey
        25
    bloodkey  
    OP
       15 天前
    @Judoon 看你的 cpu 和内存大小,看 gitlab 官方文档介绍,至少 2 核 8G 。4 核 8G 可以支撑 8000 用户

    gitlab 还支持建立多节点集群,就是说你服务器够多,搭建个类似 github 都行
    bloodkey
        26
    bloodkey  
    OP
       15 天前
    @huai 这套系统偏向基本研发,测试,运维。蓝鲸是大系统,多节点时才需要考虑的,类似 ELK ,K8S
    defunct9
        27
    defunct9  
       15 天前   ❤️ 1
    代码管理那一陀,可以用 onedev 代替
    Judoon
        28
    Judoon  
       15 天前
    @bloodkey 我问的是你当前的状态能支撑多少人同时使用。
    defunct9
        29
    defunct9  
       15 天前
    域名那一块,可以把 coredns 拿出来用
    bloodkey
        30
    bloodkey  
    OP
       15 天前
    @defunct9 onedev 查看了下,是个好项目,替代 gitlab 可以节约大量 cpu 和内存
    bloodkey
        31
    bloodkey  
    OP
       15 天前
    @Judoon 私人 nas ,只满足个人使用。还有全套视频,图书,音乐管理系统,多少人使用没有测试,cpu 和内存剩余范围支撑个几百号人同时使用 gitlab 应该没问题的
    Judoon
        32
    Judoon  
       15 天前
    @bloodkey 你的 nas 什么配置,既然没有测试。那压测一下,按你说的,几百个人同时使用。其他场景先不算,只考虑 10 个 gitlab-runner 同时运行,应该顶得住吧,2 个 golang ,2 个 java ,2 个 python ,2 个 node ,2 个其他,编译打包打镜像推送。

    你压测试试,看看数据,让大家信服
    defunct9
        33
    defunct9  
       15 天前
    @bloodkey 那么,你也会同意 coredns 替代 dnsmasq 的用法。虽然,dnsmasq 确实是个大杀器。
    defunct9
        34
    defunct9  
       15 天前
    最后,cmdb 用了很多,ralph 、netbox 、蓝鲸、open-cmdb ,没一个好用的,谁还有更好的推荐么?要机柜图,要网络拓扑图,要知道机器信息,要知道交换机端口配置,还要知道硬盘什么时候更换过。
    bloodkey
        35
    bloodkey  
    OP
       15 天前
    cpu j4125 4 核 14nm 2.00 GHz ~2.70 GHz
    SSD sata 接口的 读写 500MB/S
    32G DDR4. 2x16G 双通道

    @Judoon 个人开了 2 个 gitlab-runner ,个人 nas 是娱乐开发双重定位的,搞啥压力测试,再多用户用技术手段限制性能消耗,排队来支持更多用户才是王道。花费更多金钱去满足极少数情况的高压力是钱多的没处花
    bloodkey
        36
    bloodkey  
    OP
       15 天前
    @defunct9 你说的这些要求,很难用纯软件实现,要靠好的文档记录和交接才行
    bloodkey
        37
    bloodkey  
    OP
       15 天前
    @defunct9 用 dnscrypt 和 dnsmasq 的原因是满足 DOH 防污染,dns 去广告,和域名管理
    coredns 可以实现这三个要求么?
    bloodkey
        38
    bloodkey  
    OP
       15 天前
    自建 CA 是自己用脚本写的 CA 管理系统,IP ,泛域名,多域名签名一个证书搞定!
    wolfmei
        39
    wolfmei  
       15 天前
    我医院系统完全用不了这套东西
    defunct9
        40
    defunct9  
       15 天前
    @bloodkey DOH 、DOT 、劫持、管理都可以,cordns 是 k8s 的一部分。
    root01
        41
    root01  
       15 天前
    谢谢楼主的博客提供的学习教程
    lialzm
        42
    lialzm  
       15 天前
    open-cmdb 是这个项目吗

    https://github.com/open-cmdb/cmdb
    WIN2333
        43
    WIN2333  
       15 天前
    你对 java 也不是也有什么误解,口说无凭,拿证据出来
    bloodkey
        44
    bloodkey  
    OP
       15 天前
    @lialzm 就是这个

    @WIN2333 你自己去运行试一下 jira 和 zentao ,对比一下就知道差距
    WIN2333
        45
    WIN2333  
       15 天前
    @bloodkey 那是 jira 的问题不是 Java 的问题,另外,大部分企业选择的都是 jira ,而不是 zentao 哈
    bloodkey
        46
    bloodkey  
    OP
       15 天前
    @WIN2333 java 插件国内加载异常的慢,cpu 和内存消耗大,是怎么也掩饰不了的
    struggle001
        47
    struggle001  
       15 天前
    管理 18 个机柜 OpenStack 集群的运维飘过。。。3 个柜子以内 pve 挺香的,后端用 ceph
    不过你想做什么东西,我没看懂。。
    还有这个东西太大了,如果公司业务需要支撑,还好,否则就算开发好了 也没人用啊
    struggle001
        48
    struggle001  
       15 天前
    文中的好多东西都在用 只有 nextcloud 是给公司内部提供的云盘平台。gitlab 也在用。。elk 也在用,zabbix ,cacti ,cobbler 等等。我都是野路子。。。面向业务做开发部署。好多东西都是靠脚本完成。。服务器虽然很多,但是也没用 ansible 这些东西。麻烦。
    struggle001
        49
    struggle001  
       15 天前
    @defunct9
    netbox 这个可以尝试当 cmdb 用,不过还是要考个人梳理层级关系。
    至于网络监控靠 Prometheus 和 grafana 好像也还行。不过 cacti 也要当个备份。。拓扑这东西真的没发现更好的软件。。
    cacti 气象图有点弱了
    bloodkey
        50
    bloodkey  
    OP
       15 天前
    @struggle001 目标是单节点,最低成本,实现一个开源可用的 devops
    什么 k8s ceph 中小企业完全不需要
    struggle001
        51
    struggle001  
       15 天前
    @defunct9 没看清你写 netbox 了,这个梳理清楚还挺好用的,不过前期规划好挺重要的。
    我们的资产管理 加上百台网络设备和端口管理 ip 管理 都在用这个。
    struggle001
        52
    struggle001  
       15 天前
    @bloodkey 挺好的,期待你的作品。其实我们现在系统也挺多的,东一个 西一个 没统一的入口挺恶心的。现在唯一可以搞的是有统一的 passport 或者 oss 。。
    bloodkey
        53
    bloodkey  
    OP
       14 天前
    @struggle001 这套系统已经是可运行的,开发,测试,运维各个环节基本打通
    文档太多,功能太复杂,只用起来部分功能

    有啥改进建议没?
    struggle001
        54
    struggle001  
       14 天前
    @bloodkey 东西太多了,适合的才是最好的。
    这套平台是不是模块化的,可以自己选择模块,松耦合。如果是,那就更好了。
    struggle001
        55
    struggle001  
       14 天前
    @bloodkey nginx 没考虑高可用吧。。哈哈
    bloodkey
        56
    bloodkey  
    OP
       14 天前
    @struggle001 本身都是 docker 运行,可以根据需要用到那个就启动运行那个 docker
    nginx 高可用,考虑用 dns 多线路负载均衡,dnsmasq 还没研究出来怎么配置多线路负载均衡与掉线自动切换
    defunct9
        57
    defunct9  
       14 天前
    @struggle001 cacti 已死,画个聚合图要死人了。换 librenms 吧。
    defunct9
        58
    defunct9  
       14 天前
    @bloodkey nginx 普通高可用 keepalived 或者 ucarp 都可以了。怎么双上联那是网管的事了。
    zhaohua
        59
    zhaohua  
       14 天前   ❤️ 1
    我司现在大约 15 人左右的研发团队,说说我的经验,一开始也想着自建一些基础设施, 当然没 op 这么大规划,只想把基础监控告警做起来, 折腾了半年 elk, grafana ,prometheus , k8s.
    后来发现相比云服务,成本高不说(别说一台 32G nas ALO 不敢,再者除了硬件,人员也要开工资),受限于性能体验还差, 除了 gitlab+drone 其他能上云的都上云了, 沟通和组织架构用企业微信,项目管理用 tapd 文档用语雀, 监控日志告警用阿里云,负载均衡云 slb. 消息队列用 ons. 感觉非常满意.
    自建 devops 小厂就别考虑, 老老实实上云吧,搭一套容易,维护起来就要命了.
    zhaohua
        60
    zhaohua  
       14 天前
    你要是运维能说服老板折腾,那这套对个人生涯是极好的.要是技术负责人就算了,别给自己挖坑.
    dreamusername
        61
    dreamusername  
       14 天前
    Gitlab+Lark+Zadig 就足够了
    betainCao
        62
    betainCao  
       14 天前
    公司里的 devops 一般是从 0->1 的过程,你这套创业公司用不起,从 0->1 需要什么拿什么,而不是上来就是你这一套。
    betainCao
        63
    betainCao  
       14 天前
    @zhaohua #59 云原生时代,上云才是最终解。自建说实话成本高的吓人!
    bloodkey
        64
    bloodkey  
    OP
       14 天前
    @betainCao 把数据交给别人就是找死
    最近不是某 ceo 在微博质问为啥某社交通信公司员工查看他们私密文件?留下访问记录?

    动动手指就删光你所有文件,你能怎么着? 注册账号时就同意了别人不用负任何责任,闲死得不够快?

    公有云解决不了信任问题,私有云才是未来!

    再说,这套系统这么简单,而且都是可以需要那个就安装运行那个,怎么到你这里就得上全套?
    bloodkey
        65
    bloodkey  
    OP
       14 天前
    使用 X 里云,然后发现数据被窃取,人家利用你的数据造一个一模一样的项目,并取代你,这种新闻可以去搜一下,一搜一大把
    bloodkey
        66
    bloodkey  
    OP
       14 天前
    真实例子,某 ip 数据库服务,使用 x 里云,然后被克隆
    维权不成,没有任何说法
    bloodkey
        67
    bloodkey  
    OP
       14 天前
    @zhaohua 个人认为刚好相反,如果公司的产品没啥技术含量,上云没有关系

    如果数据,代码是核心资产与竞争力,上云就是找死!

    而且,自己控制数据,对有利于研发,运维的,不可替代性更高。都上云,才是更容易被替代
    bloodkey
        68
    bloodkey  
    OP
       14 天前
    在数据安全,企业生死存亡面前,成本什么的都是浮云,成本再高有被克隆,被复制死亡成本高么?

    再说,这套系统也是从少到多,从小到大,慢慢优化,扩展的,硬件成本也是随着需求变化而变化的,随着业务扩展而增加成本,一开始单节点单服务器就可以满足要求了,后面业务增加慢慢扩展为集群,k8s 等
    qfdk
        69
    qfdk  
       14 天前 via iPhone
    呃 看了半天才明白想表达什么 . 简单来说就是你被某些平台封号了 然后自己摘了些开源工具搭了一个差不多可以自用的. 动手能力 OK
    struggle001
        70
    struggle001  
       14 天前
    @defunct9 我们混着用
    yyttrr
        71
    yyttrr  
       14 天前
    感觉部署那里缺了一层,不是简单的一个镜像就能带过的,例如 k8s 里面一个服务的 env 、hpa 、资源限制这些都是部署的一部分,需要有个类似 helm chat 的东西管理。还有一个镜像可能会部署到多种环境,例如常驻势实例在 k8s 上,临时扩容的扔到云厂商的函数计算里面
    wazggcd
        72
    wazggcd  
       14 天前 via Android
    @bloodkey 私有云部署在自己的服务器上,外网隔离,不会有隐私问题
    kongkx
        73
    kongkx  
       13 天前 via iPhone
    现在个人运维都搞这么复杂了吗?
    bloodkey
        74
    bloodkey  
    OP
       13 天前
    @yyttrr docker 参数中可以限制 cpu 内存,可以 portainer 配合 git 管理并部署 docker compose
    k8s 太耗资源了,至少 5 个节点才能把 k8s 完整跑起来,每个节点光 k8s 不包括其它实例,就至少需要 8G 内存
    wuxqing
        75
    wuxqing  
       13 天前
    @betainCao 我们小团队原先也是用某家云的,1 年成本 20 多万,还经常负载高了把 ECS 卡死,只能重启,重启一下有时候要 10 多分钟,运维成本也是同样存在的。后来直接搞了几台服务器托管,快 2 年了,稳得很,每年还能节省将近 20 万成本。
    yyttrr
        76
    yyttrr  
       13 天前
    @bloodkey 我这里最小的一个集群也有 20 个 32 核 128G 的虚拟机了,k8s 解绑了容器和机器,比 docker 方便太多太多了
    evilStart
        77
    evilStart  
       13 天前 via Android
    你这套理论上可以公司用,但你怎么说服老板自己搭呢?
    bloodkey
        78
    bloodkey  
    OP
       13 天前
    @yyttrr 我跑的是最省钱方案,单节点低功耗 nas 服务器,当然没法和专业的服务器相比了,小于 200 节点的,还是直接 docker 省钱。k8s 的方便是消耗 cpu 和内存为前提的
    bloodkey
        79
    bloodkey  
    OP
       13 天前
    @evilStart 就说数据安全啊,举几个被 x 里云克隆,无法维权的例子,血淋淋的教训在前面,头铁的应该很少
    bloodkey
        80
    bloodkey  
    OP
       13 天前
    @wuxqing 一个自建 devops 省钱的真实例子,和云厂商鼓吹的上云省钱刚好相反

    自建需要各个公司养更多开发和运维,对所有开发和运维人员都有利。上云,只对云厂商有利。

    鼓吹上云省钱,方便的,可以说不是无知就是利益相关方了
    jack778
        81
    jack778  
       6 天前
    @bloodkey 好的产品也要有好的营销
    jack778
        82
    jack778  
       6 天前
    创业公司要的是最低的成本来实现业务,至于上云或者自建,都是无所谓的,时间成本才是他们最关心的.试问有几家公司能做出被 bat 觊觎的产品呢?
    jack778
        83
    jack778  
       6 天前
    @wuxqing 应该是服务器超卖了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2710 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:41 · PVG 11:41 · LAX 20:41 · JFK 23:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.