Serverless AI训练营:课时3:阿里云 Serverless 助力企业全面拥抱云原生(三)
课时3:阿里云 Serverless 助力企业全面拥抱云原生(三)
正常情况下,将一个镜像部署到引擎平台后,启动服务经历了几个阶段。首先,在最左边的系统中,经过调度和创建实例的过程,紫色部分是涉及预测。接下来是用户部署的一个项目,这需要加载镜像和配置实例。
这一过程包括镜像的拉取和实例的准备,然后启动容器。在这个阶段中,如果是Java应用,会执行Java的启动过程。最后,一旦容器启动,就可以提供服务,蓝色部分代表运行中的应用。
对于引擎平台来说,为了提高效率,我们会详细查看这些阶段,找出哪个阶段消耗时间最多,以及哪个阶段可以优化,以节省从部署到正常运行所需的时间。
首先,我们来看一下关于调度的优化。在用户首次部署时,他们可能不太在意延迟,可以接受花费10到20秒的时间,因此系统会经过一轮调度。但随后的部署、更新或审批流程,用户希望更快完成。这时系统不再需要进行完整的调度流程,它可以直接在已有的资源上拉取新镜像进行更新和升级,从而提高了效率,预计可提高42%的效率。
另外,避免使用镜像,直接做热更新,也能够提高30%的效率。通过在创建实例的时候提前准备资源,也可以帮助用户提高容器效率。针对Java应用的启动,提供了一个优化策略,使用经过性能优化的Java版本,提供了很大的加速效果。
监控和诊断方面,用户专注于他们的应用,能够实时监控服务的状态和性能对他们非常重要。
系统提供了监控和调试工具,帮助用户迅速定位问题。
接下来,我们将关注微服务的上线流程。这包括几个步骤,如代理注入、微服务的编排等。根据不同情况,可以选择不同的上线方式,有些情况下可以直接将代码部署到生产环境中,这非常简单。
当将一个应用程序部署到SE平台上并准备提供服务时,这个过程经历了多个关键阶段。首先,我们需要考虑系统的调度和资源分配。在这一阶段,系统会进行一些调度工作,为应用程序创建一个合适的执行环境。这个过程可以用一个图示来表示,如下所示:
调度和资源分配:在第一次部署应用程序时,对延迟非常敏感。系统将会进行资源的调度,以确保应用程序得到所需的资源。然而,随后的更新和扩展可能不需要再次进行完整的调度,因为系统可以复用之前的资源。
镜像加载和容器启动:在资源分配之后,应用程序的镜像将会被加载到容器中,并启动该容器。对于Java应用程序,启动过程可能需要额外的优化。
服务提供:一旦容器启动,应用程序就可以提供服务,允许外部访问。