Tiven Wang
Wang Tiven July 30, 2016
425 favorite favorites
bookmark bookmark
share share

过去的几年来,“微服务”这个术语逐渐得到关注,它描述的是由一系列更小的服务所组成的架构,在众多互联网公司得到广泛应用。作为传统老牌企业管理软件供应商SAP在新技术应用方面总是慢一步。面对日益增长的企业数据量和业务系统复杂度,SAP受到了来自竞争对手的压力意欲改变自己传统的应用系统架构。HANA作为SAP未来一段时间下一代系统的基石,也在不断改变和完善自身功能,以适应新兴的系统设计模式和架构理念,其中一项即是对Microservices设计思想的支持。本篇将介绍SAP HANA增加了哪些支持Microservices的开发功能,并不涉及太多Microservices和SOA的理论(关于这些知识读者可以参考References中的链接)。

背景

SAP HANA诞生于分析“海量数据”的需求,起初是作为高效分析应用的内存数据库来使用。SAP为了给传统企业和新兴行业提供灵活轻量级的开发平台,创造了基于HANA内存数据库的HANA开发平台。相较于Netweaver平台,HANA平台提供了更流行的开发技术,更轻量的开发框架,更灵活的开发模式。

HANA Architecture

SAP HANA开发平台在HANA内存数据库之上增加了应用层开发能力,但应用层仍然像Netweaver平台一样是基于一个大的运行时容器,所有的开发内容都放在同一容器,虽然有分不同的程序包或者应用组件。

如下图:

  • Index Server是数据库核心功能;
  • XS是应用层容器,可以开发XSJS逻辑、ODATA服务、UI5应用程序等,整个XS容器是运行在一个计算机进程里。 HANA Architecture Main

Scalability

关于应用的可扩展性,可以分为三个维度:

  • X维度通过克隆整个应用得到多个拷贝用负载均衡来提高处理能力。
  • Y维度通过切分应用的不同功能到多个小的应用去,来提高应用扩展能力。
  • Z维度通过划分数据集到不同的服务器来提高应用处理能力。

HANA Architecture Main

如下图所示,SAP HANA开发平台提供X维度扩展能力,通过创建多个HANA实例来做负载均衡。

HANA Architecture Main

HANA New Architecture

为了在Y维度提供更强大的扩展能力,SAP HANA平台(SPS11起)增加了很多功能对microservices开发模式进行支持。

  • 应用层和数据库层的分离 - 以便应用服务可以部署在不同的服务器上。
  • HDI概念 - 支持数据库schema的独立。
  • XSA支持为不同应用运行不同的multiple languages/runtimes - 如Apache TomEE Java和Google V8 JavaScript/Node.js等。

HANA Architecture Main

HANA New Features

从HANA SPS 11版本起,新增了很多功能来支持microservices的开发,老的开发功能依然存在。

  • XS引擎改成XS Advanced,但老的XS引擎仍然作为XSA的一部分存在(XS Classic)。
  • XSA的代码版本管理迁移到了Git/GitHub上,原有的HANA Repository功能仍存在。
  • 新增HDI(HANA Deployment Infrastructure),提供独立的声明式的可持续部署的数据库对象管理容器。
  • Node.js开发能力。

详情请参考SAP SCN系列文章:SAP HANA SPS 11: New Developer Features

XSA

//TODO

HDI

//TODO

Nodejs

//TODO

如何发挥HANA高效分析能力

//TODO

总结

<<未完>>

References

Similar Posts

  • Node.js
  • SAP in Opensource Foundations
  • SAP HANA Database SAP HANA is an in-memory, column-oriented, relational database management system developed and marketed by SAP SE. Its primary function as database server is to store and retrieve data as requested by the applications. In addition, it performs advanced analytics (predictive analytics, spatial data processing, text analytics, text search, streaming analytics, graph data processing) and includes ETL capabilities as well as an application server.
  • Microservices - API Gateway Implement an API gateway that is the single entry point for all clients. The API gateway handles requests in one of two ways. Some requests are simply proxied/routed to the appropriate service. It handles other requests by fanning out to multiple services.
  • Microservices - Circuit Breaker 访问远程服务时, 比依赖超时时间更好一些的方式是一种叫断路器(Circuit Breaker)的模式. Circuit Breaker 就像一位交通警察, 在前方道路畅通的情况下, 他会放行; 当前方道路由于各种原因拥堵时, 他会告诉你前方道路不通请回; 如果他是个更智能的交警的话, 还会告诉你前方道路部分拥堵, 只允许部分车辆通过, 比如实行单双号.
  • Microservices - Architecture Microservice architecture (MSA) is an approach to building software systems that decomposes business domain models into smaller, consistent, bounded-contexts implemented by services. These services are isolated and autonomous yet communicate to provide some piece of business functionality. Microservices are typically implemented and operated by small teams with enough autonomy that each team and service can change its internal implementation details (including replacing it outright!) with minimal impact across the rest of the system.

Comments

comments powered by Disqus
Back to Top