开源的DevOps生态链条简介

一    devops概念

Devops既不是软件、也不是网站、更不是代码,而是'一组方法(method)、过程(process)与系统(system)的统称'
Devops包含了很多优秀想法和原则,它鼓励'开发部门和运维部门通力合作'

在DevOps环境中,开发人员和系统管理员会构建一些关系、流程和工具,从而更好的与客户互动,最终提供更好的服务
'勉励':成为一个Devops工程师'不是一朝一夕'的过程,长时间的经验总结

二、开发工具

涉及:版本控制&协作开发

1、版本控制系统 Git

Git是一个开源的分布式'版本控制系统',用以有效、高速的处理从很小到非常大的项目版本管理!

2、代码托管平台 GitLab

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个'自托管的Git项目仓库',可通过'Web界面'进行访问公开的或者私人项目,github的优秀临摹者

3、版本控制系统 Subversion

Subversion 是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。

二、自动化构建和测试

1、Apache Ant(早期)

Apache Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于'Java环境中'的软件开发。

2、Maven

Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的'高级项目管理'工具
由于 Maven 的'缺省构建规则有较高的可重用性',所以常常用两三行 Maven 构建脚本就可以构建简单的项目,使用 Ant 则需要十几行。
事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且公司项目采用 Maven 的比例在'持续增长'

7、Gradle

Gradle 就是可以'使用 Groovy 来书写构建脚本的构建系统',支持依赖管理和多项目,类似 Maven,但比之简单轻便。

三、持续集成&交付

1、Jenkins

Jenkins 的前身是 Hudson,它是一个'可扩展的持续集成引擎',目前的主流。

4、Fabric

fabric8 是开源 Java Containers(JVMs) 深度管理集成平台。有了 fabric8 可以非常方便的从 UI 和 UX 一致的中央位置进行自动操作,配置和管理。

fabric8 同时提供一些'非功能性需求',比如配置管理,服务发现故障转移,集中化监控,自动化等等

四、部署工具

容器平台

1、Docker

Docker 是一个开源的应用容器引擎,'让开发者可以打包他们的应用以及依赖包到一个可移植的容器中',然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

配置管理

1、Chef

Chef 是一个系统集成框架,为整个架构提供配置管理功能

2、Puppet

Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户、CRON作业,和主机一起显然离散元素,如包装,服务和文件。

'欧美'用的比较多,似乎还收费

3、Bash

Bash 是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

4、Saltstack

Saltstack 可以看做是func的增强版+Puppet的弱化版,使用'Python编写'。非常好用,快速可以基于EPEL部署。Salt 是一个开源的工具用来管理你的基础架构,可轻松管理成千上万台服务器。

5、Ansible

Ansible 提供一种'最简单的方式用于发布'、管理和编排计算机系统的工具,你可在数分钟内搞定。Ansible 是一个'模型驱动的配置管理器',支持多节点发布、远程任务执行。

默认使用 'SSH 进行远程连接'。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。

'主流的CD工具'

微服务平台

1、OpenShift

OpenShift 是由'红帽'推出的一款面向开源开发人员开放的平台即服务(PaaS)。 OpenShift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试、运行和管理他们的应用。

'建立在k8s之上'

2、Kubernetes

Kubernetes 是来自 'Google 云平台'的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用

'业界的标准'

3、Mesosphere

Apache Mesos 是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark

阿里巴巴之前k8s产品'采用的方式'

服务开通

1、Puppet

Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。

2、Docker Swarm

Docker Swarm 是一个Dockerized化的分布式应用程序的本地集群,它是在Machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。

五、维护

日志记录

1、Logstash

Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台,你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。

2、CollectD

collectd 是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。

3、StatsD

StatsD 是一个简单的网络守护进程,基于 Node.js 平台,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,例如 Graphite。

六、监控,警告&分析

1、Nagios

Nagios 是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。

2、zabbix

zabbix 是一个基于Web界面的提供分布式系统监视以及网络监视功能的'企业级的开源解决方案'

3、Kibana

Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口,可使用它对日志进行高效的搜索、可视化、分析等各种操作,数据展示。

相关参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值