SDN实战团分享(十六):OpenStack与阿里云的混合之路

【编者的话】本文系SDN实战团微信群组织的线上技术分享整理而成,由九州云技术总监黄舒泉带来的OpenStack与阿里云的混合之路分享。
--------------------------------------------------------------------------

分享嘉宾简介:黄舒泉,九州云信息科技有限公司技术总监。毕业于南京大学软件工程硕士,2011年曾任职英特尔亚太研发有限公司,负责基于OpenStack私有云的研发、运维体系建设和产品化工作,并对OpenStack做出多项功能增强和改进,是OpenStack社区的早期推广者和实践者。2015年离开英特尔加入九州云信息科技有限公司,致力于在国内金融、电信等行业推动基于OpenStack云计算解决方案的实施和落地。

分享正文
--------------------------------------------------------------------------
九州云一直在关注混合云的解决方案,尤其最近,随着市场的成熟,我们发现客户对混合云的需求越来越强烈,所以我们在与包括阿里云、Brocade在内的众多合作伙伴一起,共同合作打造企业级混合云平台,希望能够像用户提供弹性、敏捷和安全可控的混合云解决方案

混合云的话题非常大,可以从底层数据中心的建设一直往上聊到上层的应用是如何编排。不过,时间有限,这次的分享很难覆盖所有的点,我就从我熟悉的几个方面展开,希望通过这次抛砖和大家一起交流交流

这次分享的主题主要包含下面4点:
1.为什么客户需要混合云
2.混合云的几种方式
3.OpenStack与异构平台(阿里云)混合云介绍
4.Openstack同构云平台混合云介绍

第一,为什么需要混合云
首先,我们先来看看最近云计算市场的发展趋势。

rightscale 2016这份报告是其中一份比较好了解当前云计算市场发展趋势的报告,由rightscale在今年1月份通过采样调查1060名IT从业人员完成。

从报告的title可以看见:Hybrid cloud adoption ramps as cloud users and cloud providers mature

根据这份报告,混合云落地快速增长的主要原因有3点:
1.随着私有云的落地从63%增长至77%,进一步促进混合云的落地比例从58%增长至71%
2.82%的受访企业表示他们有混合云战略,这一比例与去年基本持平。
3.95%的受访用户表示他们已经或尝试在IaaS上运行自己的应用

看完这份报告,不禁会有几个问题:
1.为什么客户需要上混合云,混合云战略能够帮助他们解决什么问题?
2.选择混合云方案的时候需要重点考虑哪些因素?

只有深入研究客户的需求和动机,我们才能给客户满意的混合云解决方案。下面我依次回答一下上面2个问题

首先,显而易见,客户希望通过采用混合云来同时享受私有云和公有云的优点,最简单的理解就是我可以非常灵活地把认为重要、敏感的数据放在私有云中,同时又能够在需要的时候快速获得公有云提供的丰富资源,达到安全、省钱和灵活的目的。

我们来进一步看看混合云有哪些典型的用户场景:

1.Cloud bursting。混合云突破私有云的硬件限制,充分利用公有云的弹性和可扩展性。当应用遇到需求高峰时,私有云中的应用不需要等待IT人员去采购额外的硬件资源来应付,可以通过调用公有云的资源来满足这种短暂的需求高峰,达到节省成本的目的。在电商、手游等互联网行业此类场景比较普遍。

2.灾难恢复与业务连续性。公有云由于规模效应,往往能够提供更为经济的存储、计算等资源,企业可以更频繁地将备份存放至公有云中,用作灾备和保证业务连续性。

3.异构环境管理。用户可以通过混合云战略,实现多云共存,将应用同时部署在多个云上,充分利用不同云供应商的优点,同时还能够降低风险。

4.云间应用迁移。用户一般可以在私有云中进行本地的开发测试,然后利用公有云强大的互联网属性,将应用迁移至公有云中更好地服务更广大的客户。

5.应用高可用。在设计应用高可用的时候,往往涉及不同层级的高可用,如主机、机房、网络等。通过混合云战略,可用提供云平台层次的高可用。

通过了解这些应用场景,发现混合云方案设计需要考虑的因素可用主要分为3个方面:

  • 第一,就是吃透客户的需求和主要用户场景。没有银弹,不可能有一套方案能够满足所有的需求,我们要能够深入客户的需求,才能最大的满足客户。
  • 第二,技术因素。下面会详细介绍。
  • 第三,运营因素


涉及的点比较多,我就挑其中的一些来谈一下
工具:

  • 要关注混合云是否提供足够多的工具集来保证混合云的正常运行和管理维护,如统一监控、预警等。
  • 混合云平台中应该要能够提供客户在不同云中的使用情况和消费记录。
  • 还要能够为客户提供跨平台的应用编排,满足客户在高可用、灾备方面等需求

