查看原文
其他

智囊团代闻分享:基于AWS的混合IT架构

2015-10-29 云头条

代闻,亚马逊AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,在大规模后台架构、物联网应用、媒体行业转型、企业混合IT和自动化运维等方面有着广泛的设计和实践经验。在加入AWS之前,在思科中国担任系统工程师,负责方案咨询和架构设计,在企业私有云和基础网络方面有丰富经验。曾任IBM中国软件开发中心软件工程师,从事企业软件和移动平台的开发工作。



基于AWS的混合IT架构


公有云带来的便利主要有如下一些方面:按需使用付费、避免预估容量、降低创新失败成本、集中处理数据中心的无差异化的工作、降低企业的运维难度等等。


对于企业来讲,这些点很吸引人,但是如何有效地使用公有云、如何处理私有云和公有云的关系、如何有效地迁移和过渡、如何保障业务连续等等,这些都是难点——不仅是企业要面对的难点,也是公有云提供服务的难点。


如果企业要将公有云作为IT基础设施的一部分,同时运维自己的IDC,就会面临如何构造混合云的问题。


构造混合云是一个比较大的话题,涵盖基础设施、软件平台、对外服务接口、容灾规划、管理监控等诸多方面。今天我着重讲一下基础设施方面,尤其是网络的构建,其他方面简单说明,大家有问题一会儿可以QA.


关于网络,公有云能够为企业提供服务、提供混合云服务,首先自身要具备足够稳定、可靠、功能齐全的虚拟网络。AWS VPC (Virtual Private Cloud)就是应运而生的一个虚拟网络服务。顾名思义,它可以让用户在公有云上划出一个自己的“虚拟私有云”,也就是说,网络的边界、地址、子网、IP、ACL、路由、防火墙策略等等,都可以由用户自己定义,并且可以API化、自动化。


关于网络,公有云能够为企业提供服务、提供混合云服务,首先自身要具备足够稳定、可靠、功能齐全的虚拟网络。AWS VPC (Virtual Private Cloud)就是应运而生的一个虚拟网络服务。顾名思义,它可以让用户在公有云上划出一个自己的“虚拟私有云”,也就是说,网络的边界、地址、子网、IP、ACL、路由、防火墙策略等等,都可以由用户自己定义,并且可以API化、自动化。


(补充说明:如果有人玩Openstack,网络模块Neutron,也就是之前的Quantum就是类似VPC的服务。如果有人同时玩过Neutron和AWS VPC,相信很容易体会VPC的强大之处,以及做到这么强大、灵活和大规模是多么不可思议。。。)


言归正传


VPC让用户在AWS上构建出自己的私有网络,那么下一个问题就是如何将VPC和用户数据中心的物理网络打通。这个连接一般来讲,或者基于VPN,或者基于专线。


这里的VPN指基于Internet的VPN,可以通过使用AWS的EC2虚拟机搭建VPN服务器来实现,也可以使用AWS的VPN服务实现。


使用专线,AWS提供DirectConnect服务支持专线接入,然后用户可以租用运营商的专线实现物理机房和AWS的连接,然后通过配置物理设备和DirectConnect服务,就可以实现物理网络与VPC的路由互通。专线连接可以得到更低的延迟、更高的可靠性。


所以很多企业会选用DirectConnect服务来做混合IT架构的网络连接。另外,VPC和物理网络需要使用不同的网络段,地址不可重合。如果有二层延伸的需求,可以采用一些第三方方案。


网络连接建立之后,相当于混合IT的路基就铺好了,下一步很容易想到的就是存储和计算的混合使用。


DirectConnect服务接入Equnix的数据中心现在应用在国内普遍么?


国内已经有不少DirectConnect服务的案例,比如今年的米粉节。Equinix数据中心,您指用户在其中,还是说接入为AWS提供DirectConnect接入点得Equinix机房?


存储的同步,AWS自己提供了Storage Gateway,实现用户存储数据向云上同步或备份,比如存储到S3对象存储,或者Glacier虚拟带库


问: (李锴: 这个好啊

崔昊: 我记得有些客户把设备放在Equnix那里,然后通过Direct Connect接入AWS)

答: 同时,第三方软硬件厂商都积极推出与AWS接口兼容的存储同步产品和方案,比如Symantec、Oracle RMAN、Commvault

