国内的Devops云平台动辄封号,删库,屏蔽,还多次发生数据泄密,项目被云平台克隆事件,国内云平台devops已死!数据安全没法保证,自建私有Devops平台才靠谱。这里采用开源项目建立一个完善的低成本Devops系统,基本运行良好!
目标:单节点,以最低成本,最低消耗,使用开源软件实现一个可用的DevOps!满足中小企业的研发、测试、运维需求。并对后续如何扩展本套DevOps系统做了项目,成本,路线升级规划,可以一直扩展到业界最前沿最大系统。
整套系统已经跑起来很长时间了!单节点Nas服务器,32G内存,共运行了约80个Docker,优化到平均负载10以下。
Devops框架图解
下面系统大多可以做负载平衡,多节点备份,可以扩展为一个高可用,大中央平台。
珍爱生命,使用
Docker
!
开源云平台生死连问
珍爱生命,不建议使用国内云平台。
什么是大教堂?
什么是集市?
什么是信任链?
什么是开源生态?
为什么要做开源生态?
怎么做开源生态?
开源生态的土壤肥力维护如何做?
这些问题没想明白,没想到如何做的是没法做开源的。
国内平台连种子嫩芽都要收割,到处收费,动辄删库,屏蔽,封号,注定做不了开源生态。
Consul
自动负载均衡
基于服务自动发现和注册的负载均衡,负载均衡的方式没有变,只是多了一些外围组件,当然这些组件对
Client
是不可见的,client
依然只能看到Nginx
入口,访问方式也没变化。
Github
仓库备份
最优秀的资源,大多只在短时间内出现!
平时多备份你重要的仓库,以及你使用的仓库的重要上下游仓库!
配置要求
个人Nas配置
- cpu j4125 4 核 14nm 2.00 GHz ~2.70 GHz
- SSD sata 接口的 读写 500MB/S
- 32G DDR4. 2x16G 双通道
上图中介绍的系统都是上面配置的单服务器中可以运行的。
如何以最低的配置,最少的内存运行起来最多的功能才是本文的追求,花费更多金钱去满足极少数情况的高压力是钱多的没处花。
8G
内存的nas 就可以运行gitea + drone
,zentao
想用就用gitlab
要跑起来至少要2核8G
内存,jenkins
也是内存cpu
占用大户。大于16G
内存时考虑上这个- 4核
32G
内存的nas,图片中介绍的可以全都跑起来!
可靠性
ELK
集群监控对于单服务器来说完全多余,netdata
监控也不错,portainer
就够用了,以后为了节约资源,portainer
说不定也会被干掉,大多数时候命令行监控就够了。少于200节点K8S
就是多余的。
数据安全
云平台把数据交给别人,赌别人的道德不会私自偷拿你的数据?真是想多了。
某垄断社交平台内部有专门的团队分析客户的数据,看有什么有价值的没有,是很多年前就爆出来的消息。
自建
DevOps
成本其实相当的低!
整套系统可以从少到多,从小到大,慢慢优化,扩展的。硬件成本也是随着需求变化而变化的,随着业务扩展而增加成本,一开始单节点单服务器就可以满足要求了,后面业务增加慢慢扩展为集群,k8s 等。
数据,代码是公司核心资产与竞争力的公司,上云赌别人的人品就是找死。你注册账户的时候,就同意了,无论别人随意删除你的数据,或者窃取你的数据都是不用付任何责任的,再说,整个系统数据都在别人手上,你要维权也没有证据。
备份
UPS
电源,防止意外断电rsync
备份,对于大多数人,已经够用了- 文件系统快照
- 离线每日,或者每周冷备份
- 大系统,多台服务器的时候可以用多节点集群备灾。
nginx
,harbor
,gitlab
,elasticsearch
等都可以使用集群
扩展性
上面说的都可以单服务器搞定。多台服务器的时候可以用多节点集群备灾。
nginx
,harbor
,gitlab
,elasticsearch
等都可以使用集群。多于200节点,大于3台服务器以后考虑上
K8S
。ELK监控之类的这时候可以上了。蓝鲸智云标准运维这时候也可以考虑了。再次扩大的时候可以考虑
Proxmox VE(PVE)
+ceph
更大的系统,或者对外提供云平台服务的时候可以考虑上
OpenStack
项目介绍
ELK
消耗资源很多,至少上百节点以上再考虑上这个
portainer
->netdata
->ELK
,zabbix
cacti
zabbix
ansible
CMDB
PVE
Proxmox VE(PVE)
CEPH
OpenStack
其它项目
大家还有啥好项目建议?
onedev
onedev 是替代Gitlab
的极佳候补,看文档介绍,潜力无限!
smartdns
一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验。
awesome-selfhosted
这里你能找到各种各样的自建 Docker 服务
私有Git服务器整理
- ruby系:GitLab。这个没什么好说的,说到私有git服务器第一反应必然是这个,似乎也是目前已知的开源git服务器中体量最大的,功能齐全,界面美观。
- golang系:Gogs、gitea、forgejo。这仨一脉相传,简单概括来说,就是先有的gogs,然后一群贡献者嫌gogs更新慢、不加新功能,然后fork出了gitea;然后gitea搞了几年之后开公司了,codeberg担心gitea搞收费,就又从gitea代码fork出了一个forgejo自己开发。
- Java系:gitbucket、GitBlit、OneDev。这三家都是个搞个的,其中OneDev比较新,界面做的也比较现代化。
系列教程
Devops系列
- 自建全套开源Devops开发系统
- Git介绍以及分支模型图解
- 三万字无坑搭建基于Docker+K8S+GitLab/SVN+Jenkins+Harbor持续集成交付环境
- DevOps系列—【Jenkinsfile+Dockerfile+nginx+vue】
- 项目开发管理工具推荐
- Gitlab的安装及使用教程完全版
- Gitlab的安装及使用
- 那些有用的Github工具介绍!Action、app、workflow等