Jak projektować skalowalne aplikacje? [zamknięte]
Jak zaprojektować / zaprojektować skalowalną aplikację? Jakieś sugestie dotyczące książek lub stron internetowych, które mogłyby pomóc zrozumieć, jak skalować aplikacje?
Thanks
9 answers
W ciągu ostatniego roku musiałem się spieszyć z tym pytaniem do projektu, nad którym pracuje Moja Firma, i znalazłem te zasoby niezwykle pomocne: Todd Hoff ' s highscalability.com; skalowalne architektury internetowe, autorstwa Theo Schlossnagle; oraz budowanie skalowalnych witryn internetowych, autorstwa cala Hendersona. Highscalability.com w szczególności wskaże Ci wiele dobrych presenations, tutoriale, książki, i dokumenty, i jest doskonałym miejscem, aby rozpocząć. Wszystkie porady są praktyczne i oparte na doświadczeniu w witrynach takich jak Flickr, Twitter i Google.
BTW, skalowalność to nie Wydajność. Idealnie skalowalny system to taki, który ma stały koszt krańcowy, aby dodać dodatkowych użytkowników lub pojemność.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 16:41:07
To jest przyjemna lektura na livejournal i jak skalowali swoją aplikację w czasie.
Danga.com/words/2004_mysqlcon/mysql-slides.pdf[PDF]
Może nie jest to coś, czego szukasz, ale jest to jeden z lepszych przeglądów" Tak zrobiliśmy i dlaczego " na temat skalowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 17:58:41
Tutaj są już świetne odpowiedzi. W niektórych książkach i linkach znajdziesz kilka wspólnych schematów myślenia.
-
Napisz jak najmniej kodu
-
Użyj kodu jak najwięcej
-
Nie przerywaj, ani pod abstrakcją swojego projektu
Podziel rzeczy na obszary modułowe, które mogą działać na oddzielnych lub wielu systemach. Ciężkie przetwarzanie należy pozostawić oddzielnemu systemowi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 17:40:56
Mam tendencję do myślenia, że skalowalność jest ściśle związana z konserwacją. I wydaje się być często pomijane, że ludzie poświęcają tylko krótki czas na opracowywanie aplikacji, a resztę czasu na utrzymywanie it.
Ponadto skalowanie ma prawie na pewno związek z danymi (które są bardziej zwinne niż Kod-więc chcesz mieć ich coraz więcej), dlatego koszt dostępu do pamięci powinien pozostać między
O(1)
aO(n)
.Na idealnie skalowalna aplikacja to dla mnie taka, którą mógłbym skopiować ze środowiska do innego (podobnego) środowiska, skonfigurować kilka wartości i uruchomić tak, aby rozszerzyć zakres działania całej aplikacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-25 16:20:21
Zanim zaczniesz z techniką powinieneś znać zakres zastosowania. Czego klient / jednostka biznesowa oczekuje pod względem wydajności i jakie są krytyczne obszary awarii? Scott Hanselman miał świetny podcast dotyczący tego tematu.
Niektóre ciekawostki: nie używaj buforowania, chyba że musisz; serwowanie plików jest szybsze niż składanie fragmentów z bazy danych; wiesz, jak poradzić sobie z czasem serwera peek; wiesz, jakie będą twoje szczyty be.
Ponownie, znać zakres użycia najpierw, aby wiedzieć, czy powinien Skala.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 16:16:20
Cokolwiek robisz, nie możesz zaprojektować systemu od samego początku, aby był skalowalny dla wszystkich Twoich potrzeb. Często po uruchomieniu systemu znajdziesz wąskie gardła tam, gdzie najmniej się ich spodziewasz (np.: przepustowość sieci lokalnej). W każdym razie, moja rada jest zdecydowanie highscalability.com również:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-16 08:35:18
Proponuję tę książkę:
Mimo że jest to przede wszystkim książka PHP, pomysły są takie same dla każdego stosu internetowego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 16:07:59
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 16:21:02
To dobre intro do tematu: IBM developerWorks miał kilka ciekawych samouczków na temat wykorzystania wzorców architektury dla aplikacji, które skalują się: tutaj i Tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 16:58:05