DevOps在AWS / Azure / Aliyun 的应用分析&对比

最近我在AWS,Azure,Aliyun,这三大云计算服务商上,进行了很多DevOps开发,理解并体会了很多,因此,想客观地分享下我对这3A云的使用经验。


1. Storage 存储

  • AWS(Object Storage),一個命令可以大量输入输出并可以转化成公开的URL供外部下载。
  • Azure Storage Account(file/blob/table),但每个价格不同。最常使用的是blob storage,但是这个需要一个一个输入输出,非常花时间。Azure拥有像Azcopy 或 Azure Storage explorer的工具,但是这些不適用于DevOps。从blob 一个一个copy文件大概需要2秒/文件,一般你需要先做一个list,如果你的list大概有600k的文件,你的Azure npm cli program要么会挂掉要么就会变得非常非常慢。
  • Aliyun 阿里云OSS和AWS的Object Storage有点相似,但是工具不多,你要靠提供的API自己安装工具。

2. 命令行工具
  • AWS:pip install awscli —— 可以帮助你在AWS<service><param>整体控制。这个由python和开源写成的,所以你就可以在这个基础上定制自动化。当你要提交一个job,它会直接发送到服务器,生成一堆ID或Job ID,然后你就可以在console上检查或用CLI loop检查。
  • Azure:npm install azure-cli——我觉得这个设计不是很合理。第一点,Azure整体用的ARM模式(有点像AWS Cloudformation)可以分析本地的模板template,然后一个一个发送指令到Azure API。所以你的CLi console就必须一直连着Azure。假设,你在中国大陆,翻/&*墙受到影响,导致连接中端,你的命令行就不能顺畅运行。当然,如果你可以远程放你的脚本,也意味着你需要一个“启动服务器”初始化你的Azure 账号。第二点,登陆Azure,需要手动Oauth,把你的API/重要机密储存到一些不容易被发现的地方,你必须还要设置一些可用参数。从DevOps的角度上,这样很难自动化,把一些机密copy到另一台机,像是在Azure上做一个Chef服务器也是很难的。
  • Aliyun:参考https://github.com/aliyun/aliyun-cli/tree/master/aliyuncli  ——目前还没有发现类似于AWS和Azure的功能特征。装上这个aliyuncli,他一般只会出现一些默认功能,比如账户管理和ECS。如果你想管理OSS,你就必须安装自己的model。我感觉目前的阿里云的程度只是到AWS三年多前的阶段。
3. 价格:
  • AWS和Azure的价格比较功能,所以我想重点谈下阿里云。举个例子,在 intl.aliyun.com 上,没有多少人知道,即时你Stop了阿里云的instance(补充:那个界面里是英文,所以不知道准确翻译过来的中文是什么,我本来也默认Stop就是停止的意思),阿里云依然会跟你收取几乎和开机同样的价格,除非你真正释放掉那个资源。作为一个长期使用云计算资源的user,Linode,Azure,AWS…基本都用过,这个收费的动作让我有点措手不及。而且,当机器用得超过4GB的内存,阿里云就变得相当贵了。我曾经开过5个超过16GB的机器,然后Stop了,2个星期后,我发现阿里云依旧在持续收费,我只能释放掉我所有的机器。回看那个我明明stop了,费用却在running的这些机器,这期间的费用达到了500-600刀。
  • Azure的订阅(subscription)有时候有点奇怪。他们的idea很好,每个账号都可以开不同的订阅(subscription),每个订阅都支持不同的core limit(就是在这个订阅里面你可以有多少CPU core),而且花点时间就可以增加这个限制。大多数人愿意为DevOps花钱因为它可以快速部署。但是Azure的默认core limit(最低为4,普通为16)还是有点要命。
  • 要给Azure的中央控制32个赞,你可以在1页中就看到你所有的付费。而AWS和Aliyun阿里云的付费的页面设计模式总会让你多少多付点钱。因为你很容易就会忘记关掉机器,如果你用AWS或阿里云不想多付钱的话,就要使用一些信得过的服务。
4. 带宽

关于带宽,对于AWS和Azure也没有过多评价,再来说说阿里云。阿里云有两种网络付费模式,pay-as-you-go即付即得和subscription订阅,每个机器都可以选择你想要的付费模式,这个设计对中国大陆来说非常好。但是顺带一说,pay-as-you-go ECS 机器只支持最高100Mbps,这个对现在来说是很慢的了。5年前香港的带宽就已经是100M了。现在这个成熟的互联网区域,100M不是很合理。

5. Infrastructure as code架构即代码

(以下错了请指教)
我能找到的IaaS层的Infrastructure as code架构即代码有(1)AWS Cloudformation (2)Azure ARM (3)OpenStack Heat.
阿里云上没找到类似的可用工具,希望他们很快可以有,让我玩下。
从DevOps角度,Infrastructure as code架构即代码是个相当重要的工具,节省开发时间,快速部署等等。

6. 中国大陆区稳定性

AWS>Aliyun阿里云>Azure。去年的实际数据,Azure中国一年死两次,阿里云一年死一次,没听到过AWS中国死过。
AWS的稳定性非常高,目前AWS中国区针对企业用户。

7. Auto-Scaling自动伸缩
  • Auto-Scaling是AWS长期以来称霸云界的杀手锏。我可以在实例自动伸缩以后再机器做配置。所以我可以前摄性地做任何改变!
  • Azure ,你必须设定服务器的最高用量,最高扩容到那个程度,比如你要先定义,最高10台机,如果Azure认为目前流量不繁忙,就会缩减到2台,等到流量来的时候,Azure才会按照你的设定走。所以这个伸缩的过程是先要设置【最高用量的服务器】,还要先进行机器【配置】,再启动Auto-Scaling。那么如果我想从git做动态代码部署呢?或者迭代参数呢?都不行。这点让我有点郁闷。
  • 阿里云,虽然几乎没有DevOps工具,但是他依旧支持auto-scaing。但是你必须创建你的定制图像,然后根据流量,把新机器创建到集群。同样,没有Cli/Cloudformation,要管理auto-scaling很难。我是能不碰这些就不碰这些。

以上是我一些个人看法,欢迎指教、讨论,也欢迎转载,转载前请联系我!






猜你喜欢

转载自blog.csdn.net/keithyau/article/details/54632592