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
评论