@lsmn
2016-09-24T06:49:55.000000Z
字数 1268
阅读 2280
云计算
容器
Java
HyperGrid是GridStore收购DCHQ之后形成的公司。该公司发布了一个应用程序迁移平台,名为HyperForm。它旨在将应用程序(主要是Java应用程序)迁移到任何云或容器基础设施。
HyperGrid是GridStore收购DCHQ之后形成的公司。该公司发布了一个应用程序迁移平台,名为HyperForm。它旨在将应用程序(主要是Java应用程序)迁移到任何云或容器基础设施。
一个典型的Java应用程序究竟怎样“容器化”?为了进一步了解HyperForm平台的功能,InfoQ联系了HyperForm产品副总裁Amjad Afanah。
HyperForm有一个插件模型,让应用程序开发人员可以使用不同的语言编写自定义脚本,如Python、Perl、bash脚本或Ruby,并把它们作为容器生命周期事件的监听器。这些事件由平台发起,在类似容器创建和销毁这样的时候及其他中间点触发。使容器化成为可能的另外一项特性是数据注入。据Afanah介绍,该特性“从容器获取信息,并在部署时将它们作为环境变量值注入到其他从属容器”。据Afanah的一篇文章介绍,该框架扩展了Docker Compose。
最新的Docker版本使用Linux IPVS(一个Linux内核特性,可以用于负载均衡)改进了服务的负载均衡,并集成了Swarm。最新版本的HyperForm也作为一个技术预览功能支持Docker Swarm。这是不是说HyperForm限制了其他负载均衡机制?不是那样的,Afanah是这样说的:
HyperForm确实可以通过Docker Swarm充分利用Linux内核内置的负载均衡功能。不过,HyperForm也提供了一种简单的方式,让用户可以使用任何类似Nginx和Apache HTTP这样的软件配置HTTP负载均衡。任何时候,当应用程序缩容/扩容时,还是可以使用自定义的插件自动更新HTTP负载均衡。
具有分布式架构的现代Java应用程序彼此之间存在服务依赖。它们通常是由一个类似Consul这样的服务发现软件联系在一起。在容器化环境中,服务发现涉及到在服务加入容器时将服务注册到注册库(例如Consul),可以手工,也可以使用类似Registrator这样的东西。Registrator是一个服务,可以自动注册和撤销注册Docker容器中的服务。那么,HyperForm如何处理这种情况呢?
HyperForm使用上面提到的同一个插件模型提供服务发现特性。例如,向负载均衡器后面一个已有的集群中添加一台新的服务器,这会触发一个事件,而该事件会激活一个插件。该插件负责使用新服务的详细信息修改负载均衡器的配置。
运行HyperForm平台的底层基础设施可以是VMware vSphere、OpenStack、AWS或Azure。
查看英文原文:HyperGrid Announces Platform for Application Migration to Containers