一、概述
1、云的要素:
(1)按需自助服务
(2)广泛的网络接入
(3)资源池化
(4)快速弹性
(5)可计量的服务
2、从运维和DevOps角度,这些特性最重要的是按需自助服务和可计量服务。
3、云供应商的服务可以归类为以下三类:软件即服务(SaaS)、平台即服务(Paas)和基础设施即服务(IaaS)。
二、云的特性
1、虚拟化
2、IP和域名系统管理
(1)DNS:每个DNS都有一个名为存活时间的(TTL)的属性。存活时间作为DNS的过期时间。
(2)虚拟机的Ip地址持久化
3、平台即服务:
(1)多数PaaS平台提供了一组核心服务(例如托管Java Web应用等)以及一系列扩展(监控方案、日置流、自动伸缩选项等)。
(2)相比于IaaS,PaaS的额外抽象意味着你能够集中精力再系统最重要的部分应用上。
4、分布式环境:
由于云供应商环境中拥有成千上万的机器,所以在时间、故障的可能性及数据的一致性上有很多不一样的问题。
(1)时间:在分布式环境中,消息是应用中不同进程的通信方法,消息在相同数据中心的时间大约在500微妙,而在不同机房会差距更大,这就导致确定哪些数据放在内存中或者哪些放在磁盘上是一个性能方面的关键决策。同时,持久数据的物理存放位置也会对性能产生巨大影响。
(2)故障:
- 虚拟机故障:分布式系统的架构师要做的主要决策之一就是如何在应用的不同部分之间划分状态。这需要按无状态组件、客户端状态组件以及应用程序状态组件去分别考虑。
- 长尾问题:防止长尾的一个机制是取消耗时过长的请求。
(3)一致性:
考虑到故障的概率,稳妥的做法是复制持久性数据。
在分布式系统中,通过引入锁来维护一致性,这些锁控制访问单个数据项的顺序,但锁的数据项会带来访问这些数据项的延迟。另外,云的持久性数据可能按不同区域进行分割,以减少访问时间,特别是在数据量很大的时,根据CAP原理的理论结果,不可能同时拥有完全可用、一致并分区的数据。这就引入了最终一致性,这意味着,分布、分区和复制的数据级别没有立即一致,在一段时间后将会一致——副本最终讲变得一致。
(4)NoSql数据库
- Nosql系统还没有想关系系统那样成熟,应用程序开发人员必须确定哪些数据模型最适合哪种数据库。
(5)弹性
- 弹性意味着服务一个应用的资源数量可以根据负载进行增加和减少。监控现有资源的利用率时度量负载的一种方法。
三、独特的云特性对DevOps的影响
云影响DevOps的3个独特特性时简单的创建和切换环境的能力;轻松创建虚拟机的能力,以及数据库的管理。