导读
最近网上有很多各种各样的“国内公有云技术分析”,“云计算实力榜”,“公有云技术评析”等等五花八门的文章,可谓是乱花渐欲迷人眼。看了这么多文章,很难发现一篇真正的从开发者,用户角度来客观评价国内公有云厂商基础服务实力的有深度的文章,小编本着对开发者同学们负责的角度来深度分析一下目前国内几大主流公有云厂商的技术实力,为各位同学在选购公有云产品的时候提供一些帮助。
由于“国内公有云厂商”这个话题太大,小编决定把这篇文章做成一个系列,每篇文章深度介绍两家厂商,每家厂商提供的各种IaaS, PaaS服务纷繁复杂,小编也不会按照传统的方式将每种服务都做介绍,俗话说贪多嚼不烂,小编挑选几个在开发者日常工作当中最常用的几个服务作为切入点,从性能,稳定性,服务质量,价格等多个方面做一个综合介绍,希望大家在读完这个系列的文章以后能够有一个清晰主观的认识,而不是被某家厂商洗脑而失去选择能力。
废话不说,进入今天的主题,先选国内公有云2016年全年营收第一梯队的两家:阿里云和微软Azure中国版。
选择标准
阿里云和Azure都提供了数十种服务,涵盖IaaS,PaaS, SaaS,但是由于篇幅的原因,我们这里无法详细对比每一种服务,我们针对目前国内比较火的互联网行业,分析这个行业的典型技术架构就会发现,绝大部分的公司在使用公有云服务的时候都会把重点放在以下几个服务(排名不分先后):
虚机
- 单机,虚机集群,弹性计算池等作为云计算的基础模块,虚机的重要性不必多说,几乎所有的计算任务都是通过虚机来承载。虚机的使用方式也各有不同,可以使用单独的虚机,也可以使用弹性虚机池来做自动的水平扩容,同时可以使用高可用虚机来规避意外宕机的风险。
存储
- 块存储,文件存储,对象存储等S3宕机事件对全球互联网公司的影响可见一斑,企业对高性能,廉价的存储依赖性越来越强,尤其是步入AI时代,数据内容上至几十个GB的二进制文件,下到几个字节的信息,依赖公有云提供的高可用存储设备极大地简化了企业搭建私有化存储的成本(想象被某字母公司的SAN存储绑架的痛苦吧)。
网络
- 虚拟网络,子网,负载均衡,路由表,应用程序网关,vpn等大型企业在公有云部署虚机的时候,首先考虑的就是网络的划分,传统的基于二层网络的方式无法有效地对子网进行隔离,存在安全隐患,企业对使用虚拟网络进行资源的隔离有很强的需求,同时在部署应用的时候,如何通过公有云提供的有效的负载均衡,应用网关实现流量分发也是一个非常常见的应用场景。翻墙?哦……额……我好像刚才打酱油去了。
CDN
- 节点数量,延迟等对于很多互联网公司来说,CDN是一个必须的选择,尤其是视屏点播,直播行业,即使是一般的中小型公司,其网站上的很多静态内容,比如图片,音乐等也需要通过CDN加速来提高用户体验。不用CDN也行,那你得壕到购买足够的带宽来满足那些疯狂的下载吧……
数据库
- mysql,mongodb等还在使用传统的在虚机上安装数据库软件的方式来搭建数据库服务吗?那你out了,公有云提供的DBaaS服务已经被很多公司采纳,数据库服务也算是公有云PaaS层面里卖的最好的服务了,支持开源,支持容灾备份,省去招募DBA的麻烦,没有平台lock-in的问题,为啥不用?
容器服务
- Docker, DC/OS, Kubernetes, Swarm等看看目前Docker有多么火爆,不使用容器几乎出门都不好意思和人打招呼了。不多解释!
我相信上面几个服务应该能够涵盖绝大部分互联网公司的绝大部分业务场景。小编也了解一些国内公有云厂商的IaaS,PaaS销售情况,基本上以上列出的服务就是他们买的最好的几个服务,可以看出,目前国内云计算还处于起步阶段,IaaS的占有率远远高于PaaS,估计在未来几年内,PaaS,SaaS的接受程度会越来越高,同时开放的程度也会越来越高,到时用户既可以享受PaaS带来的开发的便利,又能避免云商平台依赖,两全其美,额……额,跑题了。
对比角度
既然是深度分析,那就得多选几个角度,为了和那些网上极具误导性的评测有所区别,小编选择真正试用两家公有云厂商的对应的服务,通过数据分析,性能跑分来得出一个相对客观的结论,而不是盲目转载,人云亦云。
- 虚机
运行性能
- 虚机性能是不是宣称的那种性能,有没有偷工减料安全性
- 创建出的虚机是否足够安全,会不会被人攻击高可用
- 虚机有没有备份,万一挂了怎么办CLI支持
- 是否有命令行支持,对码农是否友好部署模板
- 是否支持使用模板大规模部署品类/规格支持
- windows、linux,几个核心,几G内存,是不是SSD价格
- 价格是否足够公道
- 存储
品类/规格支持
- 是否具有块存储,文件存储,对象存储运行性能
- 是否足够快安全性
- 是否有安全隐患高可用
- 是否具有异地容错价格
- 价格是否足够公道
- 网络
支持种类
- 是否有虚拟网络,子网,路由,LB,应用程序网关,VPN,高速通道等等带宽和价格
- 具备多少带宽,价格是否足够公道
- CDN
节点数量
- 全球多少个节点?中国有多少个节点?访问速度
- 是否足够快稳定性
- 是否足够稳定价格
- 价格是否足够公道
- 数据库
品类支持
- SQL, NoSQL,数据仓库……性能
- 性能是否足够好价格
- 价格是否足够公道
- 容器服务
易用性
- 是否足够容易部署和使用灵活性
- 是否足够灵活,支持不同编排引擎扩展性
- 是否支持动态扩展价格
- 价格是否足够公道
虚机
运行性能
小编分别在阿里云和Azure上创建了一个虚机,虚机的规格如下:
阿里云 Azure 系列III, 均衡型mn4, 2核8GB, I/O优化, SSD DS2标准, 2核7GB,SSD 物理机规格:Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz 物理机规格:Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz 我们主要对比两个方面,CPU和IOPS,现在流行跑分,那咱们就跑个分试试,我们采用UnixBench软件来跑一下CPU, 先看看阿里云的表现:
Benchmark Run: Tue Mar 14 2017 10:40:43 - 11:08:33 2 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 28893334.8 lps (10.0 s, 7 samples) Double-Precision Whetstone 2328.3 MWIPS (10.0 s, 7 samples) Execl Throughput 3781.1 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 974951.9 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 259734.8 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 3034045.5 KBps (30.0 s, 2 samples) Pipe Throughput 1757059.1 lps (10.0 s, 7 samples) Pipe-based Context Switching 44413.0 lps (10.0 s, 7 samples) Process Creation 9371.5 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 10488.0 lpm (60.0 s, 2 samples) Shell Scripts (8 concurrent) 2075.7 lpm (60.0 s, 2 samples) System Call Overhead 3131434.5 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 28893334.8 2475.9 Double-Precision Whetstone 55.0 2328.3 423.3 Execl Throughput 43.0 3781.1 879.3 File Copy 1024 bufsize 2000 maxblocks 3960.0 974951.9 2462.0 File Copy 256 bufsize 500 maxblocks 1655.0 259734.8 1569.4 File Copy 4096 bufsize 8000 maxblocks 5800.0 3034045.5 5231.1 Pipe Throughput 12440.0 1757059.1 1412.4 Pipe-based Context Switching 4000.0 44413.0 111.0 Process Creation 126.0 9371.5 743.8 Shell Scripts (1 concurrent) 42.4 10488.0 2473.6 Shell Scripts (8 concurrent) 6.0 2075.7 3459.5 System Call Overhead 15000.0 3131434.5 2087.6 ======== System Benchmarks Index Score 1356.5
再看看Azure的表现:
Benchmark Run: Tue Mar 14 2017 03:54:37 - 04:22:49 2 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 31016615.6 lps (10.1 s, 7 samples) Double-Precision Whetstone 2296.6 MWIPS (9.4 s, 7 samples) Execl Throughput 4170.9 lps (30.0 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 1122976.2 KBps (30.2 s, 2 samples) File Copy 256 bufsize 500 maxblocks 296283.5 KBps (30.2 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 3369929.7 KBps (30.2 s, 2 samples) Pipe Throughput 2275748.1 lps (10.1 s, 7 samples) Pipe-based Context Switching 82221.5 lps (10.1 s, 7 samples) Process Creation 10339.1 lps (30.3 s, 2 samples) Shell Scripts (1 concurrent) 11504.2 lpm (60.5 s, 2 samples) Shell Scripts (8 concurrent) 2209.5 lpm (60.6 s, 2 samples) System