суббота, января 14, 2012

Статья "Notes On Scalability"

В статье Notes on Scalability сформулированы пять принципов построения масштабируемых систем. Я привожу краткий перевод, по ссылке все подробнее и интереснее.

1. Build it to Break.
Что бы вы ни разрабатывали, оно сломается. Будьте к этому готовы.

2. Everything is a Feature
Ваше приложение - это набор решений и компромиссов.

3. Scale Out, Not Up
Хорошо, когда проблемы масштабирования можно решить добавлением серверов.

4. Buy More Storage
Много маленьких дисков обычно быстрее одного здорового.

5.You’re Going to Do It Wrong
Вы ошибетесь. Будьте готовы переписывать свой код и пробовать новые идеи.

По ссылке с highscalability.

10 коммент.:

Mikhail Barg комментирует...

Интересно, "1. Build it to Break" подразумевает просто loose coupling или что-то иное? Из оригинала я этого так и не понял..

Once you realize that everything can and will fail, you’ll be a lot happier with your environment, especially when something goes wrong.

Leonid комментирует...

Согласен с вами Михаил, пост Алёны интересен. Заставляет мозговые извилины пошевелиться и поднимает настроение пункт "Build it to Break". :)

Спасибо.

Илья комментирует...

Mikhail Barg:
Низкая связанность это общий для всех уровней принцип. Тут речь идет скорее о распределенке на всех уровнях, то есть если есть возможность обвалить слой падением одной ноды, то это гарантированный фейл.

Хотя, имхо, это идеализм, даже у совсем больших дядь узким местом остаются менеджеры и балансировщики, критический сервер всегда найдется.

Alena комментирует...

Mikhail Barg

Интересно, "1. Build it to Break" подразумевает просто loose coupling или что-то иное? Из оригинала я этого так и не понял..

Они там все вместе смешали и слабую связность, и устойчивость к сбоям.

Cruelbob комментирует...

Я считаю все пункты можно объединить в один:
"Маштабируемая система это большой черный ящик, с которым рано или поздно что-то случится. И единственное, что в ваших силах, это немного отсрочить этот момент и сделать так, чтобы последствия не были очень большими."

Анонимный комментирует...

Алёна, приветствую!

Прочитал твой пост 5летней давности http://alenacpp.blogspot.com/2006/09/blog-post_19.html

Насколько он сейчас примерно актуален?

Alena комментирует...

Анонимный

Прочитал твой пост 5летней давности http://alenacpp.blogspot.com/2006/09/blog-post_19.html

Насколько он сейчас примерно актуален?


Актуален вполне. Можно по этим книгам заниматься. И комментарии там хорошие.

Анонимный комментирует...

Благодарю, успехов по жизни и вообще ;-)

virens комментирует...

Интересная выжимка, спасибо.

По пункту "3. Scale Out, Not Up"
- увы, далеко не всё масштабируется так. Иногда задачу придходится решать одним большим куском, и разбивать её на части - себе дороже.

И ещё можно добавить пункт "Software as a Toolbox". То есть вместо одного большого монстра, который всё делает, писать софт так, чтобы это были небольшие утилиты. Большие программы будут их дёргать по необходимости. Я тут симулятор большой решил писать - в нём это работает на все 100%.

Ещё раз спасибо за пост.

Dmitriy Falko комментирует...

Отличный пост, мне как новичку очень полезно. А вообще по жизни очень помогает совет: "Если кто-то может понять тебя не правильно, он обязательно поймет тебя не правильно"!