veeam、riverbed Whitewater等 @崔昊 你说的场景很可能是有一个Equinix机房为AWS提供专线接入点,客户如果租用这个机房的Rack,设备就可以通过机房内光纤与AWS建立连接,依然是基于DirectConnect服务,但是省去了专线的费用。


问: (@AWS 代闻  国内有vpn服务?)

答: @崔昊 DirectConnect服务的提供需要有专线接入点。因为考虑到安全,AWS不会让用户或运营商直接访问到AWS的数据中心机房的,所以需要接入点。Equinix在国外为AWS提供了很多接入点。在国内,AWS目前已经在服务的接入点由光环新网提供。


@huoju@TCL 北京Region目前只能使用EC2搭建VPN服务器,AWS VPN服务目前只能在Global Region使用。


说完存储,我们再看一下计算,也就是服务器。有了混合IT的连接后,数据中心服务器与云上的虚拟机可以通过内网通信。如果用户物理数据中心的虚拟机可以导出为OVF格式,还可以导入到AWS上,变成EC2实例、制作镜像等等,如果以后有需求迁回数据中心,AWS也支持导出。当然VM导入导出服务对虚拟机的操作系统和配置有一些要求,不过覆盖面很大,详情可以查一下文档。


此外,由于AWS所有服务都基于API,并且封装了SDK,所以VMware vSphere Client和Microsoft Hyper-V System Center都有插件,可以实现用户数据中心虚拟机和AWS EC2的统一管理。此外,Openstack也有


OK,我们讲完了基础网络、存储和计算,接下来再简单说一下软件平台、对外服务接口、容灾规划、管理监控


软件平台,其实说得最多的就是企业中间件,以及企业数据库


中间件就不多说了,SAP和Oracle都有相关的Whitepaper讲解如何在AWS上搭建平台,特别是SAP由很多白皮书和介绍。


混合IT架构下,数据库方面,有三种模式,第一种是把数据库也放到云上,第二种是数据中心和云之间做主备,第三种是只把前端和中间件放在云上,数据库因为一些原因放在机房。我们主要看一下第二种。


(还是说说中间件吧)


AWS提供了RDS数据库服务,可以支持MySQL、PostgreSQL、SQL Server、Oracle、MariaDB、Amazon Aurora六种引擎。如果是MySQL,可以直接使用RDS与数据中心的MySQL组成M-S或S-M. 如果是Oracle和SQL Server,建议使用EC2搭建主备。


@yangdigital@SH 中间件的话题比较大,而且也比较容易通过域名方式解耦,详细的SAP中间件配置我不是专家,这个可以参照白皮书,或看看群里有没有SAP或EBS大拿:) 对外服务接口,我主要是指构建混合云之后,如何向内部机构或者外部用户提供服务。


这里有两个比较基本的要素需要注意,一个是松耦合,另一个是无状态。


松耦合是为了迁移、部署和变更,无状态是为了平行扩展和高可靠,避免单点失效。


容灾方面,混合IT可以考虑四个模式:冷备、信号灯、热备、双活。


基于公有云的容灾成本会比传统方式低很多,尤其是前三种模式。


如果冷备,云上只需要定期备份,其他还是冷备,遇到问题恢复会比冷备快。


如果是热备,在传统数据中心需要1:1备份,但是在云上只需要使用基本数量的机器能够提供服务即可,如果切换,再通过命令行或自动侦测的方式迅速扩张,这也是前端服务器成为无状态服务器的好处,可以很快平行扩展。


双活就是两边同时工作,同时分担流量,数据库实时同步了。


另外,上面提到的切换都是指DNS切换。


最后说一下管理监控


AWS提供了Cloudwatch来监控云上基础设施,同时Cloudwatch也有API接口和SDK,这样,用户就可以读取Cloudwatch数据,集成到自己的平台,比如Zabbix,Nagios等。另外,一些性能监控平台,如国外的New Relic,国内的听云,都提供了针对AWS的性能监控,以及应用级监控,用户也可以通过第三方加强管理和监控。


管理中比较重要的一个话题就是安全。AWS提供了IAM (Identity Access Management)服务,支持用户组、用户、角色等,权限管理可以细致到服务的各个功能。企业用户可以将内部的AD或LDAP与IAM做集成,以便统一管理账户。同时,对于AWS资源做的任何操作,AWS的Cloudtrail服务会全部记录,供审计或排错使用。


