Obecnie tworzę stronę internetową dla projektu społecznego w Szwajcarii.Jak skalować aplikację PHP (serwery, mysql, memcache)
I zanim nastąpi nadmiar użytkownika, chcę przygotować aplikację do skalowania.
Odpowiedziałem sobie na wiele pytań, ale niektóre zostały.
Wyjaśnię, co chcę zrobić.
Pierwszy
na beginnning, aplikacja będzie mieć tylko jeden serwer (krótki czas) z DNS, PHP, MySQL, dane i memcache.
drugie
Następnie podzielić je na dwie
- DNS, MySQL, memcache
- danych, PHP
Trzecie
Tutaj jest problem, nie wiem jak to zrobić dokładnie tutaj, aby aplikacja działała poprawnie.
mogłem zrobić:
- Przód: równoważenia obciążenia, memcache, DNS
- Web 1: PHP, DANYCH
- Web 2: PHP, DANYCH
- Mysql
Byłby to schemat, wszystkie sesje PHP są przechowywane w DB.
ALE, w jaki sposób mogę zsynchronizować dane? Czy mogę uruchomić Rsync, aby zachować je na bieżąco. czy mogę je umieścić na osobnym dysku (dysku sieciowym), aby mieć pewność? , ale w takim przypadku jak mogę zrobić w przypadku przesyłania plików przez użytkowników?
a jeśli strona osiągnie więcej sukcesów i będziemy musieli przejść na większe struktury, czy nie spowoduje to opóźnień w aktualizacjach?
czy to byłoby dobrze przejść bezpośrednio do serwisów internetowych Amazona?
niektóre informacje Używam codeigniter jako Framework. Używam linux jako webserver (dystrybucja nie została wybrana, ale powinna to być Debian)
Z góry dziękuję za odpowiedzi.
http://stackoverflow.com/questions/189903/scaling-solutions-for-mysql-replication-clustering – zaf
http://highscalability.com/ – David
AWS oferuje wspaniałe narzędzia do dzielenia usług: dostarczanie treści i S3 dla elementów statycznych, RDS i SimpleDB dla rozproszonych baz danych oraz EC2 dla skalowalnych zasobów serwera. –