深入理解Openstack自动化部署
前言
说实话,看到自己在博客园的排名感到惭愧,因为自己最近两年没有持续地在博客园上写技术博客了,有人私下问我是不是荒废了?翻翻15年和16年的博客,真的是少的可怜。一方面的确由于岗位的变化,导致了工作变得越来越忙, 一方面写作的精力放在了公司技术公众号,内部技术和管理文档,摄影博客上了。
我一直很感慨时代的变化,读研的时候,我还在图书馆翻着一本本厚厚的专业书,短短几年后的今天知识获取来源已变得非常广泛:博客,公众号,微博,技术分享会等等,书籍的影响力反而变得渺小了。
但我内心里一直非常渴望自己能够静下心来,把近年来获取的知识和经验整理,并作专注性较强的输出。
因此,很高兴6月的第一周,由一帮大龄儿童们一起发布了《深入理解Openstack自动化部署》的第一个正式版本。说起部署这个事儿,一直伴随着Openstack诞生到现在,称得上是一个非常古老的话题了,然而在最近Austin Summit上,我们依然可以看到大量与部署有关的topic。
部署发展到今天,除了向部署速度更快和支持能力更强的方向发展,更重要的是部署作为运维体系中的一个重要环节,所有人都在考虑它的延展性,也就是如何能使用统一的平台或工具来完成Openstack集群的安装,配置,变更,升级和状态管理,因此如何选项显得非常重要。
为什么是PuppetOpenstack Modules?
Puppet是目前CMS领域中的领头羊,而PuppetOpenstack Modules项目(简称POM)诞生于12年,13年中进入到Openstack官方孵化项目(Stackforge),随后又成为了Openstack官方Governance项目。POM之所以能取得成功的原因主要在于其获得了大量公司和工程师的参与,甚至有一些主流的部署工具直接集成了POM:如Mirantis的Fuel,Redhat的Packstack, Openstack官方的TripleO,UnitedStack的Ctask都直接使用POM的upstream codes作为Openstack服务的部署模块,并且连续7次在Openstack社区的User survey中,位列deployment tools领域的第一。
我们是谁?
UnitedStack DevOps Team是一支很年轻的团队,不过我们持续专注在Openstack部署领域已有5个年头,积累了一些经验,因此想和各位分享:
- 在开源社区:早在12年底,POM项目尚处于雏形阶段我们开始参与其中,并促成了13年 POM项目从Puppetlabs官方项目转入到Openstack社区,我们对于POM项目的贡献也得到了社区的认可,其中xingchao在13年的时候,成为该项目的核心开发人员。
- 在工程领域:截止到2016年5月,我们一共使用了96个puppet modules, 6台PuppetMaster服务器, 集中管理着87个Openstack集群, 7套不同的部署环境,支撑了近3500台Openstack集群的服务器,我们经历了Puppet版本的数次升级,内部代码的多次重构和POM的多次版本升级,每日Openstack线上集群的频繁变更,我们也经历了Puppet,PuppetDB的性能调优,踩过了无数个看不见的明坑和暗坑。
本书讲什么?
本书是关于Openstack自动化部署工作核心部分的讲解:PuppetOpenstack modules和相关基础modules的深入分析和最佳实践。
通过这本书,你可以学习到:
- 当前最流行的部署项目PuppetOpenstack的代码级深入讲解
- Openstack Mitaka版本核心服务的部署讲解
- 关于配置管理的最佳实践总结
- Puppet的一些使用技巧
- 如何一本正经地胡说八道
举个栗子,在puppet-keystone模块章节中,我们首先从Keystone的基本概念开始介绍,试图为读者理清楚v3中关于domain,group,project,role,user之间的关系。然后我们通过一个快速部署keystone的实例让你先睹为快,接着我们就深入到核心代码中去讲解是如何做到的,最后我们会对本节重要的内容做一个小结。当然光看不练就是假把式了,我们为读者们精心准备了一些习题,让读者动手实际练习,加深理解。
下个版本?
我们认为docs is codes。 因此,本书也遵循常见的release规范。在初期,我们会在每月第一周发布新版本以保持快速地迭代,同时我们也会保持对于已完成章节的内容更新,如何你想要了解更多细节,请参阅本书最后的 版本日志 一节。
如何参与?
本书遵循开源管理方式,使用markdown语法编写,git作为版本控制,并托管在github上,如果你也对本书感兴趣,有任何改进的建议和想法,欢迎加入我们一起来添砖加瓦。
更多细节请参与本书的 如何参与 一节。
关于出版
目前虽然有多家出版社联系,但我没有答应,一是本书还有大量的后续编写计划没有开始,二是觉得一本书至少得经历多次的迭代才能变得成熟和稳定。所以,如何问我什么时候会出纸质版本?也许要等到我们发布v1.0版本的时候吧:D
深入理解Openstack自动化部署的更多相关文章
- Devstack 多节点自动化部署
本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Open ...
- K8S(16)集成实战-使用spinnaker进行自动化部署
K8s集成实战-使用spinnaker进行自动化部署 1 spinnaker概述和选型 1.1 概述 1.1.1 主要功能 Spinnaker是一个开源的多云持续交付平台,提供快速.可靠.稳定的软件变 ...
- 一文理解OpenStack网络
摘要:如果你能理解OpenStack的网络,那么对于其他云平台的网络,应该也可以通过分析后理解掌握了. 本文分享自华为云社区<<跟唐老师学习云网络> - OpenStack网络实现& ...
- 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 [OpenStack HA and DR]
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- [转]基于AWS的自动化部署实践
作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...
- 深入理解openstack网络架构(4)-----连接到public network
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...
- 深入理解openstack网络架构(1)
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture 译文转载自:http://b ...
- 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]
理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...
- 理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
随机推荐
- Bootstrap 基础学习笔记(一)
排版 (1)标题 Bootstrap标题样式进行了以下显著的优化重置: 1.重新设置了margin-top和margin-bottom的值, h1~h3重置后的值都是20px:h4~h6重置后的值都 ...
- Azure IOT (EventHub + Stream Analytics + Table Storage)的使用
最近研究利用Azure的 Event hub ,Stream Analytics和TableStorage来实现IOT的一个方案, 利用Event hub来采集传感器设备数据值,然后输入到Stream ...
- 用js识别是否360浏览器
360浏览器说实话比较恶,以前可以通过内核返回的字符串判定是否包含"360"字样的方法来判定 如以下代码 window.navigator.userAgent.indexOf('3 ...
- 如何查看 oracle 官方文档
Concept 包含了 oracle 数据库里面的一些基本概念和原理, 比如 数据库逻辑结构, 物理结构, 实例结构, 优化器, 事务等. PDF 460页 Reference 包含了动态性能视图, ...
- 正确理解DTO、值对象和POCO
今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和POCO之间的区别. 所谓DTO就是数据传输对象(Data Transfer Objec ...
- Postman-简单使用
Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins Postman功能(https://www.getpostman.com/features) 主要用于模拟网 ...
- 关于用CSS3画图形的一些思考
众所周知,用CSS3的圆角.转换可以画出各种不同的形状,制作不同的图案,早些前先驱者已画出经典的叮当猫,iphone手机等展示CSS3的强大实力,趁最近有空我也对CSS3进行了一些实践,颇有收获. 用 ...
- oracle 根据字段分组后,将组内的数据根据字段排序
row_number() over(partition by 分组字段 order by 排序字段 desc)
- oracle密码文件管理
密码文件 密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [or ...
- 你的联动够快够小吗——基于Telerik(ASP.NET平台)
一.目的 这篇文章主要是以如何实现联动下拉为核心,其要原理是利用两个下拉控件.默认两个下拉均为未选择状态,并且 父下拉中存在数据,子下来中没有数据.只有当用户选择某一个父下拉中的某条数据后,子下拉中才 ...