迁移 Cloud Foundry 上的现有 PHP 应用程序
Migrate an existing PHP app on Cloud Foundry
这个问题不是关于 code/configuration,而是更多信息。
我们应该将一个现有的 PHP 应用程序放到 Cloud Foundry 上,我们正开始弄清楚如何去做。
现在它部署在 5 台物理服务器上(负载平衡),并使用 MySQL 数据库(在不同的服务器上,但没有 API,直接连接)和另一个应用程序来检索 MySQL 凭据。
(PHP app > conf app to connect to MySQL > MySQL)
我的第一个问题:
是否可以说保留 3 台物理服务器并开始使用 Cloud Foundry 上的应用程序?
据我了解(我们还有 2 周的时间,但我之前需要一些信息),Cloud Foundry 不允许我们拥有 X 数量的服务器,而是在应用程序时拥有一个实例是 needed/called(无限制)
那么我们如何开始使用 Cloud Foundry 呢?
我们必须去 100% Cloud Foundry 吗?或者有没有一种方法可以让我们在一开始就保持两种方式(Cloud Foundry + 3/5 物理服务器)?
我的猜测是一个很大的否定,但你的回答对我来说可能非常有趣。
我的第二个问题与前一个有点相关:
如何处理 MySQL 数据库?
我们应该为 Cloud Foundry 提供所有 100% MySQL 服务吗?
或者我们可以暂时保留现有的吗?
最后,我的第三个问题与前一个有关:
我们是否也必须将 conf 应用程序设为 Cloud Foundry 应用程序,以便将 if 用于 PHP 应用程序?
我们可以将它保留在物理服务器上并仍将其用作 service/service 代理吗?
如果您有迁移现有应用程序以及如何管理转换的示例,我将非常感兴趣!
提前致谢!
but without APIs, direct connection), and another app to retrieve MySQL credentials. (PHP app > conf app to connect to MySQL > MySQL)
我不太明白你在说什么。我想我仍然可以回答你的问题,但如果你有后续问题,你可能需要再解释一下。
My first question: Is it possible to say, keep 3 physical servers and start using the app on Cloud Foundry ?
是的。您需要弄清楚的问题是您将如何将流量路由到这两个应用程序,以便您的最终用户不知道其中的区别。
您的应用程序前面已经有一个负载均衡器,因此一种可能是配置该负载均衡器以使 Cloud Foundry 拥有您的应用程序的后端服务器之一(更具体地说是 CF gorouter)。然后,您可以使用 LB 配置在独立服务器上流向您的应用 运行ning 的流量百分比,以及在 CF 上流向您的应用 运行ning 的流量百分比。
另一个问题是会话,假设您的应用程序使用它们。您可能需要为会话存储使用 Redis / Memecached,如果您还没有的话。我想您可以使用粘性会话,但这并不是一个好的解决方案。好消息是 CF 上的 PHP 构建包支持在 Redis 和 Memcache 中存储会话,所以只要您可以在独立服务器上配置类似的设置,这真的应该不是问题。
Cloud Foundry doesn't allow us to have an X amount of servers, but rather have an instance when the app is needed/called (unlimited)
不完全正确。使用 CF,您可以部署应用程序。默认情况下,该应用程序将有一个实例,但您可以扩展到您的平台支持的实例数。
应用程序实例大致与独立服务器或 VM 相关,但主要区别在于许多应用程序实例可以 运行 在同一个 VM 上(它们 运行 在 Diego Cell VM 上的不同容器中).关于这种差异需要注意的主要事情是,在您的独立环境中,您的应用程序可能有 100% 的 CPU 和 RAM 可用。在 CF 上,您的应用程序实例将仅获得您配置的 RAM,并且它将共享对 CPU 的访问(CPU 共享基于分配的 RAM 量)。
How can we then start using Cloud Foundry gently ?
参见上面的第一个问题。
Do we have to go 100% Cloud Foundry ?
没有
Or is there a way we can keep both ways at the beginning (Cloud Foundry + 3/5 physical servers) ?
参见上面的第一个问题。
My second question is a bit related to the previous : What to do about the MySQL database ? Should we go all 100% MySQL Service for Cloud Foundry ? Or can we keep the existing one for a moment ?
您实际上不需要做任何事情。只要您的网络允许,您在 CF 上的应用程序就可以与您在独立服务器上的应用程序 运行ning 相同的数据库和基础设施通信。
需要检查以确保的事项:CF 和您的数据库之间的防火墙访问以及 CF 上的安全组(这控制应用程序的出站网络访问)。
And finally, my third question related to the previous : Do we have to make the conf app a Cloud Foundry app too, to use if for the PHP app ? Can we keep it on physical servers and still use it as a service/service broker ?
与数据库相同的答案。只要可以对该资源进行适当的网络访问(即打开正确的端口),您就不必移动 conf 应用程序。
希望对您有所帮助!
这个问题不是关于 code/configuration,而是更多信息。
我们应该将一个现有的 PHP 应用程序放到 Cloud Foundry 上,我们正开始弄清楚如何去做。 现在它部署在 5 台物理服务器上(负载平衡),并使用 MySQL 数据库(在不同的服务器上,但没有 API,直接连接)和另一个应用程序来检索 MySQL 凭据。 (PHP app > conf app to connect to MySQL > MySQL)
我的第一个问题: 是否可以说保留 3 台物理服务器并开始使用 Cloud Foundry 上的应用程序?
据我了解(我们还有 2 周的时间,但我之前需要一些信息),Cloud Foundry 不允许我们拥有 X 数量的服务器,而是在应用程序时拥有一个实例是 needed/called(无限制) 那么我们如何开始使用 Cloud Foundry 呢? 我们必须去 100% Cloud Foundry 吗?或者有没有一种方法可以让我们在一开始就保持两种方式(Cloud Foundry + 3/5 物理服务器)? 我的猜测是一个很大的否定,但你的回答对我来说可能非常有趣。
我的第二个问题与前一个有点相关: 如何处理 MySQL 数据库? 我们应该为 Cloud Foundry 提供所有 100% MySQL 服务吗? 或者我们可以暂时保留现有的吗?
最后,我的第三个问题与前一个有关: 我们是否也必须将 conf 应用程序设为 Cloud Foundry 应用程序,以便将 if 用于 PHP 应用程序? 我们可以将它保留在物理服务器上并仍将其用作 service/service 代理吗?
如果您有迁移现有应用程序以及如何管理转换的示例,我将非常感兴趣! 提前致谢!
but without APIs, direct connection), and another app to retrieve MySQL credentials. (PHP app > conf app to connect to MySQL > MySQL)
我不太明白你在说什么。我想我仍然可以回答你的问题,但如果你有后续问题,你可能需要再解释一下。
My first question: Is it possible to say, keep 3 physical servers and start using the app on Cloud Foundry ?
是的。您需要弄清楚的问题是您将如何将流量路由到这两个应用程序,以便您的最终用户不知道其中的区别。
您的应用程序前面已经有一个负载均衡器,因此一种可能是配置该负载均衡器以使 Cloud Foundry 拥有您的应用程序的后端服务器之一(更具体地说是 CF gorouter)。然后,您可以使用 LB 配置在独立服务器上流向您的应用 运行ning 的流量百分比,以及在 CF 上流向您的应用 运行ning 的流量百分比。
另一个问题是会话,假设您的应用程序使用它们。您可能需要为会话存储使用 Redis / Memecached,如果您还没有的话。我想您可以使用粘性会话,但这并不是一个好的解决方案。好消息是 CF 上的 PHP 构建包支持在 Redis 和 Memcache 中存储会话,所以只要您可以在独立服务器上配置类似的设置,这真的应该不是问题。
Cloud Foundry doesn't allow us to have an X amount of servers, but rather have an instance when the app is needed/called (unlimited)
不完全正确。使用 CF,您可以部署应用程序。默认情况下,该应用程序将有一个实例,但您可以扩展到您的平台支持的实例数。
应用程序实例大致与独立服务器或 VM 相关,但主要区别在于许多应用程序实例可以 运行 在同一个 VM 上(它们 运行 在 Diego Cell VM 上的不同容器中).关于这种差异需要注意的主要事情是,在您的独立环境中,您的应用程序可能有 100% 的 CPU 和 RAM 可用。在 CF 上,您的应用程序实例将仅获得您配置的 RAM,并且它将共享对 CPU 的访问(CPU 共享基于分配的 RAM 量)。
How can we then start using Cloud Foundry gently ?
参见上面的第一个问题。
Do we have to go 100% Cloud Foundry ?
没有
Or is there a way we can keep both ways at the beginning (Cloud Foundry + 3/5 physical servers) ?
参见上面的第一个问题。
My second question is a bit related to the previous : What to do about the MySQL database ? Should we go all 100% MySQL Service for Cloud Foundry ? Or can we keep the existing one for a moment ?
您实际上不需要做任何事情。只要您的网络允许,您在 CF 上的应用程序就可以与您在独立服务器上的应用程序 运行ning 相同的数据库和基础设施通信。
需要检查以确保的事项:CF 和您的数据库之间的防火墙访问以及 CF 上的安全组(这控制应用程序的出站网络访问)。
And finally, my third question related to the previous : Do we have to make the conf app a Cloud Foundry app too, to use if for the PHP app ? Can we keep it on physical servers and still use it as a service/service broker ?
与数据库相同的答案。只要可以对该资源进行适当的网络访问(即打开正确的端口),您就不必移动 conf 应用程序。
希望对您有所帮助!