网络:

  • 从不同云平台使用的角度出发,混合云平台要能够统一管理不同云平台中的网络资源,让用户能够通过混合云平台透明地使用各种资源,不同不会有误解和错用。
  • 从云平台基础设施出发,混合云平台还要能够保证不同云直接的高速、稳定、可靠的互联,如专线VPN等手段

管理:

  • 混合云架构容易引入来自不同云平台的很多概念,一不小心就把用户给弄晕了,不知如何操作,增强管理复杂度。
  • 好的混合云平台应该能够简化用户管理,很好的抽象和统一,提高管理效率。

风险:

  • 不同云平台在可用性、服务水平、安全级别和API之间都存在差异,这些差异容易在混合云平台上面进一步放大,混合云平台应该为用户屏蔽因为差异造成的风险,或者提供必要的告知义务。
  • 还需要能够及时管理来自不同云平台的变化,如API变化、SLA变化等

容量规划:

  • 大部分公司选择混合云的原因是希望通过公有云的弹性来提高应用的服务能力,同时又能够减少自身的固定资产投资。因此,在一整套混合云方案中,我们需要着重考虑对私有云和公有云的容量规划,针对用户历史使用量分析,能够对未来一段时间进行预测,提出一套最节省成本的混合方案。
  • 一般情况下可以通过vCPU, RAM, bandwidth这些资源指标来规划具体容量。
  • 有一个误解是,尽可能将所有的workload放在私有云上面,只有不得已才会使用公有云上面的资源。其实,现实情况远比这个复杂,混合云的目的是充分利用各个云平台的长处,因此,更好的方式应该是需要结合业务的特点和云平台的特点进行通盘考虑,通过平台中的数据分析工具来自动进行应用编排。

性能:

  • 不同云平台表现的性能是不同的,它们擅长的workload类型也会有差异,混合云平台如何能够在应用编排的时候,根据应用的特点和平台特点进行编排调度达到最好的性能。

运营:

  • 私有云中使用的镜像格式要在对应的公有云中兼容,避免转换的麻烦
  • 为了简化应用的不是,平时多使用Chef、Puppet等部署工具
  • 用户的应用是否已经云化,在此准备迁入云中前要做什么准备和改造,如分布式、微服务?是否有高可用和自动扩容等
  • 考虑混合云平台如何应对升级、维护


第二,混合云管理的几种方式。

从云平台属性出发

  • 异构云平台管理:OpenStack云平台与第三方云平台,如阿里云,的混合云管理
  • 同构云平台管理:多个OpenStack云平台之间的混合云管理.

从管理方式出发

  • 集中管理:在不同云之上存在一个集中管理平台,用户一般只通过这个平台来使用不同云中的资源,如fit2cloud
  • 联合管理:不同云之间是相互联合、相互信任的,同一个用户可以通过single-sign-on的方式,非常方便的使用不同云平台中的资源,如OpenStack Cloud federation, CERN是比较有代表的。

一般情况下,异构云平台管理的混合云方案倾向使用集中管理的方式

优点:

  • 用户不需要关心每个平台的具体细节,只需要与混合云管理平台交互,可以降低学习成本。
  • 混合云平台可以进一步的封装、抽象,甚至加入一些额外的业务逻辑,如CICD等,来提高用户体验。
  • 用户可以比较灵活的选择使用不同的云平台满足不同的业务需求。

缺点:

  • 混合云管理平台涉及的逻辑比较多和复杂,比较重量级。
  • 存在一定的安全隐患,因为各个云平台的用户名密码需要由混合云平台来管理使用。
  • 由于混合云管理平台的进一步封装、抽象,可能会导致用户无法使用某些云平台的特性。

对于同构云平台管理的混合云方案倾向使用联合管理的方式

优点:

  • 通过联合认证的方式可以提高安全性、降低风险
  • 简化业务流程,用户只需要一组用户名密码就可以访问所有的OpenStack公有云和私有云,对于本身就熟悉OpenStack的人来说,基本没有学习成本,混合云管理平台可以更加轻量级。

缺点:

  • 差异化功能比较少
  • 目前只存在于OpenStack云平台之间

九州云OpenStack与阿里云的混合云方案,目前采用集中管理的方式

九州云Animbus管理平台分别通过Openstack API与阿里云API交互来管理这两个异构云平台。我们在Openstack多个组件中加入对阿里云的支持,如通过ceilometer和heat对阿里云的支持,可以进一步增强混合云的应用编排能力。网络方面,我们充分发挥阿里云的优势,可以利用阿里云高速通道实现用户VPC之间、VPC与物理机房之间的二层隔离的私网通信效果。

下面介绍一下其中2个混合云场景

1.Cloud Bursting。当客户有需求高峰时,可以通过九州云animbus管理平台,直接在阿里云上启动私有云或者阿里云上的镜像,不同云平台VM之间的网络可以通过高速通道实现私网二层通信。

