亚马逊网络服务系统 AWS (Amazon Web Services) 是由亚马逊公司创建的云计算平台,提供众多远程网络服务。云计算(Cloud Computing) 的云是什么意思呢,顾名思义就是指你看不到提供计算、储存、服务等功能的硬件,不知道你的数据和服务放到了什么地方,就像是储存和运行在云里雾里的感觉。
最传统的计算中心的模型我们称之为 On Premises,就是你把CPU、网络、存储、服务器等各方面的硬件都买齐了,让工程师把它们都搭建好,然后在这些硬件之上部署你的操作系统、数据和软件,从头到尾把你的服务建立起来。
云计算则是把其中的一部分抽象出来,直接作为服务提供给使用者。云计算目前有三种类型:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
IaaS 把底层的硬件抽象出来,上图中绿色的模块都不需要用户自己搭建,而是由云服务商把它们抽象出来直接作为一种服务提供给用户使用。使用者可以在其上搭建自己的操作系统等。
PaaS 比 IassS 的抽象程度更高,传统的OS接口等也由云服务商提供,用户只需在上面建立自己的应用程序和数据。
SaaS 是离普通用户最近的一层,用户只需进去直接应用它提供的服务就行了,比如Google docs,可以直接为你提供文字处理的服务。
我们可以看到,不同的层次对资源的抽象程度不一样,越往上层越抽象,也越容易去学习。而越往下层走,用户需要管理的东西也就越多,同时对云平台上资源的控制权也越多。
为什么企业需要使用云计算而不使用传统的自建计算中心呢?
首先,企业不需要自己买硬件了。他们可以直接在网上获得资源服务器来提供计算、存储、数据库、网络等服务。企业只需要通过工具把各种资源组合起来使用即可。
其次,云计算为企业提供了很强的灵活性。企业不需要单独用买一个服务器,而同时使用多台服务器。一般搭建自己的服务器需要耗费一定的时间,并且需要在固定地点搭建。而使用AWS的服务,几分钟就能搭建运行起来。
此外,云计算让用户的服务器不用拘泥于一个地点,在地理的分布性上有很大的优势,能更好地服务世界各地的客户。
使用云服务也有需要注意的地方,不能单纯认为使用它就一定比传统方式便宜。5年服务器的使用,计算下来,买服务器大约是7000美金,而云服务虽然在相同情况下只需要0.2美金每小时,可5年要花费8700美金。所以不是说用云计算服务就一定便宜,使用者需要有 cost-performance的意识,要从架构师的角度来看待问题。好资源是很花钱的,我们需要学习的就是怎么样才能又快又省地完成任务。
从全球市场来看,提供云服务商中,微软、谷歌、IBM、阿里云,四家的市场份额加起来也不及亚马逊的AWS。云平台的市场里,AWS占领了 IaaS 中将近50%的市场份额,远远领先其他公司。AWS也已成为云计算行业中的标准,其他的公司也向其靠拢,所以学习AWS的应用范围是非常广的。
由于资源硬件降价、竞争激烈,AWS价格大幅下降。可价格跳水的同时,AWS的收入却不断增长。这说明AWS的发展越来越好、客户越来越多。将来计算资源越来越便宜,云计算的价格会逐渐降低,使用的人也会越来越多,大家不会再自己买自己的硬件。使用AWS成为未来企业发展的一大趋势。AWS作为一门通用的技术,也非常值得投资学习。
当公司把自己的服务转移到云平台的时候,面临的挑战是完全不一样的。没有一个永久性能解决所有问题的解决方案。这就需要架构师搭建正确的架构、提供独特的方案。在没有一键式解决问题的方式时,工程师的作用就十分巨大了。
上图展示了AWS的技术栈:
最底层是AWS的基站,是AWS服务的物理的结构。
Compute, Storage, Networking, Security作为AWS最基本的模块。其中,Networking指的是怎么把计算资源分布和分割,以达到负载平衡。Security规定了资源的访问权限。Parallel Processing, Database, Messaging 都是在四大基本模块之上搭好的服务。
最上一层的服务,就非常application-oriented,面向不同的应用。在其上,公司可以专注于搭建自己的服务和应用。
此外也有很多的第三方开源软件,用来更好地管理AWS的资源。所有这些模块的运用都通过AWS接口来实现。AWS有以下几类:
- Web Console: 在计算资源的走势、价格是很方便,但是在操作计算资源时比较麻
- Command Line:主要运用Python来实现
- APIs:最重要的,只要理解了API的接口,其他的部分都可以信手拈来。第三方应用软件和工具也都是在API上搭建的,这是AWS应用的核心
加注黄色高光的部分都是课程中会讲到的。
在不同的计算资源下,AWS不同的配置会有不同的价格,可以选择的种类很多,这些都是根据需求来决定的。所以,工程师们一定要有价格意识,每个服务的使用都是要花钱的,不要看价格表上的价格很小,用起来其实可能会相当花钱。
AWS也提供Spot Instances的服务。AWS有时候某些资源是用不上的,客户可以不用付全价去使用它们,而是以竞价拍卖的形式去bid AWS上的空闲资源。通过这种形式,用户可以以一到两折的价格来使用AWS的计算资源。但是一旦其他用户出价更高,资源会随时被抢走,因此非常不稳定,需要考虑如何将服务进行快速迁移。
为什要学习AWS云计算技术?
AWS在当今商业云计算平台领域的应用无疑已经处于了垄断地位,市场需求也越来越大,大家有目共睹。详细可以参考下面几篇文章:AWS正在蚕食这个世界。我们认为,AWS技术已经成为了云计算时代的”操作系统”技术。在现在越来越多的公司企业中,已经看不到传统计算资源CPU,硬盘,网络的身影了。工程师间的对话也已经变成下面这样:
这个instance EBS的IOPS太少了,换一个大的instance才能满足这个需求….
你的数据在S3的哪个bucket上面?过多久会移到Infrequent Access上面啊?
哦,这两个instances不在一个VPC里面,你要peering一下才能访问,记得加下我的这个IAM role..
为什么我在这个availability zone里面花的钱要比另外一个zone多啊?
无疑,学习AWS能让你最快地参与到上面的对话里面。
AWS训练营主要面向的对象是?
面向所有背景的同学和软件工程师。如果你想找一份云计算工程的工作,或是做一名技术全面的软件工程师,或者你打算搭建自己的计算数据平台创业,或者你希望在日常的学习或研究里快速便宜地搭建一个数据平台来处理自己的数据等等。
学习的投入和产出?
众多周知,前端技术生态圈的变化是非常非常非常快的,今天你才学了这个技术,可能明天就不得不改学或者迁移到其他技术。相反的是,底层技术栈通用性极强,对稳定性的要求很高,因此相对于前段技术栈来说在长时间内是非常稳定的,不容易被替代。例如AWS的从2006年推出至今,其核心组件服务编程接口并无大的变化。因此今后越来越大的AWS市场需求下,你的学习投资的保值和增值是可见一斑的。