原创: 费良宏 InfoQ 昨天
费良宏,AWS 首席云计算技术顾问,极客时间《费老师的技术闲话》专题作者。
在 IT 行业以及软件开发领域从业超过 20 年的他,曾任职于 Microsoft、Apple 等知名企业架构师、技术顾问等职务,参与过多个大型软件项目的设计、开发与项目管理。目前专注于云计算以及互联网等技术领域,致力于帮助中国的开发者构建基于云计算的新一代的互联网应用。
9 月 20 日晚,费良宏在极客 Live 与大家作了主题为“从惨遭翻车到成功落地,大厂技术人要经历哪些风浪”的分享,今天将直播回顾文分享给大家。
1我们经历过的计算机年代
DOS 年代这个时代使用的环境是命令行的环境,操作系统叫做 DOS,那时候计算机环境的功能是非常弱的,内存很小,硬盘也很慢,所以开发一个好的软件非常不容易。
Windows 时代DOS 与 Windows 并存了很久,当时有朋友坚持在 DOS 下继续他们的开发和工作,当然很残酷的是许多人就被淘汰掉了,新时代来临之后我们就要做出选择,使用新工具、新技能去完成相关的软件开发。
互联网时代我们发现,应用不仅仅是运行在客户端,还有以浏览器的方式去实现软件,完成对数据的访问,仅精通 Windows 开发的很多程序员在这个时代变迁过程当中又被淘汰掉了。
移动互联时代这个时代来临得非常迅猛,我们突然间发现智能化的设备充斥在我们的身边和周围,我们都会着手开始学习像 IOS、Android。
云计算时代这个时代需要每个程序员都具备非常丰富的知识和更多的技能,成为全栈工程师,否则应当能称为一个云计算的软件工程师。
回顾 20 多年的变化,程序员面临的挑战总是无时不在,新的挑战会不断出现,如果我们不能及时调整自己心态,去完善自己技能,就一定会在一次又一次的淘汰过程当中成为那个失败者。
2虚拟化、云计算和容器的技术 最初,我们认为可以用 VMware 模拟出多个服务器环境来做演示、做 POC。
1998 年,VMware 公司成立,虚拟化技术不断的发展,创造出一个虚拟化的时代。2006 年,云计算的时代出现了,它利用了虚拟化带给我们的巨大成果,大家都认定,云计算就是这个时代 IT 发展的一个必然选择。
2013 年,Docker 悄然出现,当它以一种简化的方式,呈现在我们面前的时候,被我们误以为只是一个小工具,但是没有想到它带的变化非常深远,甚至怀疑会不会颠覆云计算。
2015 年,云计算和 Docker 产生了一个交集,当时 AWS 发布了第一款基于容器技术的云计算服务,云计算和容器融合在了一起,以一种新的方式呈现在我们面前。一个新的技术的出现,如果它缺少一个好的载体的话,恐怕就只能是昙花一现。云计算和容器结合的时候,容器的载体利用云会被加速放大,我们真正的业务系统和生产环境,可以真正地署到容器 + 云的环境中。容器本身所存在的那些局限和不确定因素都通过云解决了。
2017 年,一个新的概念出现了,就是 Kubernetes,也就是我们常说的 K8S,大大小小的用户社区、技术组,或者相关的技术会议上,谈到的话题里都会有 K8S 相关的内容。但是,刹那之间 K8S 的基金会 CNCF 就出现了许许多多新的成员,比如像 AWS、微软,国内的阿里、华为、腾讯等等,K8S 就成为了云计算服务提供的选项之一了。
今天的 K8S 依然会不断的发展,但是 K8S 本身有一些危险和不确定性:
一个不确定性,是随着新的成员加入到 CNCF,对 K8S 的控制和发展的趋势变得更为的复杂和不确定了,许多的公司都会将他们的技术标准和规范加入到 K8S 标准中,使 K8S 有可能成为一个非常庞大复杂的怪兽;
第二种可能性就是,K8S 与云计算的融合导致在不同的云的平台上,出现不同的版本的 K8S,出现不同方言的 K8S 的形态,这种差异化的存在,就使得一致性的产品梦想成为一种幻想,那对于我们的开发者来说,选择一个平台的时候,最终受限于云平台,而不是去选择所谓的 K8S 的统一平台。
容器技术的发展,未来的趋势一定是一个操作系统级别的虚拟化,或者说是容器的机制会通过 Kernel 的方式展现出来,它的效率会越来越高,隔离化的程度也越来越高。
今天我们看到的恐怕还只是容器发展阶段当中的一个小阶段,对于开发者来说,我们未来要学会一种面向平台开发的能力,面向一种大的云计算的环境,去实现我们的产品,实现我们的软件,这是我们必然的一个选择。我相信新的技术、新的方法一定会带给我们惊喜,这也逼着我们去不断的充实和学习这样新的技术,才可能不被这个时代淘汰。
3人工智能,正在产生爆发的能量 人工智能的第一次高峰期,是在 80 年代的时候,当时日本制定了一个新的目标,就是建立第五代计算机。第五代机计算机的核心就是人工智能计算机,它的机器语言选择了一个当时特别热门的语言,叫做 Prolog,它是一种带有推理能力高级语言。由于这个目标过于远大,实现的技术难度和风险过大,结果第五代计算机失败了。当时热门时构建的所谓专家系统、知识库等,在一段时间里都销声匿迹了。这次人工智能的爆发,是很长的时间积累,从 1957 年开始,人工智能的一个达特茅斯会议上开始奠定了这个基础,不断的迭代不断的发展,首先,在学术界、在理论界,然后在工程界、计算机界,催生了新的深度学习的发展。
2015 年上半年的时候,机器学习的主要热点还是百花齐放、百家争鸣,支持向量机还是当时比较热门的一个话题,深度学习还只是选择之一。但是到了 2015 年的下半年,深度学习一下子就成了最主要的人工智能的代表。今天我们谈到所谓的人工智能,基本上就可以等同是深度学习了,深度学习发展到今天,对程序员来讲,有几个比较大的好处:
第一个是开发语言的成熟,因为今天深度学习的开发主要的程序语言就是 Python,它是一个老的语言,是一个非常成熟的语言,也是一个对开发程序员非常友好的语言,对我们的程序员来说,去学习这样的语言,掌握这个技能真的太容易了。
其次是框架的成熟,TensorFlow 等产品都强调了对程序员的友好和易用,今天我们再去为开发应用使用框架的时候,可以忽略掉许多的细节。同样在平台层面,每一家云计算供应商,都提供了更为简单易用的深度学习平台,例如像 automl,它已经简化了很多细节,只让我们关注于程序实现模型,或者进行训练,使程序员不需要再像传统的深度学习一样从理论数学基础、推导的过程去掌握这个能力,可以直接从程序语言、从框架平台的使用上,快速的切入到领域当中去,甚至可以直接使用预训练好的模型,构建一个深度学习的应用,需要的只是几十行,上百行代码。
以前用 SQL 数据库,要对 SQL 的引擎做很细节的了解,了解它的执行策略、优化策略,而今天的数据库引擎,已经足够优化、足够强大,已经为我们完成了所有的优化工作,我相信未来的人工智能一定会发展到这个阶段。
未来人工智能一定是程序员得天下,一定是靠程序推动人工智能,而不是靠科技会议、靠广告去推动,也希望每个程序员能够在这个时代的变化当中,成为这个时代的佼佼者,成为人工智能的程序员。