Serverless AI训练营:课时1:初识 Serverless(上)(四)
课时1:初识 Serverless(上)(四)
在更底层的层面上,云服务提供商通常会对您的实例进行一些上限限制,包括您可以在特定时间段内上线的实例数量。您还可以在一些地方添加白名单或实施一些特殊的逻辑操作等等。
在这个层面上,他们可以帮助防止一些恶意攻击的发生。因此,不管是从外部还是从云产品本身的角度来看,它们都在增强安全性方面采取了一些措施,包括对抗各种攻击手段。可以看的出开发者的事情越来越多,使用者所负担的越来越少。
五、核心价值
刚才我们描述完之后,您认为架构的优点是什么呢?大家可以思考一下,实际上在整个过程中,开发者或开发团队的责任逐渐减少了,而运维团队的工作也在逐渐减少,而云厂商的责任则逐渐增加。
在阿里巴巴内部,有这样一句口号,叫做“把复杂留给自己,把简单留给他人”。
我认为架构在这一方面与阿里的价值观有一定相似性。它将复杂的任务交给云厂商,将简单的任务留给更多的用户和开发者。这是架构交付的一个核心价值,可以总结为降本提效。
云厂商为用户提供了服务器管理、运维等工作,同时提供了数据库、对象存储等后端服务,使用户可以将更多精力放在自身的业务逻辑上。这提高了研发效率,缩短了项目的创新周期。与此同时,用户无需担心服务器运维或基础设施的额外费用支出,也不需要担心更多的运维工作成本。
架构提供了一种灵活的按量付费模型,用户只需按实际使用的资源付费。从交付的角度来看,架构的核心价值在于降低运维成本、降低人力投入成本、提高研发效率、缩短创新周期以及按需付费,从而降低支出成本。
架构的第二个核心价值,总结出了三个词:安全、方便和可靠。
将更多专业领域的事情交给专业人员来处理,云架构将服务器运维和安全相关工作交给云厂商来处理。
实际上,很多服务器运维和安全领域的工作对于许多用户来说难以做得更好,将这些任务交给云厂商在某种程度上增强了自身业务的稳定性。一旦交给云厂商处理,架构可以大规模提升整个项目的稳定性,同时,架构相对于其他架构来说更加简单。
尽管刚才的图表可能看起来更复杂,但实际上它更加简单,因为外部这些组件已经由云厂商提供,无需自行构建。这意味着用户需要管理的组件更少,这使得项目管理更加简便。此外,架构具备弹性能力,能够自动扩展,以适应流量的增加和减少,从而确保业务的安全和稳定。
专业的团队为用户提供安全性能保障,使架构具备以下五个特点:安全风险更低、资源开销更小、符合绿色计算思想、更加方便管理、弹性扩展符合需求。在这里,有一个相对抽象的术语,即符合绿色计算思想。
实际上,现在国家和全球都在强调资源的可持续性、环境友好性和资源节约。
架构在一定程度上完全符合这种思想和模式。首先,让我们思考一下,如果每个人都有自己的服务器或实验室拥有服务器,那么这些服务器的资源利用率通常是多少,综合资源利用率是多少,服务器的资源利用率在10%以下的时间有多少,达到80%以上的时间有多少,是否曾经达到100%,有多少次,通过这种思考,我们可以发现,通常情况下,服务器的资源利用率非常低。
但是,架构在一定程度上帮助用户提高资源利用率。如果您花100块钱购买了一台服务器,然后这台服务器一直在运行,即使在某个时间点上,它的资源利用率只达到10%,那么您实际上浪费了90%的资源。但架构不同,它根据实际使用的资源来收费。
如果您使用了10%的资源,您只需支付10%的费用;如果您使用了50%,您只需支付50%的费用。因此,架构在一定程度上希望让用户的支出与他们所获得的资源利用之间达到平衡,这也符合绿色计算思想。
基本上,这就是架构所提供的三个核心价值:快速交付、毫秒弹性、更低成本。刚才还提到了架构面临的挑战,以及它的一些优势,包括提高效率、提高安全性和稳定性、更高效。
六、面临挑战
实际上,任何技术架构的发展都有其利弊,包括架构本身。尽管架构具有许多优点,吸引了许多人关注并将他们的业务迁移到架构上,但它也面临着挑战,正如我们刚才讨论的云计算一样。尽管云计算被认为可能引领下一个十年的发展,但它也伴随着一些挑战和问题,架构也不例外。
根据我们刚才的描述,架构的一个特点是弹性伸缩。当一个请求到达时,架构会创建一个实例来处理它。这意味着它包括了一个资源准备的过程。
让我举一个具体的例子来说明,假设我向张三发出请求,要求他运行一个程序。在第一种情况下,张三可以立即运行程序,因为他的资源已经准备好,这类似于本地函数调用。而在第二种情况下,张三需要开启电脑、输入密码、下载文件、配置环境、加载代码和依赖项,然后才能执行程序。
这个过程就是资源准备,而架构下可能会面临资源准备时间较长的问题,即启动时间较长。这会导致业务的延迟较高,相对于传统方式,第一次请求的处理可能需要更多的时间,这对于许多业务来说不太友好。
因此,启动时间包括了一系列操作,如初始化工作空间、下载文件、配置环境、加载代码和依赖项,最后才能执行函数。
当资源准备好时,函数可以直接执行。因此,启动时间在架构中是一个重要的因素。在刚才的描述中,我提到了一个具体的词汇,即首次启动时的“冷启动”,我们可以进一步探讨这个概念。
在这张图上,首次启动的定义需要考虑一些因素。首次启动通常指的是函数实例第一次启动的情况。但是如果你在一段时间后再次请求函数,它是否仍然被认为是首次启动,这涉及到实例的释放时间。在实例释放之前,如果再次请求函数,它可以被复用,因此响应时间会非常短。但是如果实例已经释放,并且过了冷却时间,当再次请求时,它将被认为是冷启动。
除了冷启动问题,不同云厂商在事件触发器的数据结构上也存在差异。事件触发器是指函数计算通过云服务或API网关等方式触发的事件。
不同云厂商的事件数据结构不同,这会导致业务逻辑在接入层面发生变化,这是架构的一个明显劣势。它使得厂商锁定问题变得更严重,一旦在一个云厂商上部署,很难切换到另一个云厂商,这是架构的一个不受欢迎之处。
总的来说,架构有许多优点,但也存在挑战和劣势,包括启动时间问题和跨云厂商的兼容性问题。