Temat troszeczkę bardziej złożony, więc potrzebuję kilkunastu zdań aby go opisać. Chciałbym się dowiedzieć co RoR ma do zaoferowania przy bardziej złożonym projekcie. Być może istnieją już jakieś gotowe rozwiązania i dobrze działają.
Dobrym przykładem będzie tutaj aplikacja sklepu internetowego, ponieważ w sposób widoczny spełnia ona kilka założeń:
- Każdy sklep musi być oddzielnym wydzielonym środowiskiem pod względem dostępu do zasobów sprzętowych.
- Każdy sklep powinien mieć możliwe najnowszą wersję ale z różnych przyczyn musi być też możliwość pozostawienia danego sklepu na starszej wersji.
- System sklepu musi być zintegrowany także z innymi systemami jak np. system magazynowy, księgowy, generowania druczków itd.
- Aktualizacje wersji systemu muszą przebiegać szybko i sprawnie.
Możliwe są 2 podejścia do zaprojektowania takiego systemu:
- Cały system upakowany w 1 serwer, całkowicie niezależne.
- Główna część systemu z bazą danych oddzielnie dla każdego sklepu. Natomiast poszczególne część jak np. obsługa e-maili, integracja druczków z kurierem na oddzielnych serwerach.
*serwer - wirtualny serwer / oddzielny serwer / konto na hostingu
A teraz clue: Czy RoR posiada jakieś gotowe rozwiązania dla systemów, które są pokrojone na zależne części i komunikują się pomiędzy sobą np. przez jakieś API.
Tj. np. chciałbym uzyskać następującą konfigurację:
- system sklepu jest niezależny jeśli chodzi o wydajność sprzętową (baza danych + obsługa ruchu w sklepie)
- System integracji druczków dla kuriera stanowi oddzielny serwer, z którym system sklepu się łączy i wymieniają pomiędzy sobą informację
- System integracji z systemem księgowo-magazynowym stanowi oddzielny serwer i system sklepu łączy się z nim poprzez API i wymieniają pomiędzy sobą informację
- System obsługujący e-maile współpracuje zarówno z systemem sklepu jak i wszystkimi pozostałymi modułami
Co RoR może zaoferować w tej kwestii?
Jeśli ktoś ma doświadczenia w pracy w RoR i może porównać aplikacje, które stanowiły zupełnie niezależne byty oraz aplikacje, które były rozproszone tak jak tutaj opisałem również będę wdzięczny za takie porównanie. Mam tutaj przede wszystkim na myśli rozwój tych aplikacji w czasie.