最后更新:2020-05-28 10:51:04 手机定位技术交流文章
云计算的出现改变了传统的IT架构和运营维护方法。以容器和微服务为代表的技术不断提升云服务在各个层面的技术能力。它们在应用程序和环境中的许多通用功能已经成为一项服务。
在云起源的时代,应用程序开发的新概念和新技术层出不穷。无服务器也被称为一种流行的选择。随着这些技术的不断发展,开发人员可以毫无分心地专注于业务开发。他们不再需要担心云计算的基本概念。他们甚至以几乎毫无意义的方式获得云计算的帮助,以提高效率和产出。
根据高德纳的报告,到2020年,世界上20%的企业将部署无服务器技术。与此同时,各大企业都在探索无服务器领域。无服务器从根本上改变了计算资源的形式,并为企业软件架构设计和应用服务部署引入了创新的技术设计思想。
4月28日,京东云与人工智能事业部云产品研发部建筑师张金柱带来了《玩云六周:无服务器架构设计与应用》的最后一篇文章。从云起源的定义开始,他逐渐阐述了无服务器对云起源的价值和挑战,并深入探讨了基于无服务器的架构设计模式和应用。
张金柱老师说,“无服务器”本身就是一种建筑理念,应该从建筑的角度来讨论。不仅如此,初学者应该主动做更多的实践练习,真正体验无服务器给每个人带来的便利,以及开发效率的提高。
无论你学习什么样的新技术和概念,最重要的是“应用你所学”。在这门课中,张金柱先生还为每个人布置了家庭作业。虽然这是许多学生第一次开始使用这个容器,但他们能够交出令人满意的作业。此外,他们还收到了超实用的云资源包+硬核云初级干货材料+之前课程视频的PPT/PDF,非常有成效!
学习是没有止境的,所以接下来,让我们回顾一下张金柱老师带来的精髓。
从云原语开始
在了解无服务器之前,张金柱老师首先回顾了什么是云计算。简而言之,CloudNative是“一系列架构、研发流程和团队文化的最佳实践组合”
换句话说,CloudNative不是一种技术或最好的架构,而是一个集合。一般来说,它与云密切相关,包括公共云和私有云,包括JD.com和英美烟草。里面还有一些云架构和云基础设施。在此基础上,建立了一套完整的研发流程和团队工作方法。
主要包括以下技术要点:
1.灵活性。过去,当使用单一的软件架构或私人计算机房时,在资源有限的情况下托管或购买物理机器是很流行的。随着业务流程的增加,可扩展性非常差。就云而言,通过使用其规模和基础架构,更容易实现灵活的扩展和收缩。
2.多租户;
3.自助服务。每个人都可以像购买商品一样容易地通过应用编程接口在云上购买资源。
4.基于应用编程接口协作,各种基于应用编程接口的服务(如人工智能)现在都集成到了云中,可以更方便地使用。
5.分布式;
6.抗脆弱性。互联网系统最担心停机时间。通过云功能,我们可以引入高可用性架构并进行破坏性测试。
7.按需申请和收费。云使信息技术基础设施商业化,使每个人都能根据自己的需要实时应用和发布。
从下图中,我们可以清楚地理解云最初是如何落在架构上的。云提供敏捷开发基础设施和公共服务,并与微服务合作,以实现具有高可扩展性、高可用性、强大性能和一致性的云本地架构。
云原型可以理解为一个多阶段的进化过程:
级别1:单一软件架构。一个系统解决了所有的问题,但是它的优点和缺点在这个时候是非常明显的。虽然结构简单,但同时也影响到全身。如果只有一件事情被修改,整个服务将停止。
第二层:这是微服务架构带来的升级。主要目的是分离注意力,减少团队交流,提高效率。
级别3:云和微服务框架带来的变化。根据高德纳公司的最新报告,未来将有云资源管理和运营岗位,主要是通过应用编程接口集成各种云资源和服务,并提供给上层业务开发人员。
第4级:这就是今天的重点,无服务器。无服务器的主要特点是:
1)免除操作和维护,甚至结合人工智能能力改进操作和维护;
2)弹性膨胀和收缩;
3)按需付费;
4)高度自动化和自愈能力等。
让我们仔细看看无服务器。
什么是无服务器?
1.无服务器的定义和理解
加州大学伯克利分校对无服务器做了一项研究,主要强调无服务器不是FaaS。每个公共云都有一些功能性服务产品,但这只是计算层面上的无服务器的抽象和实现。无服务器也有大量的服务,如AWS的S3,京东的对象存储,千伏存储等。无服务器带来方便的应用程序,并根据需要付费。
在某种程度上,云是为了集中每个人的技术,指定专人负责,并将数据连接起来形成一个平台。如今,云概念的发展相当于真正赋予了无服务器飞行的翅膀,主要是因为无服务器源于云时代架构的理念,而无服务器只属于云时代。云基础架构层(IaaS),它可以为无服务器灵活性提供基础,并使“灵活性”成为可能。
不仅如此,回顾云计算的历史,从早期的虚拟化(网络、计算、存储),到PaaS、SaaS,再到今天无服务器的出现,这都是云计算进入深水期的体现。对于应用程序开发人员来说,这些需求一直存在,比如开发模式是否改变,效率是否提高,成本是否降低,无服务器是否符合这一阶段,这直接面临着这些问题。
特别强调的是,无服务器并不等同于提供灵活计算服务的FaaS。FaaS只是计算资源的一种抽象方式。
2.无服务器的常见着陆场景
无服务器的常见应用场景可分为以下几类:
1)后端应用程序
随着应用移动发展的兴起,大量的服务器和移动终端已经很好的解耦。后端本质上是一个网络服务,包括物联网的后端。例如,智能设备一直在生成数据并将数据上传到云中。因此,对于海量物联网设备产生的海量数据,只有具有弹性的系统才能满足其需求。
2)事件驱动的场景
这些场景包括文件处理、流数据处理、ETL等。它生成的事件可以绑定到函数服务,并且可以由队列服务实现。在无服务器场景中,只要有一个事件,就可以驱动任务进行调整。
3)人工智能应用类
以一个真实的案例为例,有一家公司提供智能客户服务。虽然夜间的咨询量不高,但也会配备一些运行维护值班同事,因为在智能客服出现问题时,需要运行维护干预。然而,使用无服务器架构可以将操作和维护完全委托给云供应商,而不用担心容量扩展或夜间故障报警。
面向云供应商的通用无服务器体系结构:事件层> FaaS >老板
值得注意的是,需要区分业务影响评估和部分影响评估。BaaS主要以API的形式向用户提供服务,这些服务是用户框架中的通用功能。PaaS的概念非常广泛,包括数据库、中间件、网络服务器等。,可以包括在内。因此,可以简单地理解,BaaS是PaaS的一个子集。
3.如何使用无服务器
目前,无服务器仍是一片蓝色海域,相关标准尚未统一。然而,主要制造商正在积极推动统一制定相关规范和操作标准。
无服务器的常见三层架构:客户端、服务器和数据。所有事情都可以在这里处理,包括购买、搜索、用户管理等。
下图显示了电子商务场景下的无服务器架构图:
最后但同样重要的是,常见的无服务器工具包括公共云、私有云和无服务器平台的打包工具。公共云是公共云制造商。私有云主要是Kubernetes,开发人员可以基于Kubernetes构建无服务器架构。
无服务器的未来
已经说了这么多关于无服务器的优势,前面还有许多挑战。主要包括以下几个方面。
首先,它忽略了及时性。在过去,网络服务可能是后端,用户可以在处理完他们的请求后返回。然而,在无服务器体系结构下,用户请求的路径变长,导致服务响应时间变慢。
其次,它阻碍了分布式系统的发展。在无服务器环境中,有一些东西,比如选举、数据一致性、事务等。,这是无法很好解决的。这导致了一些必须通过分布式架构来解决的需求,而这是无法实现的。
第三,用户在意识形态上没有被完全接受。这主要体现在对安全的担忧,将自己所有的数据,或不完全放心。
最后,IaaS层的挑战,在无服务器的情况下,我们希望容器能够启动得越来越快,性能损失越来越小,这对IaaS层提出了更高的挑战。
尽管有许多挑战,随着云基础设施的成熟,无服务器也应该发展得更好。总而言之,未来来了!

本文由 在线网速测试 整理编辑,转载请注明出处。