2.备份至阿里云。客户可以利用阿里云进行容灾备份,通过使用阿里云OSS将私有云VM备份至阿里云中。一旦该VM在私有云中出现故障,可以直接在阿里云中启动备份VM,提供服务。

最后,分享一下多个OpenStack云的混合云

我们先来看几个概念:

  • Service Provider(SP):服务提供方,为最终用户提供服务
  • Identity Provider(IdP):验证提供方吧,存储用户相关信息并提供验证授权
  • SAML assertion:包含由验证提供方提供的验证信息,可以理解用来表明某个用户是否同意验证授权。

OpenStack Federation的一个流程目前主要用到了SAML2.0,其中主要的就是上面几个概念,基本流程如上图。

SAML是一种XML格式语言,全称是Security Assertion Markup Language ,通过它,可以安全地来表达断言。目前很多SSO场景中都支持SAML登录,有点类似OpenID和Oauth。

下面简单介绍下它的工作原理,参考上面发的那个图:
1.用户准备访问一个在www.abc.com上面的资源,但是这个用户在这个网站上面没有任何登录过的session。
2.Sp这时会返回一个HTML的form表格给用户,这张表格中包含了用户需要填的验证信息,如用户名和密码等。同时,表格一般还会包含一个提交按钮,会将这些信息以POST请求的方式发送出去。
3.当用户填写完信息以后,点击提交,会发送一个POST请求给IdP的Single Sign-On服务,这个请求中包含了SAML
4.IdP会对用户的信息进行验证,如果此时用户在IdP上面没有security context,或者定义必须通过授权,用户会被要求提供credentials进行授权。
5.用户的credentials验证通过,IdP会为用户创建一个security context。
6.IdP的Single Sign-On服务会返回一个HTML的form表格,其中包含SAML assertion,这个SAML回应结果是被强制签名的。通常,这个form里面也包含一个提交按钮,用来发送POST请求给SP
7.最终SAML返回结果会以这个POST请求的方式发送个SP的Assertion Consumer 服务.
8.SP的Assertion Consumer 服务验证SAML返回结果的数字签名是否正确,如果正确它会发送一个HTTP redirect和相应的cookie给浏览器,允许用户访问相关资源。

类似地,可以把这个模型应用到keystone上面。

1.用户向SP提出访问某个资源的请求
2.SP向IdP提出SAML验证请求
3.IdP验证用户信息
4.验证通过,IdP向SP回应SAML assertion,确认该用户通过验证
5.SP允许用户访问该资源。

如果换成两个keystone,后面分别是两个云,两个Keystone之间互为对方的SP和IdP。

这样经过一定配置之后就可以,通过使用keystone的联合认证,能够安全地凭借已有的用户名密码来使用多个授权的OpenStack云中的资源。

我的分享结束了,谢谢大家

Q&A

Q1:我想请问一下为什么不用cells部署,来实现多个os的混合,只要子cell的os集群愿意作为父cell集群的子代,就会由nova-cells服务不断传递请求
A1:cell也是一种管理的方式,但是我认为不能算是混合两个完全没关系的openstack集群,使用cell还是需要共享keystone和nova-api,而通过k2k federation可以做到这点


Q2:还想请教一下,混合云下例如os和vsphere的,能互相迁移吗?异构云迁移是怎么做到的
A2:只能冷迁移


Q3:99cloud是公有云还是私有云?用户从99cloud迁到阿里云,是用户直接向阿里买单?还是99统一买单?99跟阿里对接的网络资源谁买单?还是AA?
A3:99cloud提供的是云解决方案,我们的客户有公有云和私有云,怎么买单这个比较灵活


Q4:阿里云高速通道能给些具体信息吗?是类似AWS Direct Connect (fiber to IX POP, 如类似Equinix)
A4:阿里云官网就有


Q5:想问个异构云网络问题,vsphere 要用vlan对吧?有办法让vshpere用vxlan吗?因为我们为了用sdn控制器白盒交换机用了vxlan。
A5:可以,用nsx的vtep,本身就提供VXLAN功能


Q6:分享中提到:“不同云平台VM之间的网络可以通过高速通道实现私网二层通信”。那么在各自的环境中是否会保持虚拟网络拓扑的一致性?比如如果从私有云的OpenStack看Tenant Network,是否能够看到同一个2层网络中放在公有云的虚拟机?
A6:目前设计从私有云侧是看不见的

--------------------------------------------------------------------------
SDN实战团微信群由Brocade中国区CTO张宇峰领衔组织创立,携手SDN Lab以及海内外SDN/NFV/云计算产学研生态系统相关领域实战技术牛,每周都会组织定向的技术及业界动态分享,欢迎感兴趣的同学加微信:eigenswing,进群参与,您有想听的话题可以给我们留言。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/15982.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-02-26
0