Joomla na wielu serwerach skalowalnych co Ty na to ? da się czy się nie da ? Pewnie że się da, a jak Ci powiem że koszt takiego rozwiązania będzie tańsze* niż Twój serwer dedykowany i w tym momencie zacząłeś się zastanawiać, ale to dobrze bo trzeba mieć umysł otwarty na różne rozwiązania technologiczne. Jeśli nigdy nie miałeś do czynienia z Cloud Computingiem to odsyłam do Wikipedii po polsku do tego artykułu TUTAJ. Pewnie zadajesz sobie pytanie czy to jest dla mnie ? muszę odpowiedzieć niejednoznacznie to zależy na czym Ci zależy i co konkretnie próbujesz osiągnąć. Chmura to nie jedno rozwiązanie ale setki ich, ale dziś skupimy się na polskiej chmurze e24cloud.
PRZYPADEK
Mamy stronę umownie będzie to "Tajna strona" która ma dość dużo plików .jpg w dodatku oglądalność tej strony nie jest równomiernie czasowo rozłożona, a szczyt odwiedzin przypada między godziną 17:00 a 23:30 w dni powszechne. W weekendy bywa różnie i niema szczególnego schematu który moglibyśmy zastosować. Ten przykład idealnie wpisuje się w e-commerce chodź w tym wypadku jest to strona z gazetkami ogłoszeniowymi. Cała strona zajmuje 15 GB i rośnie z czego 90% to wspomniane wyżej obrazy.
PROJEKTOWANIE
Wykorzystanie serwerów i rozwiań z e24cloud
Konfiguracja następująca:
Jeden region - Poznań
Dwa serwery skalowane obciążeniem oraz harmonogramem, backupowane
Jeden load balancer
Dodatkowo backup strony trzymany na S3 w AWS
BACKUP
W każdym środowisku jest to ważny element w moim rozwiązaniu są zastosowane dwa backupu samych maszyn WEB-1 i WEB-2 to obrazy dysków przechowywane u e24cloud. Backup uruchamia się z harmonogramu trzymany jest 21 dni po tych dniach starsze są usuwane, aby ograniczyć koszty przechowywania danych. Na hostingach współdzielonych backup jest trzymany zazwyczaj 5 - 7 dni inne rozwiązania jak VPS czy dedykowany serwer to już różnie bywa. Tutaj ustalasz sam czas, jeśli chcesz trzymać kopie z 3 miesięcy owszem możesz tylko licz się z kosztami przechowywania danych.
Kopia zapasowa jest wyklikiwana wiec kiedy ma się robić i jaki dysk na być z backupowany, reszta zajmie się e24cloud, a Ty możesz spać spokojnie.
Sam CMS Joomla wraz z plikami jest backupowana dodatkowo do bucketu na S3 czyli usługi do przechowywania plików w chmurze na Amazon Web Services. Ze względu że to strona testowa przetestowałem wysyłka mysqla ważącego prawie 300 MB
Na diagramie w sekcji PROJEKTOWANIE macie odnogi prowadzące z bucketu S3 do AWS, AZURE, GOOGLE Cloud czy Regionu Warszawa na e24cloud koncept jest taki jeśli przestanie odpowiadać mi chmura e24cloud to mogę poprzez kopie plików, sql spokojnie migrować do innego dostawcy przygotowując infrastrukturę i zaciągając kopie na gotowych serwerach azure czy EC2. Mało tego mogę znaleźć dostawce który np nie będzie pobierał opłat za wyłączone środowisko pewnie gdzieś by się takiego znalazło i tym sposobem mamy Disaster Recovery za (0 zł) dla całej infrastruktury www naszego biznesu.
SYNCHRONIZACJA
No tak dwa serwery nikt nie będzie robił roboty podwójnie i tutaj z pomocą przychodzą tryby synchronizacji, które już musisz sam skonfigurować w swojej aplikacji czy też strony. W mojej "Tajnej stronie" mysql działa w trybie MASTER <-> MASTER ten tryb oferuje taką korzyść że niezależnie czy Load Balancer skieruje ruch zmiany będą na obu serwerach jednocześnie. Przykład działania pokaże wam w najbliższym odcinku Joomla To Proste #14 , który będzie dostępny na kanale YT https://joomlaguru.pl/proste suby mile widziane motywują mnie do dalszej pracy.
Jeśli chodzi o pliki to można wykorzystać kilka rozwiązań jak:
Ponieważ nie jestem master of linux script guy wykorzystałem to co miałem pod ręką i było łatwiej skonfigurować. Przetestowałem Unison i działał jak złoto do czasu out of memory przy stronie 15 GB niestety zawieszał cała maszynę przy synchronizacji być może da się temu zaradzić jeśli wiesz jak zostaw info w komentarzu będę Ci niezmiernie wdzięczny.
Drugi testowany skrypt to SynThing który działa sprawnie i ma dostęp webowy nawet ciekawe rozwiązanie dla osób które na bieżąco coś poprawiają można zdefiniować kilka lokalizacji i wówczas się synchronizują. Nie jest to idealne rozwiązanie które by mnie satysfakcjonowało, ponieważ wykorzystuje pery poza sieci chmurowej, póki co działa. Jednak to jest do zmiany i takiego rozwiązania na produkcji nie polecam ze względu bezpieczeństwa.
PODSUMOWANIE
Jeśli zastanawiasz się ile czasu zajęło mi zbudowanie całego środowiska ? To już Ci odpowiadam ponieważ całość jest wyklikiwana to postawienia dwóch serwerów + VLAN pod Load Balancer max 10 min. kolejne około dwudziestu minut zajęło mi skalowanie, harmonogramy skalowania i backupu na obu serwerach. E24Cloud to fajna i nie skomplikowana chmura obliczeniowa, przy tym nawet przystępna cenowo moje środowisko w tym momencie kosztuje 0.34 grosze / 1h czy dużo czy mało to już zależy od Twojego punktu widzenia. Musisz pamiętać o kilku rzeczach płacisz tylko za wykorzystane zasoby, ale również za transfer wychodzący z usług 0.02 / 1h także zapoznanie się z cennikiem to rzecz święta znajdziesz go tutaj http://www.e24cloud.com/cennik/
Miej proszę na uwadze że trochę wiedzy musisz mieć ze sobą aby skonfigurować czy mysqla we wspomnianym trybie Master <-> Master lub Master -> Slave a i sama synchronizacja też się nie skonfiguruje. Przy odrobinie wysiłku jesteś wstanie to zrobić sam.
Przetestuj usługę z linków zamieszczonych dostaniesz 20 zł na testy zawsze to coś na dobry start.