Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aplikacja podzielona na moduły, wielu klientów
ciastek1001
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.04.2019

Ostrzeżenie: (0%)
-----


Witam. Szukam odpowiedzi na to pytanie jednak nie mogę znaleźć nic, co by mnie oświeciło. Chciałbym skierować to pytanie do osób doświadczonych, którzy pracowali już nad aplikacjami komercyjnymi i mieli w nich taki problem.
Otóż zastanawiam się na jakiej zasadzie działają aplikacje, które mają kilku klientów. Przykładowo: napisałem jakiś prosty system, który chciałbym sprzedawać dla wielu firm (czysto teoretycznie). Każda firma wykupuje podstawową wersję + wybiera sobie moduły.
Jak to jest z tymi modułami? Czy dla każdego klienta tworzy się oddzielny VPS, stawia się od nowa aplikacje i ją dostosowywuje, wgrywa jakiś folder z modułem? W takim przypadku przy aktualizacji i zmianach na każdym VPS musiałbym aktualizować kod.
Czy jest na to jakieś rozwiązanie? Jakaś technika, wzorzec projektowy?
Drugie pytanie to baza danych, choć z tym trochę znalazłem na forach, jednak zdania tam są podzielone. Jedna dla wielu czy kilka? Jeśli jedna - działa to na zasadzie : każda tabela ma kolumnę z np. "idFirmy" i potem po tej kolumnie wszystko filtrujemy? Tyle że w takim wypadku np.: jeden klient będzie miał w tabeli 100 tyś/ milion rekordów * kilka/kilkanaście firm, czy to jest dobre rozwiązanie?
Z drugiej strony każdy klient z jedną bazą danych, ale tu dochodzi do problemu edycji - zmiany w każdej bazie przy aktualizacjach.
Przepraszam jeśli powtórzyłem temat, niestety nic nie znalazłem. Nie jestem także bardzo doświadczony, trochę koduje, ale brak mi porady ekspertów (IMG:style_emoticons/default/wink.gif)
Dziękuję z góry za każdą pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Co do modułów to możesz je wszystkie mieć na serwerze i włączać je w konfiguracji dla danego klienta. Jeśli są to jakieś zewnętrzne moduły, które klient może wgrać, to uploadujesz je do folderów per klient - każdy ma swój.

Co do bazy - to zależy :-) Jeśli aplikacja jest mała, danych nie ma za dużo to możesz spokojnie to trzymać w jednej dodając wszędzie identyfikator klienta. Jeśli jest większa, więcej danych to osobna baza będzie lepszym rozwiązaniem. Kwestia aktualizacji jest moim zdaniem pomijalna - bo to obojętne czy skrypt uruchomisz dla jednej wielkiej bazy czy dla wielu mniejszych. Mniejsze nawet możesz podzielić czasowo, uruchomić w kilku procesach i finalnie wyjdzie nawet szybciej (no i aktualizacja u jednego klienta nie spowalnia pracy pozostałych).

Co do podziału klient - nowy VPS to też ma sens. Ale jak wyżej - wszystko zależy od przypadku. Jeśli np w aplikacji masz różne plany, z różnymi parametrami wydajnościowymi, albo klient płaci za faktyczne zużycie to może się bardziej opłacać (czy tez być sprawiedliwiej) rozdzielać klientów na osobne maszyny. Wtedy działania jednego klienta nie wpływają w ogóle na innych. Wszystkie działania administracyjne mogą być odseparowane, jeden klient nie nadużyje zasobów przydzielonych dla innego klienta. Jedynie tutaj proponowałbym pójść w stronę kontenerów niż osobnych VPSów - będzie wygodniej i raczej taniej.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 20:45