第一章 随便说些什么

本人书写过程中也在接受新的思考方式方面的训练,所以从开始到结尾难免有些易察觉到的写作方式变化。

我写这个的尽量多解释概念、可重现的操作以及学习指导,以及提供发现解决问题的思路。其中大部分操作细节我尽量使用现有公司的产品(比如Mirantis、Cloudera),而不是从源码部署,因为版本升级带来的配置细节问题交给他们处理会更通用些。同时我现在更倾向于使用现实的模型来解释或者构建一个原理或者是架构,从而方便记忆和扩展。

1.1 我所看到的

从07年那会儿,甚至更早,拥有千万用户(包括盗版受害者在内)的行业先锋VMware,又有Google数据中心以及Amazon各种在线服务,这些实打实的东西遵循计算能力的摩尔定律,再顺应日益增长的商业需求,就有了“云”和“大数据”这两个让许多企业再次躁动的概念。

不管大家都怎么看,先引用一句关于“大数据”的经典,虽然与云计算不太相干:

“Big Data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it.”

我始终认为认知很大一部分都来自于实践,即先有实践,才来理论,同时理论可以被提高被改变,然后再用于实践。

那就这样,但行好事,莫问前程

作为公司的一名小技术人员,从客户交流到现场部署、从SDN交换机到Neutron、从QEMU到IAAS,我都有过了解或接触,并将其记录成文,是总结,亦是探索。期间难免会有这样或者那样的想法,而将这些想法实践出来的过程是会让人觉得生活依旧是美好的。

接下来是以我目前水平能看到的:

  • 和多数行业一样,不管哪个公司,他们技术和关系,在不同客户那里都有不同的权重,这点的南北差异尤为明显;
  • 以我所遇到的客户来看,部分客户不会明确的说使用“云”,他们的需求在多数情况下可以有这样或者那样的传统方案替代;明确要求使用“云”的客户,总会要求周边指标(用户接入、终端协议、USB重定向、视频流占用带宽、UPS、存储复用等)以及各种各样的定制,这是国内许多公有私有混合云厂商的一个痛处;
  • 云计算的本意不是虚拟机,也不是管理方便的集群,国内好多公司搞的云计算都是在卖传统计算机集群所能提供的服务,要有公司来建分水岭。
  • 尽量不要从技术角度出发去给客户提供技术,而是去关心客户现在面临的问题,我们再提供技术。(这句说的不好,意思还差点)

所以,在需求上的灵活变通,也是有些许重要性的,不要把技术人员的固执带到客户那

1.2 今天天气怎样

7:50 手机闹铃响了,随之而来的是你订阅的RSS、Flipboard推送的新闻。随手翻阅下,完后Siri说今天天气挺暖和的,可以穿你最喜欢的高领毛衣,起床。

8:30 高速公路上,地图告诉你前方拥堵,正好这时领导打来电话,你告诉Siri说“接听”。挂了电话以后,红灯亮了,汽车记录下你这次堵车的时间,并默默再次计算预计到时。

9:20 到达公司门口,没有保安,取而代之的是连接公司LDAP服务器的瞳孔识别。

10:00 收到信息,来自楼下快件派发柜,你订购的球鞋到了。

10:30 客户预约的拜访,你告诉Siri说把公司地址导航路线发送给客户张三。

11:10 通过公司IM告诉前台临时允许车牌号为K9031的车辆进来并发送车位信息给客户。

11:20 和客户在临时会客厅谈话,期间你把演说内容通过手势(食指一划)推送到客户邮箱,他们感到很意外(加分点)。

12:30 午餐时间,Siri还记得你在决心减肥期间,提醒你不要吃最喜欢的红烧肉,末了来一句“两个人被老虎追,谁最危险?Bingo,胖的那个”。

14:30 有客户如约送来了10T的财务数据,你通知技术部小李对这些数据进行方案II处理,百分之30的处理任务交给武汉机房的机器,因为这些从机柜到主板都是你依照节能环保的原则主持设计的。

