中间件栈增加了层以及对轻量应用的开发需求将导致更好的云访问。
过去10年,软件的开发和部署方式已经出现了巨大的转变。2005年初时,企业服务总线还很流行,而云尚处在青春期,还在等待这Amazon EC2/S3的降临。现在,开发者可以利用的技术数量出现了爆发式增长,云的无所不在增加了中间件栈的层次,据专家说。
总部位于英国乌斯特郡的咨询公司C2B2的首席顾问Matt Brasier说,所有现有技术经过10年的发展已经极大地成熟了,为中间件栈开发者和应用架构师提供了更多的多样性。这一架构性选择延伸到了SQL存储等组件,使得开发者可以选择最适合于被开发应用的技术,他补充道。
给中间件栈增加层
10年前,开发者要对付的只有3层:接入层、业务逻辑层以及用户接口层,Brasier说。但随着中间件栈变得越来越与服务相关,那些严格的层消失了。现在,面向业务的服务和集成层使得开发者将服务与应用捆绑在一起,集成层成为了中间件栈新的一层。集成层位于瘦很多的业务层的上面,而用户接口层则是在集成层的上面,他说。
集成、API、移动或其他层,所有这些附加均未对中间件层造成损害,这是总部位于科罗拉多州Evergreen的Savoir Technologies CTO Jeff Genender的说法。按照他的看法,移动和API层实际上是一回事,且有赖于前端应用是干什么的,比方说,在开发中的GUI是否适应移动设备,他说。
“移动产品应该能够利用全服务产品所用的同一个API,但要小心它在API内的用量有多少,” Genender说。但是移动并不是一个独立的层;而是相对于微服务的端点—而这无论它是通过节点应用还是PHP端点来完成,一般都是利用RESTful 服务或JSON实现来完成的,他补充道。
应用变得越来越轻量
随着开发者和应用架构师对一个错误就能导致整个应用瘫痪的现状感到厌烦,单容器部署—像开发界WebSpheres和JBosses这样的一体应用服务器已经逐渐淡出到后台,Genender说:“在必须升级或更新软件时,你得把整个系统关闭,或者要有一个相当复杂的滚动部署,”他补充道。
然而,微服务是轻量的,在应用部署上采取了更加联邦的方式,这使得开发者可以在不同的服务、位置或容器中使用多个端点,Genender说。这使拿掉一部分比例的应用成为可能,这样软件就可以实时更新了。“这提高了正常运行时间,并增加了软件的可维护性”他说。
云需要轻量应用
混合云和云部署对中间件栈产生了巨大影响。更轻量的应用采用微服务,这使得它们可以很好地适应基于云的环境,据Genender说。因为它们是轻量的,所以他们没有繁重的内存且处理器需求也不高,而由于微服务是联邦式、分布式的,可以在任何地方部署,他说。
“你需要在小一点的封装内工作,这里没有地方容纳一体式应用服务器,” Genender说。基于云的应用的全部要点是轻量、能快速且有成效地加速应用和新功能的推出,这不可能发生在数G大小需要大量处理能力的应用身上。“这就是这一变化的推动力,搬到云端、更小的处理器、更多的分布式,”他说。
按照C2B2的Brasier的说法,服务的另一大驱动力是灵活性。在与云应用集成时,开发的最佳实践是访问服务的灵活性,而不是把组件嵌入到应用中,他说。
“开发出成功应用的人是通过创建服务,然后再结合应用和业务流程来做到的,” Brasier说,指出这一切都是通过服务流转的。这些结构已经成为了适应云需求的必要,这已成为提供服务的一大驱动力,他补充道。
有的也许会说多一事不如少一事,但是根据专家的说法,在中间件栈增加层已经体现出好处。随着对轻量型应用、服务,尤其是微服务的需求在增长,这些将会成为云访问的预期基础。