我是一个Java开发人员。我们使用Weblogic托管应用程序。我被告知要考虑用开放资源替代weblogic。我们计划与SpringBoot一起使用。我们还在看码头/云铸造公司。然而,码头/云铸造是我的新领域。
谢谢你的帮助。
发布于 2015-06-20 06:33:09
Docker是一种用于创建和运行Linux“容器”的技术。在某种意义上,您可以将其看作是轻量级VM。SpringBoot应用程序的对接器容器将包含一个码头映像,它将包含运行应用程序(JVM、源代码等)所需的所有内容的文件系统,以及码头容器元数据,这些元数据告诉码头守护进程如何在映像中运行应用程序(例如,设置哪些环境变量、公开哪些端口、运行哪些命令等)。docker守护进程将使用Linux特性,如cgroup和内核名称空间,与主机上运行的其他进程隔离地运行容器。Docker有点低级,因为您需要指定图像中的所有内容,并且它运行任意的东西,即您在映像中放入的任何内容并让它运行。您所获得的docker容器是非常可移植的,因此您可以在本地构建、测试和运行您的对接容器以进行开发,然后将该容器传送到生产主机,该生产主机上也运行了一个docker守护进程,并且非常确信您得到的是完全相同的东西。
云Foundry工作在更高的抽象层,应用程序是一个一流的概念。云Foundry使用类似于docker的容器化技术构建可移植映像,然后运行它们,但这是一个实现细节,您不需要指定所有细节。在较新版本的Cloud中,还将支持docker映像,以便您可以根据需要指定详细信息,但它还有一个"buildpack“工作流,它将在您推送应用程序时自动检测Java应用程序,并知道在Java运行时构建映像时需要包括的所有内容。
使用Cloud,因为应用程序和应用程序管理是一流的概念,而且由于它在更高的级别上运行,所以您可以免费获得各种各样的东西。例如,您可以轻松地横向缩放应用程序(添加实例),例如cf scale my_app -i 5或垂直,cf scale my_app -m 2G (为每个实例设置分配的内存)。您可以获得流应用程序日志:cf logs my_app。云Foundry为您提供了很多免费的容错功能,因此如果您的一个应用程序实例崩溃,或者运行应用程序容器的进程本身崩溃(类似于docker守护进程的东西),或者运行容器运行过程的主机VM死亡,或者VM所在的硬件集群死亡,Cloud将自动将您的实例备份起来。
docker守护进程是可以在任何Linux机器上运行的单个进程。因此,如果您正在做一些小而简单的事情,并且您需要自己完成大部分的设置,那么在本地和在开发过程中使用docker可以更容易地启动和运行。使用docker还可以更容易地访问和共享您创建的docker映像,因此一旦您创建了一个映像,您就可以将它放到一个docker存储库中,然后您可以在任何其他的docker守护进程上运行它。对于Cloud,构建的映像通常是一个实现细节,您实际上没有访问它的权限,因此您无法提取该映像并在另一个Cloud安装上运行它。
有各种各样的项目旨在使Cloud更容易访问和设置,同时仍然为您提供了PaaS的许多好处。其中一些项目还允许您结合使用docker和docker的好处,同时也可以从Cloud获得很多PaaS好处。
见Lattice和Cloud Foundry on BOSH-Lite。
还有几个托管的云创建服务。
见Pivotal Web Services和IBM BlueMix
还有许多非CF项目打算在核心码头技术周围放置一个平台层,无论是自己的还是托管的服务品种。
见Google's Kubernetes project和Amazon Container Service
完全披露:我是一名软件工程师,在Pivotal公司从事云铸造工作。
https://stackoverflow.com/questions/30820331
复制相似问题