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

Author: Jim Ferrans, 2009-05-25

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ść.

 42
Author: Jim Ferrans,
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.

 4
Author: JensenDied,
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.

 3
Author: Jas Panesar,
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) a O(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.

 2
Author: miku,
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.

 1
Author: David Robbins,
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ż:)

 1
Author: Zubair,
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ę:

Http://www.amazon.com/Scalable-Internet-Architectures-Developers-Library/dp/067232699X/ref=sr_1_1?ie=UTF8&s=books&qid=1243267630&sr=8-1

Mimo że jest to przede wszystkim książka PHP, pomysły są takie same dla każdego stosu internetowego.

 0
Author: Tommy Hui,
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
 0
Author: Pavel Nikolov,
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 .

 0
Author: ivo,
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