拥抱开放,Serverless时代的下一个征程时代备受推崇。Serverless的使用场景也从事件驱动、数据处理等具体场景,转向更广义的WEB、微服务、AI,进而渗透到电商、互娱、旅游,甚至传统行业。在Serverless的普及和推广过程中,虽然开发和维护人员认同其降本提效的核心价值,但也被Serverless一系列包罗万象的特性所困扰,如供应商锁定、黑盒、全屏蔽;迁移成本高、故障排查难、根因定界分析难等痛点亟待解决。所谓开放,就是用户可以摆脱心理包袱,在不改变语言应用的情况下,从任何平台迁移到Serverless。原有架构可以与Serverless架构融合,实现云与云之间的互通互通。拥抱开放之后,Serverless将不会是高不可攀的需要修改以适应兼容性的技术实验,也不会是脱离原有技术体系的独立数据孤岛,而是承载技术开发者。既理想又现实,是让技术更具包容性、普适性和共享性的最短路径之一。阿里云在Serverless领域坚持持续投入,技术竞争力保持领先。SAE(ServelessApplicationEngine)作为业界首款面向应用的ServerlessPaaS,可以提供更低成本、更高效率的一站式应用托管解决方案。2018年内部孵化之初,SAE秉承零门槛、零改造的宗旨,开展应用(任务)Serverless改造和落地实践,不断积极寻求融入产品研发流程,提升DevOps全流程体验。三年内帮助千余家客户实现云原生Serverless应用。SAE当前和即将推出的功能围绕“拥抱开放”展开。我们来看看SAE目前提供的产品特性,以及背后的思维逻辑。1、Serverless部署架构的开放性。事实上,很多用户的应用并不是从头开始使用Serverless,而是出于对Serverless概念的认同,基于架构升级演进的需求,期望原有的部署环境,如物理机、Cloudhost,Kubernetes在Serverless中迁移或混合。在这种场景下,应用迁移和改造的成本就显得尤为重要。然而,Serverless陡峭的学习曲线和厂商生态锁定的刻板印象让很多开发者望而却步。如前所述,SAE专注于零门槛、零修改迁移,应用可以直接部署在SAE中,无需修改任何代码逻辑。对于非容器应用,SAE也提供了内置的镜像构建能力,并借助发布这使得整个CICD流程化、自动化、可视化。下面重点介绍跨平台的使用场景。1、SAE与云主机混合SAE支持与云主机(ECS)实例混合部署,实现存量迁移场景下的快速弹性,发挥SAE的优势。整个过程不需要任何开发和改造。具体方法是将存量ECS实例添加到SAE实例声明的SLB后端虚拟服务器组中。SAE应用会自动动态维护SLB后端的实例,统一对外提供服务。2、SAE与Kubernetes的流量交互SAE支持与Kubernetes的流量交互(ACK),借助公网SLB/Ingress,或者同一VPC下的私网SLB能力配合PrivateZone内网域名解析,暴露申请服务地址;或者在微服务场景下使用同一个注册中心,在不改变原有架构的情况下,实现SAE实例与Kubernetespod的通信交互。2、Serverless指标数据的开放性Prometheus是一个开源的监控报警系统。主要特点包括多维数据模型、灵活的查询语句PromQL、数据可视化展示等,已成为云原生监控系统的事实标准。SAE提供开箱即用的可观察性能力,全面对接兼容Prometheus生态,开放核心指标数据,满足用户在监控领域灵活配置、定制化、扩展性的需求。1.基础监控数据SAE对应用运行实例的CPU、负载、内存、网络、磁盘等数据进行采集和分析,并以动态图的形式展示,方便用户了解状态实时、直观地了解应用程序的运行设备。收集的数据将在普罗米修斯中预制,并配置一个集成的可视化仪表板。用户可以通过Grafana自定义大盘的配置。2.应用监控数据对于Java和Php语言应用,SAE可以使用代理技术收集其接口RED等数据。同时,它的数据也在Prometheus中进行了预制,并集成了一个可视化的仪表盘。用户可以通过Grafana自定义仪表板的配置。对于其他多语言应用,SAE将利用EBPF技术,在无侵入的情况下获取七层监控数据,提供全流程非直观的用户体验。Prometheus中也会预制多语言监控数据,用户可以通过Grafana自定义配置dashboard。3、自定义监控数据SAE应用可以根据自定义业务手动暴露自定义指标数据,利用VPC中的服务发现能力连接Prometheus,保证整个采集链路在实例不断变化的环境下稳定.可用性。3.Serverless通用运维的开放性随着产品的不断发展和演进,我们深刻地意识到Serverless并不意味着完全按照需要黑盒化服务器。用户充分信任产品内部运行,同时不断教育用户需要采用serverless的心态和行为方式进行开发和维护,这不仅与用户现有的知识体系和传统运维相冲突习惯,也不利于对各种问题的及时排查和根源定界。用户真正需要的是享有知情权,同时借助全方位运维能力的提升更加高效,自动化实现运维操作,降低运维复杂度,提升运维的幸福感。SAE针对用户普遍需求和痛点,推出了多项解决方案和最佳实践,持续优化和提升Serverless运维能力。1、一键安装Webshel??l和工具,登录实例进行信息采集和故障处理,是传统运维必不可少的环节。在Linux环境下,已经有很多成熟的问题诊断工具供用户使用。SAE知道整个应用程序和环境不应该完全被动地交付给第三方供应商。真正懂企业场景和业务逻辑的,是用户需要去掌控的。SAE在暴露应用实例的基础上,提供了Webshel??l功能,用户可以像访问本地主机一样访问Serverless实例进行运维操作。同时,为了更高效的排查问题,SAE提供了一键安装工具的功能,解决了自定义镜像中命令阉割的情况,适配多种操作系统,可以在里面下载和更新工具专用网络环境。2、双向文件传输的高效运维一直是SAE关注的重点。在日常的开发、部署和测试过程中,用户经常会提到希望将本地文件或配置上传到云端应用进行临时调试,或者将云应用的日志、配置、Javadump、coredump下载到本地。作为运维领域的刚需,SAE推出了Serverless场景下的双向文件传输功能,实现了无软件依赖和应用入侵的上传下载功能。3、开发跳板机与终端云联调测试过程中,由于应用本身对环境的依赖,考虑到启动部署的速度和效率,开发者往往不愿意重启应用在本地的云上。用于本地调试的云执行环境。这其实是serverless场景下的一个大问题。SAE借助内置的跳板实现本地服务与云端SAE应用的互调,支持Java/php远程调试和远程访问实例,真正实现了本地和云端环境的融合。合二为一。4.总结拥抱开放,Serverless时代的下一段征程。这不仅是SAE在云原生浪潮中的愿景,也是SAE将继续关注和坚持的方向。未来,SAE将致力于为用户以最小的修改和认知成本为产品提供更强大的技术支持和体验。它将在部署架构、索引数据、通用运维乃至所有方面不断细化和发展开放的理念。Serverless时代的发展历程。
