姜沂(倾寒)出品
阿里巴巴新零售淘系技术部S1阶段在使用SwiftUI编写集团内部使用的SOTAPP时,有幸参与到GAIA(FaaS)平台云端一体化的探索,从头到尾实现了一套基于Swift语言实现的遵守GAIAFuntion标准的RuntimeFramework,并完成了从客户端到后端使用统一的语言栈完成一体化链路的探索。作为一个纯iOSNative端开发者,对于后端的技术体感,大部分还遗留在上学期间做的论坛管理系统,加之FaaSServerless等都是一些后端领域较前沿的技术点,尤其是在后端还算是初生牛犊的Swift语言,期间走过无数的弯路,但也学到了很多新的知识。本文是对SwiftOnGAIA的阶段性总结和思考。由于此次技术探索有较多跨端知识,作为一个移动端工程师的视角理解可能非常片面和有误,如读者发现对概念有解释不对,欢迎大家留言区多多指正。由于在技术栈上前端生态已有较多探索,Native端上的探索和技术储备落后与前端,有些实现会随着云端一体化得探索而改变,并不是一个已经完备的解决方案,欢迎各位开发爱好者积极讨论,造福生态。PS:文末附邮箱,感兴趣者可进行深入交流。概念性介绍ServerlessServerless起始是一个比较早的名词,早到年,彼时的我才刚背起小书包走进大学里,但是早期的理论基础已经被提出。随着年AWS的Lambda产品出现,Serverless为云中的应用提供了一种全新的架构体系,Serverless开始大火,之后各大云计算厂商的加入,GoogleCloudFunctions,AzureFuncions,IBMOpenWhiskAliyun以及其他国内的云计算厂商,如华为云,腾讯云,百度云,短短数年时间Serverless产品已遍地开花。随着容器技术,IoT,5G,技术的快速发展,技术上对去中心化,轻量虚拟化,细粒度计算等技术需求愈发强烈,而Serverless必将借势迅速发展,对将来的富客户端的研发模式的改变,则需要我们这些技术人持续的去探索和创造了。我们在理解Serverless的过程中先来看一看云服务的进化史,云计算经历了物理机房-IaaS-PaaS-SaaS-FaaS/BaaS。IaaSIaaS(InfrastructureasaService)基础设施即服务。指把IT基础设施作为一种服务通过网络对外提供。在这种服务模型中,用户不用自己构建一个数据中心,而是通过租用的方式来使用基础设施服务,包括服务器、存储和网络等。在这层公司通常购买的是存储,网络的基础服务。PaaSPaaS(PlatformasaService)平台即服务,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、负载均衡器和其他中间件,相对于Iaas客户仅仅需要自己控制上层的应用程序部署与应用托管的环境。通常在这层用户一般购买的是操作系统。SaaSSaaS(SoftwareasaService)软件即服务,SaaS是一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,通常这些常用的软件有数据库,网络服务,等。可以通过MicrosoftAzure服务的一张图来直观感受下FaaSFaaS(Functionasaservice)函数即服务,服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护基础架构。按照此模型构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用。使用FaaS构建的软件服务,开发者对底层的硬件平台,操作系统平台,软件平台,越发的透明,开发者只需