砖块化编程

上周,公司组织参加了AWS在线直播讲座AWS Innovate 2018。AWS全称Amazon Web Services,是亚马逊提供的云计算平台。2018第一季度,AWS占亚马逊总运营收入的73%,远超亚马逊的电商服务。亚马逊大力发展AWS的野心,剑指未来「技术的基础设施」。

云计算

所谓云计算,可以看作是把原来分布在公司、组织、个人处的计算机,聚集在一起,并提供一系列的在线程序,帮助你管理、操作这些机器。和传统机房不同的是,你不需要购买并拥有这些机器,你只需要支付租用的费用,而且租用的费用可以精确到小时、分钟甚至秒。

2006年时,AWS仅有三种服务:数据存储(S3),消息队列(SQS),和在线主机(EC2)。数据存储是App的「云空间」,用于存取数据;消息队列用于帮助分布式程序之间通讯;EC2就是统一管理的机房,用户按需租用不同的服务器。AWS的服务对象一开始就是程序员,提供简单易用的服务,让他们专注于编写程序,而不是去费心管理服务器。

经过十几年的发展,AWS逐渐发展成一个庞然大物。全球18个数据中心55个可用区遍布五大洲,提供服务超过一百种。这些数字还在不停增长,AWS已经宣布将继续建立4个数据中心18个可用区。多数据中心,保证了用户较低的物理网络延迟;多可用区,减小因为自然灾害等不可控因素而中断服务的概率。

Amazon Web Services

AWS提供的服务涵盖了程序开发的方方面面,各种服务越来越细,越来越抽象。AWS提供的服务可以分为三类。

第一类是程序运行所依赖的服务,如EC2把程序运行在虚拟机里,S3用于文件存储,RDS提供关系型数据库(SQL)接口、SQS用于多个程序间的通讯等等。这一类服务在解决「租用机房」的基础上,把常用的服务进行了封装,这样用户在使用时可以开包即用,不用自己再耗费时间进行配置和维护。而且因为是按需付费,不需要提前购买昂贵机器和软件授权(Windows、Oracle等),这样在程序使用规模还不大时,只需投入较小的花费。

第二类服务,是围绕第一类服务展开的操作、维护类服务。例如ELB负载均衡,CloudWatch程序监控,Route 53域名管理等。这类服务一般和程序开发无关,更多是辅助程序运行,使其可用、安全、健壮。这些服务好比是在搭建温室,让程序在里面健康成长。传统的IT运维在局域网机房里,用各种原始落后的方式维护计算机;在AWS上,这类服务可以完成同样(甚至更多)的操作,而且更简单、更高效。

第三类服务,提供封装好的复杂技术。虽然可以归类为第一类技术,但这类服务属于各个领域更细的划分,比如物联网、虚拟现实、人工智能。SageMaker提供现成的机器学习算法,Rekognition可以识别和提取图片、视频中的元素,Translate提供文字翻译等等。AWS把这些高新尖的技术,抽象成通用的服务,隐去复杂的技术细节,留下简单直观的API,减小了开发成本。

程序砖块

现代计算机技术发展迅猛,大多数的技术经过一段时间,都会从复杂变简单,从简单变智能。以前写代码,编译原理、操作系统 、算法、数据结构、状态机…多少都要懂点;现在,一两个月就可以从零写一个手机App。以前学习一个算法,知道是开始,理解是前提,真正实现、调试后,才算是学会了;现在,各类开源代码层出不穷,基本上只要「知道」,就能够得到现成的程序源码。

在AWS提供的服务里,第一类服务致力于减小编程复杂度。通过使用这类服务,程序员不再需要关心各类技术让人分心的细节,如软件安装升级、文件读写等,直接编写业务逻辑,按需调用API。正如以前的电脑爱好者,自己买主板、CPU、内存、机箱、键鼠、显示器等「攒」电脑一样,将来在AWS上写程序,只需要把不同AWS服务的API,通过一些逻辑链接起来即可,程序就变成了这些API间的链接。

第二类服务奠定了现在DevOps的流行,不过长远来看,基于这类服务的运维操作注定会被人工智能取代。负载均衡、域名管理、弹性伸缩、安全防护,随着自动化算法不断演化,这些都将变得简单高效。运维好比开车,人工智能就是自动驾驶。

第三类服务,在逐渐完善的过程中,会慢慢变成普通人编程「砖块化」的基础。人们想通过程序解决现实中的复杂问题时,只需要想清楚自己问题,建立模型,然后去AWS上选择不同的服务,把他们「攒」起来即可。等到那个时候,技术不再是程序开发的门槛。技术成了基础设施,随处可见,一如现在的蒸汽机、电力一样。程序开发技术将变得平庸而普通。人们写程序,将变得像玩乐高积木,只需要把现成的砖块组装好即可。

未来

一旦有一天,编写程序实现「砖块化」,认识和使用砖块将变成一项基础技能,变成除了数理化外几乎必备的一项技能。「砖块学习要从娃娃抓起」,「砖块」代替计算机成为小中高必修课。就像这几十年来计算机从研究室,到每个人家里,再到每个人口袋里(手机),「砖块」也会走进千家万户。

You Might Also Like
发表评论