运维工作的发展历程简要梳理

由最初的手动执行-->整理文档,制定规范,逐步实现标准化后才能批量操作-->工具化编写简单的工具,实现初步的工具化-->借用脚本或者编程能力实现自动化-->根据大量的数据和案例实现智能化

运维自动化的步骤的三个层级

Bootstraping,系统安装:装机层级,可以在裸机上(cobbler),或者在虚拟化上安装,工具如下

裸机:pxe, cobbler

虚拟机e:image file template(通过创建合适的示例作为模板)

Configuration,配置:配置层级,配置资源和服务,如安装包,启动服务,工具如下

ansible(agentless)

puppet(master/agent)(ruby)

saltstack(python)

Command and Control:部署或者执行任务,指挥机器做相关操作,工具如下

ansible(playbook)

fabric(fab)

func

运维工具根据有无agent的分类:

agent:puppet, func, ...

agentless(ssh,):ansible, fabric

程序发布的不同阶段如下:

    人工智能(手动发布)-->脚本-->发布程序(运维工具)

程序发布一般的要求如下:

1、不能影响用户体验;

2、系统不能停机;

3、不能导致系统故障或造成系统完全不可用;

灰度发布

灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

恢复发布模型:在调度器上下线一批主机(标记为维护模式)--> 关闭服务 --> 部署新版本 --> 启动服务 --> 在调度器上启用这一批主机;

如更改发布路径:

/webapps/tuangou

/webapps/tuangou-1.1

/wepapps/tunagou-1.2

小结

运维的相关概念实在是不能再多了,本文主要是在学习工具化运维puppet和ansible时,遇到的一些相关概念,单独分离到该博客里进行记录。后期如果有重要概念,也会记录到该博客里。