2017-04-26 4 views
0

Diese Frage bezieht sich nicht auf den Code/die Konfiguration, sondern auf weitere Informationen.Migrieren einer vorhandenen PHP-App auf Cloud Foundry

Wir sollten eine bestehende PHP-App auf Cloud Foundry setzen, und wir fangen an, herauszufinden, wie es geht. Momentan ist es auf 5 physischen Servern (Load Balancing) implementiert und verwendet eine MySQL-Datenbank (auf einem anderen Server, aber ohne APIs, direkte Verbindung) und eine andere App zum Abrufen von MySQL-Anmeldeinformationen. (PHP app> conf app zum Verbinden mit MySQL> MySQL)

Meine erste Frage: Ist es möglich zu sagen, halten Sie 3 physische Server und starten Sie die Anwendung auf Cloud Foundry?

Von was ich verstanden habe (wir haben immer noch eine Formation in 2 Wochen, aber ich brauche einige Informationen vorher), Cloud Foundry erlaubt uns nicht, eine X Menge von Servern zu haben, sondern eine Instanz, wenn die App ist benötigt/genannt (unbegrenzt) Wie können wir dann sanft mit Cloud Foundry anfangen? Müssen wir 100% Cloud Foundry gehen? Oder gibt es eine Möglichkeit, wie wir beide Wege am Anfang behalten können (Cloud Foundry + 3/5 physische Server)? Meine Vermutung ist ein großes Nein, aber Ihre Antworten können sehr interessant für mich sein.

Meine zweite Frage ist ein bisschen mit dem vorherigen verwandt: Was ist mit der MySQL-Datenbank zu tun? Sollten wir alle 100% MySQL Service für Cloud Foundry gehen? Oder können wir den vorhandenen für einen Moment behalten?

Und schließlich, meine dritte Frage bezogen sich auf die vorherige: Müssen wir die Conf-App auch eine Cloud Foundry App machen, um sie für die PHP-App zu nutzen? Können wir es auf physischen Servern behalten und es dennoch als Service/Service-Broker verwenden?

Wenn Sie Beispiele für die Migration vorhandener Apps und die Verwaltung der Umstellung haben, bin ich mehr als interessiert! Vielen Dank im Voraus!

Antwort

0

aber ohne APIs, direkte Verbindung), und eine andere App zum Abrufen von MySQL-Anmeldeinformationen. (PHP app> conf app zum Verbinden mit MySQL> MySQL)

Ich verstehe nicht ganz, was Sie hier sagen. Ich denke, ich kann deine Fragen immer noch beantworten, aber wenn du Fragen nachgehst, musst du das vielleicht mehr erklären.

Meine erste Frage: Ist es möglich zu sagen, 3 physische Server zu behalten und die Anwendung auf Cloud Foundry zu verwenden?

Ja. Das Problem, das Sie herausfinden müssen, ist, wie Sie den Datenverkehr an beide Apps weiterleiten, sodass Ihre Endbenutzer den Unterschied nicht kennen.

Sie haben bereits einen Load Balancer vor Ihrer Anwendung. Eine Möglichkeit könnte also sein, den Load Balancer so zu konfigurieren, dass Cloud Foundry einen der Backend-Server für Ihre App (genauer gesagt die CF-Gartner) hat. Anschließend können Sie mithilfe der LB konfigurieren, wie viel Prozent des Traffics an Ihre Apps auf eigenständigen Servern gehen und welcher Prozentsatz an Ihre App auf CF geht.

Ein anderes Problem wären Sitzungen, vorausgesetzt, Ihre App verwendet sie. Möglicherweise müssen Sie Redis/Memecached für Ihre Sitzungsspeicher verwenden, wenn Sie dies nicht bereits getan haben. Ich nehme an, Sie könnten klebrige Sitzungen verwenden, aber das wäre nicht so gut von einer Lösung.Die gute Nachricht ist, dass das PHP-Build-Pack auf CF das Speichern von Sitzungen in Redis und Memcache unterstützt. Solange Sie also ein ähnliches Setup auf Ihrem eigenständigen Server konfigurieren können, sollte dies kein Problem darstellen.

Cloud Foundry uns nicht erlaubt, eine X-Menge von Servern zu haben, sondern eine Instanz hat, wenn die Anwendung benötigt wird/genannt (unbegrenzt)

nicht ganz richtig. Mit CF stellen Sie eine Anwendung bereit. Diese Anwendung hat standardmäßig eine Instanz, aber Sie können bis zu so viele Instanzen skalieren, wie Ihre Plattform unterstützt.

Anwendungsinstanzen korrelieren grob mit eigenständigen Servern oder VMs, der Hauptunterschied besteht jedoch darin, dass viele Anwendungsinstanzen auf derselben VM ausgeführt werden können (sie werden in verschiedenen Containern auf Ihren Diego Cell-VMs ausgeführt). Die wichtigste Sache, die Sie über diesen Unterschied beachten sollten, ist, dass Ihre Anwendung wahrscheinlich in Ihrer Stand-Alone-Umgebung 100% der CPU & RAM zur Verfügung hat. Auf CF erhält Ihre App-Instanz nur den von Ihnen konfigurierten RAM und hat den gemeinsamen Zugriff auf die CPU (CPU-Sharing basiert auf der zugewiesenen RAM-Menge).

Wie können wir Cloud Foundry sanft einsetzen?

Siehe die erste Frage oben.

Müssen wir 100% Cloud Foundry gehen?

Nr

Oder gibt es eine Art, wie wir in beide Richtungen am Anfang (Cloud Foundry + 05.03 physische Server) halten können?

Siehe die erste Frage oben.

Meine zweite Frage ist ein bisschen mit dem vorherigen verwandt: Was ist mit der MySQL-Datenbank zu tun? Sollten wir alle 100% MySQL Service für Cloud Foundry gehen? Oder können wir den bestehenden für einen Moment behalten?

Sie müssen wirklich nichts tun. Solange Ihr Netzwerk dies zulässt, kann Ihre App auf CF mit derselben Datenbank und Infrastruktur kommunizieren wie Ihre App auf den eigenständigen Servern.

Dinge zu überprüfen, um sicherzustellen,: Firewall-Zugriff zwischen CF & Ihre Datenbank und Sicherheitsgruppen auf CF (dies steuern ausgehenden Netzwerkzugriff für Anwendungen).

Und schließlich meine dritte Frage zum vorherigen bezogen werden: Haben wir die conf machen müssen, um zu einer Cloud Foundry App App, wenn für die PHP-Anwendung zu benutzen? Können wir es auf physischen Servern behalten und trotzdem als Service-/Service-Broker nutzen?

Gleiche Antwort wie die Datenbank. Sie müssen die conf-App nicht verschieben, solange der Netzwerkzugriff auf diese Ressource ordnungsgemäß ist (d. H. Die richtigen Ports sind offen).

Hoffe, dass hilft!

+0

Hallo Daniel, Vielen Dank für die Zeit nehmen, um meine Fragen zu beantworten! Sie haben mir mehr geholfen, als Sie dachten! Ich bin sehr froh zu wissen, dass wir CF parallel zu unserer aktuellen App verwenden können, da ich mir Sorgen um den CF-Übergang machte. Ich bin noch mehr erfreut zu wissen, dass wir die Datenbank und die conf-App vorerst nicht auf CF migrieren müssen. Nochmals vielen Dank für Ihre Antworten und Ihre Zeit! – simhamed

Verwandte Themen