16:00 Siri告诉你,抱歉,六点钟有局部降雨。

17:00 你把今天的备忘录存进公司派发给你的虚拟桌面,下班。

19:00 老婆大人的晚饭做好了,你也再次连上虚拟桌面把备忘录整理归档。

20:30 跑步结束,它告诉你这几周换季期间,要增加运动量,你说“可以”。

23:00 休息,Siri通过文字悄悄告诉你,明天结婚纪念日,记住。

所有已知未知的暗流,让人有了继续折腾下去的欲望。

我是一个着重实践的人,是的,比如磁盘不拆开的话我可能就对扇区、磁道、柱面没什么深刻概念(其实拆了也没多深刻)。所以,这一些列文章将尽量从操作或者现象中总结规律。一些原理性的东西会尽量用我觉得容易理解的形式表现出来。

../_images/01-01.jpg

整本“书”的结构将会是这个样子:

介绍下主流“云”的现状,会引用许多现成(尽量)客观的信息片段;畅想一下;从中选择部分组成一个完整系统,进行搭建(或模拟)并本地调优(避免过早优化);避免烂尾,结尾送两首短诗吧。

1.3 根据需求来架构

所有我们所需要的东西,至此有了一个整体的印象。接下来,我列举几个关键词,从中挑出一部分来组建我们“云”。

  • 存储:将要构建的基础设施的基础,所以一定要对其可用性及速度有所保证。
  • 虚拟化:通过软件模拟芯片以及处理器的运行结构,作为八九十年代生人(忽然觉得时间好快),多数人最熟悉的应该是红白机模拟器了吧。
  • 集群:这个概念里有并行还有分布,两者比较明显的区别是是否在某一时间段内有共同的计算目的。
  • 授权服务:现代数据中心的多数应用,都需要统一的用户数据,如何安全地使用统一的用户数据,也是我们需要考虑的。
  • 安全与可信:安全的问题,很重要。不要等到哪天信用卡账户被盗刷才发现安全的重要性;可信,即是服务提供者与接受者具有可信的第三方提供支持。
  • 可扩展:这里有两个层面,一个基础设施自身计算与存储能力扩增,另一个是与其他云计算平台的模块级别兼容。
  • 外围设备:对于特殊的应用(环境监视、认证、GPU依赖应用等),我们需要一些外围设备来辅助完成(usb设备、显卡等)。对于重要设备或者非常依赖总线带宽的设备(令牌、显卡等)的安装,推荐将其与实施应用的物理机直接绑定,对于其他设备(U盘、摄像头等)推荐使用某一既定物理机进行基于TCP/IP的透传。
  • 电源管理:由于集群中存在中央管理,所以有必要使用栅栏(fencing)去关闭与管理失去联系的机器,防止其自建中央管理。
  • orchestration:即预配置,不管是虚拟机还是应用程序,我们的目的之一就是达到服务的快速响应。

如此划分的意图是什么呢?基础设施,在保证安全可靠的前提下,对本地资源实现最大化利用,也是我们追求的指标之一。还要注意,确保虚拟机状态监控无有遗漏,宿主机部署保证安全,否则,后期很痛苦,因为你永远无法控制用户使用你的环境做什么。

接下来,看看即将部署的各个层之间的关系:

../_images/01-02.png

如你所见,存储与计算是在同一节点上,所有管理服务以虚拟机形态运行,统统高可用。但是,这个架构一定存在一个弊端吧?没错,从整体服务的角度来看,虚拟机作主体的架构中存在一定程度的管理上的不便。传统集群只要关心物理设施及与其绑定的应用即可,它们在某个区的几号柜的那一层;而虚拟机们则可能有些“任性”,没有绑定的情况下会在集群中的某台宿主机中进行迁移。所以,我们需要一个完备的集群管理及报告系统,也会需要一个DataWare House来统计用户行为。