Microservices作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。但大部分围绕microservices的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。
企业和服务提供商正在寻找更好的方法将应用程序部署在云环境中,microservices被认为是未来的方向。通过将应用和服务分解成更小的、松散耦合的组件,它们可以更加容易升级和扩展,理论上是这样。
最近一场关于“容器技术和虚拟机是否是实现微服务的最佳技术”的辩论在加州硅谷的OpenStack Silicon Valley上进行。
正方是容器更轻、更快的部署;反方是虚拟机是更成熟的技术,并且在不同工作负载之间可以提供更好的隔离。
但这场辩论有些没抓住要点,根据Red Hat主管技术营销的Arun Gupta表示。如果microservices目的是使其更容易构建和部署应用程序,那么只要API层不变,底层技术将变得不那么重要,至少对于开发人员是这样的。
“我不在乎这些容器是什么。它们是独立的。今天它们可以是JBoss,明天它们可能是Node.js,之后是Fuse 或者[Apache] Camel。我真的不关心,因为它们使用RESTful API来相互建立联系,只要它们使用RESTful API就够了”,他说。
Red Hat目前使用Docker和Kubernetes,编排框架容器是由谷歌开发的,作为OpenShift平台即服务提供基于云的应用开发和操作。
这是因为Kubernetes和Docker的结合是目前最成熟的技术,对于一个成功的微服务部署,Kubernetes提供一些重要的功能,如服务发现、容器管理和组件之间的通信。
这在未来可能会由于 OpenStack Magnum project项目的开发会发生改变,Magnum旨在作为框架支持所有容器技术,但这取决于Red Hat的客户所看到的要求,Gupta解释道。
“OpenShift v3.0基于Kubernetes,但我们是Open Container的一份子,作为一项对于我们的客户来说重要的技术,我们会有相应的投资,”他说。
“因此,在未来的三、四年,无论如何,如果OpenStack Magnum变得非常有价值,我们可以在OpenShift抽象它。但是今天Kubernetes和Docker仍然为王。”
Gupta曾热衷于促进Red Hat的综合软件栈,说该公司对于微服务架构有着“很好的定位”。
“从底部OpenStack到RHEL平台,在这之上你有OpenShift,使用Docker和Kubernetes,上面还有JBoss Application Server,再上面有使用JBoss developer Studio的开发人员工具,”他说。
“OpenShift允许你做公有云、私有云、混合云。JBoss中间件是我们主要的应用平台,但我们明白不是每个人都想要Java,因此我们提供Vert.x,这是一个真正通晓多种语言的异步应用程序框架。”
然而,回到microservices,Gupta为了让人理解他的观点,他建议用户应该查看API层的堆栈。
“当你设计你的microservices的时候,所有你关心的问题都应该是真正应用程序级别的”他说。
本文作者:张鹏程编译
来源:51CTO