【问题标题】:Migrate an existing PHP app on Cloud Foundry迁移 Cloud Foundry 上的现有 PHP 应用程序
【发布时间】:2017-04-27 20:20:17
【问题描述】:

这个问题不是关于代码/配置,而是更多信息。

我们应该在 Cloud Foundry 上放置一个现有的 PHP 应用程序,并且我们开始弄清楚如何去做。 现在它部署在 5 台物理服务器上(负载平衡),并使用 MySQL 数据库(在不同的服务器上,但没有 API,直接连接)和另一个应用程序来检索 MySQL 凭据。 (PHP app > conf app 连接 MySQL > MySQL)

我的第一个问题: 是否可以说,保留 3 台物理服务器并开始使用 Cloud Foundry 上的应用程序?

据我了解(2周内我们还有一个阵型,但我之前需要一些信息),Cloud Foundry 不允许我们拥有 X 数量的服务器,而是在需要应用程序时有一个实例/被称为(无限) 那么我们如何才能开始轻轻地使用 Cloud Foundry 呢? 我们必须 100% 使用 Cloud Foundry 吗?还是有一种方法可以让我们一开始就保持两种方式(Cloud Foundry + 3/5 物理服务器)? 我的猜测是否定的,但你的回答对我来说可能很有趣。

我的第二个问题与上一个问题有点相关: MySQL数据库怎么办? 我们应该为 Cloud Foundry 使用所有 100% MySQL 服务吗? 或者我们可以暂时保留现有的吗?

最后,我的第三个问题与上一个有关: 我们是否也必须使 conf 应用程序成为 Cloud Foundry 应用程序,才能用于 PHP 应用程序? 我们可以将它保留在物理服务器上,并且仍然将其用作服务/服务代理吗?

如果您有迁移现有应用程序以及如何管理转换的示例,我会非常感兴趣! 提前致谢!

【问题讨论】:

    标签: cloud cloud-foundry


    【解决方案1】:

    但没有 API,直接连接)和另一个应用程序来检索 MySQL 凭据。 (PHP app > conf app 连接 MySQL > MySQL)

    我不完全明白你在说什么。我想我仍然可以回答您的问题,但如果您有后续问题,您可能需要进一步解释。

    我的第一个问题:是否可以说,保留 3 台物理服务器并开始使用 Cloud Foundry 上的应用程序?

    是的。您需要弄清楚的问题是如何将流量路由到这两个应用程序,以便您的最终用户不知道其中的区别。

    您的应用程序前面已经有一个负载均衡器,因此一种可能性是配置该负载均衡器,让 Cloud Foundry 拥有您的应用程序的后端服务器之一(更具体地说是 CF gorouter)。然后,您可以使用 LB 配置流向在独立服务器上运行的应用的流量百分比以及流向在 CF 上运行的应用的百分比。

    另一个问题是会话,假设您的应用使用它们。如果您还没有,您可能需要为会话存储使用 Redis / Memecached。我想您可以使用粘性会话,但这不是一个好的解决方案。好消息是 CF 上的 PHP 构建包支持在 Redis 和 Memcache 中存储会话,因此只要您可以在独立服务器上配置类似的设置,这真的不成问题。

    Cloud Foundry 不允许我们拥有 X 数量的服务器,而是在需要/调用应用程序时拥有一个实例(无限制)

    不完全正确。使用 CF,您可以部署应用程序。默认情况下,该应用程序将有一个实例,但您可以扩展到您的平台支持的尽可能多的实例。

    应用实例大致与独立服务器或虚拟机相关,但主要区别在于许多应用实例可以在同一个虚拟机上运行(它们在 Diego Cell 虚拟机上的不同容器中运行)。关于这种差异的主要注意事项是,在您的独立环境中,您的应用程序可能有 100% 的 CPU 和 RAM 可用。在 CF 上,您的应用实例将仅获得您配置的 RAM,并且共享对 CPU 的访问(CPU 共享基于分配的 RAM 量)。

    我们怎样才能开始轻轻地使用 Cloud Foundry 呢?

    参见上面的第一个问题。

    我们必须采用 100% Cloud Foundry 吗?

    没有。

    或者有什么方法可以让我们一开始就保持双向(Cloud Foundry + 3/5 物理服务器)?

    参见上面的第一个问题。

    我的第二个问题和上一个有点相关:MySQL 数据库怎么办?我们应该为 Cloud Foundry 使用所有 100% MySQL 服务吗?或者我们可以暂时保留现有的吗?

    您实际上不必做任何事情。只要您的网络允许,您在 CF 上的应用就可以与在独立服务器上运行的应用访问相同的数据库和基础架构。

    要检查以确保的事项:CF 与您的数据库之间的防火墙访问以及 CF 上的安全组(这控制应用程序的出站网络访问)。

    最后,我的第三个问题与上一个相关:我们是否必须将 conf 应用程序也设为 Cloud Foundry 应用程序,才能将 if 用于 PHP 应用程序?我们可以将它保留在物理服务器上,并且仍然将其用作服务/服务代理吗?

    与数据库相同的答案。只要有对该资源的适当网络访问(即正确的端口打开),您就不必移动 conf 应用程序。

    希望有帮助!

    【讨论】:

    • 您好丹尼尔,非常感谢您花时间回答我的问题!你对我的帮助比你想象的要多!我很高兴知道我们可以开始使用 CF 与我们当前的应用程序并行,因为我担心 CF 转换。我更高兴的是,我们暂时不必将数据库和 conf 应用程序迁移到 CF。再次感谢您的回答和您的时间!
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    相关资源
    最近更新 更多