时间不早了,我今天先分享这么多吧,不小心打了很多字,谢谢大家!


我在电脑前等10分钟,如果大家没有其他问题,我就关电脑了


Not box:

请问AWS 的Postgresql 提供load balance 吗

Yinan:

@AWS 代闻 谢谢分享,我觉得此处还应该推荐一下AWS全球在中国唯一认证的云计算管理服务商(MSP)云络科技,可以帮助大家专业和快速实现以上所Yinan:

有的功能

代闻_daiwen:

可以提供主备模式,Multi-AZ,即同城容灾。

Not box:

那Standby可以选择数量吗

Not box:

比如多个standby

代闻_daiwen:

Standy是对主库的Standby,所以只有一个,你应该指的是Slave或者只读副本,是可以创建多个的。多个只读副本(read replica)的load balance需要自己搭Proxy.

霍炬:

rds 多可用区,如何保证切换时,应用连接配置不更改。是通过数据库网关还是负载均衡?

霍炬:

指mysql

Henry:

aws ec2 classic加静态路由有办法解决吗?

代闻_daiwen:

@huoju@TCL RDS Multi-AZ切换,URL不会改变,是底层域名解析到备库了。

霍炬:

@AWS 代闻  如果是域名,应用端不会有缓存吗?

代闻_daiwen:

@Henry 尽快迁移到VPC吧 :)

杨岭:

Oracle和SQLserver要用EC2搭主备啥意思?

代闻_daiwen:

@huoju@TCL 好问题,答案是可能会的。推荐自己搭DNS服务器,或者使用Route53的Private Zone服务建立内部DNS,使用小TTL避免。否则只能用脚本批量清了。

杨岭:

RDS不支持多AZ?

代闻_daiwen:

@yangdigital@SH 就是用EC2虚拟机构建和物理机房的Oracle、SQLServer的主备关系。

杨岭:

哦,明白了

代闻_daiwen:

RDS for MySQL/SQL Server/PostgreSQL/Oracle 支持两个AZ.

代闻_daiwen:

RDS for Aurora必须具备三个AZ

Yinan:

@AWS 代闻 Route53不是在中国没有吗?

Yinan:

现在开放了吗?

Henry:

现在困惑于这里,也是迁移到VPC的问题点

Henry:

还有s3distcp

代闻_daiwen:

所以在北京Region只能自己搭内部DNS,比如skydns,powerdns

Henry:

跟原生的相比还是有局限性,

Henry:

有改进没?s3distcp

代闻_daiwen:

@Henry 哪方面?

Henry:

s3distcp

Henry:

同步一般失败,能续传?

Henry:

不能吧?

Henry:

增量同步不支持吧?

Henry:

还有aws elasticsearch 是否有一些最佳实践分享下?

代闻_daiwen:

这是S3决定的

Henry:

哦?

霍炬:

@AWS 代闻  北京节点和国外aws节点间应用的数据传输有什么优化方案吗,实际使用问题很多呀.。

霍炬:

@AWS 代闻  北京节点和国外aws节点间应用的数据传输有什么优化方案吗,实际使用问题很多呀.。

代闻_daiwen:

因为S3是对象存储,HTTP based,所以断点续传只能基于一个上传任务,并且是有分片粒度的。

代闻_daiwen:

@Henry Cloudsearch支持ES了,赶紧看一下吧

代闻_daiwen:

@huoju@TCL 国内外直接通过公网传,该过的东东,必须得过,所以就慢了。可以拉专线或者使用虚拟专线(如Aryaka)

代闻_daiwen:

@huoju@TCL 国内外直接通过公网传,该过的东东,必须得过,所以就慢了。可以拉专线或者使用虚拟专线(如Aryaka)

Yinan:

是的,我最近在做几个用Aryaka的case

Yinan:

包括我们自己,也是使用Aryaka的服务来,效果不错

Henry:

注我的aws都在国外哈

alex:

AWS有没有遇到V2V的情况


关于“智囊团”云计算领域讨论群,周一至周五晚8点按照入群顺序,分享行业干货,进行讨论。入群需实名制。有兴趣可以加微信:aclood


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存