技术平台分层体系-开发者视角看待平台、架构、应用的关系

时间:2024-04-06 13:22:47

对于平台的构建者来讲,不仅仅需要在平台的层次上进行抽象分层,服务化的构建能力,还需要考虑为平台的多角色提供不同视角的重点能力。

本篇重点来说明下开发者角色的角度如何看待平台和应用架构以及所开发的应用的。个人理解在应用开发者角度关注的是为企业开发提供的应用内容,以及应用采用的什么架构

 

1.应用开发者传统视角

 

技术平台分层体系-开发者视角看待平台、架构、应用的关系

过去企业应用的开发者没有云计算平台构建之前,所接触的就是服务器资源,在服务器资源之上,所有应用以及应用所使用的技术相关的能力都需要去关注。

换句话说就是应用开发者视角需要关注垂直的所有能力,除了服务器层面的管理和维护。

2.应用开发者在云计算平台化时期的视角

 

技术平台分层体系-开发者视角看待平台、架构、应用的关系

在云计算分层的体系里面

1)IaaS资源层首先通过技术手段将资源的逻辑化管理,面向使用者屏蔽了具体物理服务器的存在,但是单纯在IaaS层面,开发者其实还是需要关注服务器资源的,只不过服务器资源是被虚拟化之后的资源。

2)真正的改变在于PaaS平台层的构建,PaaS平台构建有两个方面的目标:

  • 面向应用开发者去除对虚拟化服务器的依赖和可见性;
  • 考虑将应用过去所使用的技术沉淀下来,将其平台化、服务化方式管理起来面向应用提供技术平台能力。

因此,在PaaS平台中,以“应用抽象为主体”的,应用包括了“业务应用+技术平台应用”两部分。

 

PaaS分层中的应用管控

在PaaS分层体系里,开发者如何能够降低对IaaS层服务器资源的依赖呢?主要有如下转变:

1)PaaS体系中抽象了应用的定义模型,将应用作为该分层的主要核心,就像IaaS层将资源作为自己核心去构建能力一样。

2)PaaS体系中应用包括两类“业务应用”和“技术平台应用”,围绕应用模型构建了相应开发管理和运维管理的体系。开发者可以在PaaS平台中通过代码管理、构建、发布等能力去定义应用,启动应用,管理应用的生命周期。

3)技术平台化,过去应用中使用的各类框架、中间件服务或者底层的基础技术(比如分布式存储、数据库系统等)在云计算时期每个技术都具备高可用、分布式的能力,因此通过PaaS平台统一服务化的管理来向开发者提供技术平台的能力。

 

PaaS中应用开发者关注点转移

PaaS中的应用开发者需要关注的内容。

 

技术平台分层体系-开发者视角看待平台、架构、应用的关系

 

 

面向开发者PaaS层有两个领域变化

1)PaaS平台提供的技术平台服务化的能力。

PaaS体系中将应用所使用的各类技术组件、中间件、基础软件平台沉淀成统一的技术平台,将其在PaaS平台统一集群化部署、扩容等管理。

同时PaaS体系中将这些技术平台通过服务目录统一注册管理,提供给应用开发者在应用的框架中去开发使用。(技术平台普遍以SDK或者restAPI服务方式提供能力)

2)PaaS平台提供的应用管控的能力。

开发者开发的业务应用,最终需要通过PaaS平台提供的开发管理领域的能力对接,通过开发管理中的流程定义,统一管理应用开发者的代码、构建编译以及打包发布。

在PaaS平台中,核心抽象的应用管控负责整个应用生命周期的管控,与IaaS层通过相应的分布式集群调度能力对接来调度应用的最终资源运行。

 

应用开发者视角的平台、架构、应用的关系

技术平台分层体系-开发者视角看待平台、架构、应用的关系

1)云计算体系中通过分层抽象解耦,将过去应用开发者所需要使用的共性的能力统一抽象,抽象出资源、应用、技术平台的体系。

2)应用开发者在云计算的PaaS体系中更关注应用的内容的实现,同时也需要关注应用所使用的技术平台组成的技术架构。

因此在应用开发者角度看待三者的关系:

1)平台是面向更广阔领域的通用能力构建者;

2)架构是平台之上衍生的轻量技术组合的能力;

3)应用是最小粒度的产出者。

 

演进趋势

如果云计算平台化的思想让应用开发者减轻端到端关注的负担,聚焦到应用内容和应用架构上来的话,那么Serverless思想的出现,就进一步的考虑解放应用开发者在应用架构上的关注精力,让其聚焦到业务应用能力的构建上来。

Serverless思想认为面对应用开发者,PaaS原本的模式还解耦的不够彻底;Serverless中将应用开发者还需要关注的应用架构固化下来,通过众多的应用架构模板化,统一架构运行的runtime,进一步让应用开发者只需要关注到应用业务逻辑上来,提升产出效率!