网站首页 > 工作总结> 文章内容

年终盘点之国内IaaS云个人使用体验报告

※发布时间:2016-2-15 0:32:43   ※发布作者:habao   ※出自何处: 

  都说2015年是国内云计算元年,对我个人来说,2015年也是本人正式全面接触云服务的元年。

  本文仅从个人角度分析当前国内主流IaaS云的使用体验,主要从各云厂商提供的功能抽象,管理后台,付费机制等方面进行分析,不包括以下方面内容:

  要做这两方面比较太耗费精力,需要做长期的观察,非个人可以完成的事情。另外本文仅仅代表个人的使用体验,主要包括以下云:AWS(国际/国内),青云,腾讯云,阿里云,UCloud。其他的云未使用过,不做评价。

  另外开始前先说下我对IaaS云的整体观点,首先IaaS云整体降低了互联网创业启动的技术门槛,把最辛苦的机房运维工作接管了,功不可没,所有的互联网创业者都应该表示感谢(这个去机房搬过机器,拉过网线的创业者应该感触更深)。另外这一年里关于IaaS云的负面消息也不断,使得有些创业者选择时心存疑虑,但这个事情主要有两方面原因:

  基础网络是所有用户共享的一个大的内网,内网的机器之间都是可以互通的,就如同办公室同一个由器下的所有机器都是互通的,云厂商为了安全,在网络层通过防火墙对用户进行了隔离。各家实现都差不太多。

  基础网络防火墙的隔离一般有两种做法

  当然,无论哪种实现,基础网络的这种模式决定了使用基础网络肯定有内网安全风险,比如防火墙失效,并且复杂的防火墙规则肯定对网络传输性能有影响。所以正式使用的服务还是尽量使用VPC。

  VPC全称Virtual Private Cloud,是SDN技术的应用,目标是允许用户在云上自定义网络以及实现用户之间的隔离。这个各家的实现差异略大。

  虚拟由器模式 虚拟一个由器,类似于办公室内网。用户的机器都挂载由器下,由器上绑定公网IP。如果内网的服务要对外提供,则需要在由器上做端口映射。这种模式在公司内网用过由器的多都能明白。不过这种模式的问题是比较麻烦,负载均衡器也不能直接挂载内网服务器,如果内网服务器稍多,做端口映射,分配端口非常头疼。当前青云的旧区以及UCloud用的是这种模式,这种模式其实不是真的VPC。

  VPC模式 虚拟一个网络,用户给定一个IP段,然后可以在这个段下切网,在子网内挂载主机,RDS,负载均衡等。子网之间是互通的。下面具体说说各家的实现。

  AWS

  AWS VPC下的子网区分公有子网和私有子网。

  公有子网包含一个Internet网关,子网内的服务器分配公网IP后,可以直接访问外网,可对外提供服务,也可以挂载到Internet负载均衡器后面对外提供服务。没有公网IP的服务器无法访问外网,所以这个子网下的服务器一般设置成自动分配公网IP,自动分配的公网IP在服务器关闭后会被回收,再次启动时会分配一个新的IP。自动分配的公网IP不收费,如果需要固定的IP,则需要申请Elastic IP,EIP每个VPC内有个数,绑定时不收费,空闲时收费。

  私有子网的服务器和公网是不通的,要访问公网必须自己在公有子网里搭建NAT网关,Internet负载均衡器也不能直接将请求转发给私有子网的服务器。NAT网关搭建后台有引导,比较方便,NAT由的设置可以在后台界面进行。

  VPC支持VPN以及对等连接(用于将两个VPC连接到一起)

  负载均衡器 AWS的负载均衡器分公网和私网两种,公网的负载均衡器只能转发请求到公有子网,私有负载均衡器只能转发请求到私有子网,私有负载均衡器无公网IP,只能在VPC内访问。AWS的负载均衡器后面直接挂载主机,直接配置端口映射,不支持复杂的转发策略。支持存活探测。

  阿里云

  阿里云VPC可以看做是AWS VPC的简化版本,不支持公有子网和私有子网这样的划分,VPC内的服务器访问公网需要绑定公网IP,或者自己搭建NAT网关并进行配置,但后台上没有找到可配置的地方。

  不支持自动分配公网IP,公网IP需要单独申请,按流量或者固定带宽计费。最多20个。

  VPN以及对等连接也需要自己搭建。

  负载均衡器 和AWS类似,挂载实例,端口映射,不支持转发策略配置。支持存活探测。公有网络的负载均衡器只能在经典网络里。

  腾讯云

  腾讯云的VPC叫私有网络,几乎是AWS VPC的克隆。不支持公有子网和私有子网的划分,在VPC内添加服务器的时候,可以选择是否作为网关,用于简化用户的配置。

  VPC内的主机也不支持自动分配公网IP,需要申请EIP,按时间计费,不过绑定资源后不收费。最多开通20个EIP。

  VPC内置支持VPN以及对等连接。

  负载均衡器 和AWS类似,挂载实例,端口映射,不支持转发策略配置。支持存活探测。分公网和私网,既可以在VPC内也可以在基础网络。

  青云

  青云的VPC和其他家的有点区别。新的区才支持VPC。

  青云的VPC下可以挂私有网络,相当于子网,不区分公有私有。子网内的服务器分配公网IP后即可访问公网。如果子网内的服务器不分配公网IP,只要VPC上绑定公网IP就可访问公网。我的理解是VPC本身携带了NAT的机制,省去了自己搭建NAT的成本。所以青云的VPC是收费的,大约36¥/月。

  青云的所有服务器都不支持自动分配公网IP,包括基础网络中的,所有公网IP都需要单独申请绑定,计费。

  青云的VPC支持VPN,隧道服务(和对等连接类似),还支持内网的自定义DNS服务。

  负载均衡器 青云的负载均衡器做的比较复杂,支持转发策略,支持挂载实例端口映射或者直接配置IP和端口。区分公网和私有网络负载均衡器。

  总结,个人认为创业团队使用公有云服务,首先应该考虑的是网络架构,所以应该首选VPC,考量各家VPC的特点,对自己的服务进行规划,自己的那些服务需要对外?那些服务需要公网IP?哪些服务需要挂载负载均衡后面?哪些可以放在私有子网里?是否需要做NAT?这些都要考虑好。当然如果只是弄一台服务器,搭个博客啥的可以不用考量这么复杂。

  对云服务商来说,教育用户使用VPC也是当务之急。阿里云前一段时间内网IP吃紧,都打算使用部分尚未启用的公网IP作为内网IP使用了,说明很多人还是不知道使用VPC。AWS从2013年12月4日之后创建的账户仅支持VPC,应该也是遇到这种问题了。AWS的做法是默认给用户创建一个带公有子网的VPC,这样对用户是无感的,用户都不需要理解VPC是什么,和使用基础网络的体验差不多。

  云主机各家的云主机都是选择配置,然后启动虚拟机。AWS,阿里云是预先设定好的主机类型,然后供用户选择,不提供组合。腾讯云,青云,UCloud都提供组合,不过有一定。青云和UCloud提供用户后台修改主机配置的机制。

  AWS 提供三种硬盘,通用型 (SSD),Provisioned IOPS,磁介质。前两种的区别是IOPS的区别,通用型的IOPS由硬盘大小决定,3 IOPS/GiB,但有个复杂的累计突增机制。Provisioned IOPS类型的在创建的时候可以指定IOPS速率,可磁盘的IOPS,当然这种类型的磁盘价格和IOPS相关。最后的磁介质最便宜一般用来存冷数据。

  镜像与快照镜像和快照(有的云叫备份)对使用云服务器来说常重要的功能。快照是对硬盘的备份,镜像是根据系统盘备份生成的镜像,用来初始化虚拟机。AWS的镜像支持挂载云硬盘后生成组合镜像,其他厂商的镜像都只支持单盘。个人觉得这个功能非常有用,不知为啥其他云服务没有支持。

  通常我们使用云服务的习惯都是先找台服务器安装好系统以及基础软件,根据团队的运维习惯,给日志,数据目录挂载不同的附加硬盘并初始化,然后制作镜像供创建更多主机时使用。如果云服务支持组合镜像,那这个镜像本身就包含了附加盘的初始化快照,通过这个镜像初始化的系统,立刻可以使用,不需要再单独为每台机器创建和挂载,初始化硬盘。

  另外AWS和阿里云支持硬盘随主机删除的选项设置,这样方便自动化主机的时候同时删除掉硬盘,避免产生空闲硬盘产生额外费用。其他家没找到类似设置选项。

  先选择区域,然后再操作功能,所有操作都只针对当前区域。以AWS,青云,UCloud为代表。这种方式的好处是大多数用户其实都只在一个区域进行操作,一旦选定了区域,就不需要每次操作的时候选择区域了。缺点也很明显,就是没有一个地方能总览所有区域的数据。有时候可能不小心在某个不常用的区域创建了主机,后来忘记管理,产生了不预期的费用。

  在所有的功能界面都划分不同的区域,操作的时候选择。以阿里云,腾讯云为代表。好处是方便提供总览的数据,同一个功能下切换区域也比较容易,但缺点是每次操作都要选择区域,不小心就把主机建在错误的区域里,如果是按月付费的只能通过客服退费。

  这两种方式,个人倾向于第一种做法。

  从后台界面使用体验上来说,青云的后台界面美观易用,操作后异步界面更新机制做的很完善,后台数据的一致性以及依赖关系也比较完善。阿里云这一年后台界面比14年我第一次用的时候改观很大,不过缺点是操作后,后台不能立刻展示状态,有延迟。比如创建一台主机,要在主机列表页面等待几十秒刷新才有,这个体验很不好。UCloud有一次我删除资源时没有按照正确的顺序,导致有一个资源一直删除不了。腾讯云删除的资源其实是做了个隐藏,可能担心用户申请恢复,所以数据一致性上有问题,比如删除的主机在VPC的主机统计数字中依然包含,导致VPC无法删除。

  AWS 有一套复杂的IAM(Identity and Access Management)账号机制,支持用户,组,角色,权限,策略等概念,可以通过不同的组合,精细化管理所有资源,还可以集成第三方的SAML,OpenID等账号提供服务。有了这套账号机制,第三方完全可以基于AWS的接口做AWS的增值二次开发销售。

  按量付费 就是使用多少付多少,和电一样。这方面做的最彻底的是青云,只提供按量付费,并且计费能做到秒级。阿里云和UCloud同时也提供按量付费。不过阿里云的按量付费推出不久,要比按月付费贵许多。青云和AWS的按量付费对资源是细粒度划分的,比如关机的时候只收取硬盘费用,阿里云和UCloud当前还做不到这点,关机依然是按照整个主机收费的。腾讯云当前还不支持按量付费。

  按月付费 就是按月或者年直接购买具体的主机。阿里云,UCloud,腾讯云支持这种模式。这种模式最大的问题是主机和付费账单绑在了一起,一旦主机系统出故障不能启动(虚拟机这种问题很常见),用户不能自己创建新的主机然后将费用从旧的转移到新主机,只能通过客服退费然后重新购买。所以这种方式一般都提供客服支持X天内无理由退服务器。

  预留实例模式 这个是AWS独有的模式。这种模式下,用户购买的是实例的类型,相当于和云厂商签订了一个协议,预留某类型的实例X个给用户用一年。可以一次性付清,也可以按月支付,不同的支付方式优惠的额度不一样,但比按量付费便宜。购买后只要用户实际使用的实例类型和预留的匹配,计费就按照预留模式计费,不和具体的主机绑定。这种付费机制,一方面解决了纯按量付费的情况下,厂商不方便对自己机房的容量做比较长远的规划的弊端,另外一方面解决了按月付费的情况下,主机和付费绑定带来的不便的问题。但同时带来的新的问题就是计费规则复杂,我用了好长时间才看明白AWS的消费账单。

  付费机制其实影响着整个云的方方面面。整体趋势上来看,按量付费是大趋势。同时按量付费简化了用户的操作和使用成本。举一个朋友的例子,朋友在腾讯云上买了台服务器部署个系统,年前又充了一笔钱,准备年后看看是否需要扩容。年底要开报账了,结果发现腾讯云的规则是只有购买了服务器的金额才算是消费,才能开,最后无奈只好把现有的这台机器购买了好多年。另外一方面,按量计费是弹性的基础,不支持按量,如何弹性?

  下面的表格是各家云服务的1核1G主机的费用比较:(不包括带宽以及磁盘费用,没有具体测试各家的1核1G主机性能是否有差异,仅供参考)

  本来还可以从API以及IaaS云提供PaaS服务这两方面可以做下对比,对运维自动化来说,API非常重要,对降低运维成本来说PaaS服务也很重要,但这两方面的评估成本比较高,所以没有包含在内。本文也仅仅代表个人观点,尽量以一种客观的态度表述各家的特性,写这篇文章的目的只是从我个人的角度写一点使用体验,给云服务提一些,如果有事实的表述错误或者遗漏,还请指出。

推荐:

关键词:个人年终总结