关于管理和运维容器环境,你了解了吗?您知道如何在您的数据中心大规模部署它们吗?您知道如何将现有的所有应用程序迁移到容器吗?您知道如何让您的程序员使用AgileDevOps,让您的IT管理员成为云计算经理吗?什么,还没有?我不愿意告诉你的事实是,IT世界已经跳过了容器这个话题。现在您需要关注下一个大趋势:无服务器计算。我不知道人们是否认为将这种最新的应用程序架构趋势称为无服务器计算是个好主意。毕竟,如果代码不在计算机上运行,??它仍然不会执行任何操作。在所谓的无服务器架构中,仍然存在某种形式的服务器。我猜这个名字是在暗示当你提交你的应用程序代码并需要执行它时,你不需要关心任何与服务器相关的事情,它让你觉得服务器不是基础。在云计算基础架构即服务(IaaS)中,您无需管理物理基础架构;而在云计算无服务器计算中,你甚至不需要管理任何虚拟机、操作系统或容器。Serverless能提供更多的服务吗?那么无服务器计算到底是什么?它是一个服务,程序员只需要编写相应的代码,直接将代码部署为一个独立的、有功能的微服务即可。您可以轻松构建这些微服务来实现那些无服务器框架,并通过策略使它们响应支持的事件或API调用。无服务器架构旨在扩展固有的无状态微服务——这与当前的容器技术不同,后者可以同时支持有状态和无状态计算。对于需要高弹性、事件驱动操作的应用程序,您可能需要使用无服务器函数,或者创建随机函数流来将原始数据处理成最终数据。这种事件数据流非常适合物理网络所需的处理。它对于在实时数据流上运行的应用程序也很有用。无服务器云计算的一个著名示例是AmazonWebService的Lambda服务。该名称取自函数式编程中使用的匿名函数lambda。在某些编程语言如JavaScript或Ruby中,一个函数可以在预定义的变量范围内和代码函数的末尾执行。还有一些编程语言具有实际的lambda运算符或在运行时动态创建函数对象的编译器(例如在执行其他代码时)。那么对于无服务器计算,真正的基础设施是如何存在的呢?基础设施仍然存在,但它只是在虚拟化层之下。现在对于软件定义的计算,随着无服务器计算的发展和发展,应用程序代码和硬件之间可能有数百万行系统和平台定义的代码。这是好事,证明摩尔定律还没有过期。下面我们来看看我们构建自己的私有云和无服务器环境所需要的复杂的虚拟化组件:1.在底层,当然需要物理服务器。但是这里我们可能要改变传统物理服务器的概念,而是把它想象成一个动态供给不同组件(处理核心、硬盘、内存、接口)的资源池。2.然后我们需要在这些物理服务器之上做一层虚拟化。管理程序集群可以控制这些物理服务器,从而提供一些永久虚拟机。我们可能还会添加一些云供应服务和自动化工具,比如OpenStack中的一些服务。3.在虚拟化和云环境中,我们需要部署容器集群来提供容器平台服务。类似的软件包括Docker、Kubernetes或OpenShift。4.然后我们需要安装一个容器化的serverless计算平台,为应用提供lambda服务,类似Platform9的Fission.io。5.最后,我们创建和部署微服务应用程序以允许一些功能代码在所有这些抽象层之上运行。例如,微服务的功能可以用JavaScript编写并定义为lambda服务。然后将其与某些触发器或API节点匹配。这样,当某些事件触发lambda服务时,它就会在自己的容器中执行相应的代码。这个容器会运行在容器集群中,而容器集群会分布在运行在hypervisor集群中的多个虚拟机中,而这些hypervisor会运行在不同的物理服务器上。应用程序开发人员可能只看到并只与lambda服务接口交互,因此他们可能会觉得那些不可见的资源是无服务的。这种架构确实使基础设施在各个方面都更“像云”。现在它可以动态地提供高度可扩展的、高效的、按需的、弹性的、健壮的资源,并充分利用集约化的业务资源。IT现在用它做什么?无服务器对IT意味着什么?我们刚刚残酷地了解到无服务器计算增加了另一个架构层来管理。我们都没有完全消化容器在生产环境中的出现和管理。您能想象您必须管理数千台虚拟机的未来吗?现在想象一下,明天您将需要管理100,000个临时容器,并且每天可能需要管理数百万个微服务操作。看到如此繁重的任务,IT可能会放弃,让用户上公有云。但对我来说,这虽然是一个很大的改变,但也是一个很大的机会。IT部门成为内部服务提供者,Serverless是一项值得为之奋斗的新技术。IT可以利用这项新服务并专注于日常基础架构运营,以开发有助于他们的业务运营新功能。IT可能会变得更像ITDevs,导致接受事件驱动的功能功能(现在是IT运营的基础)、云管理(IT财务管理)、矿机数据(作为IT数据管理的扩展)等等。换句话说,从阻力最大的路径中学习可以改善我们未来真正的业务运营——再加上大数据、物联网、全球化、移动化等大趋势的使用,业务运营将变得越来越像IT运营。
