суббота, января 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 комментариев:

  1. Интересно, "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.

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

    Спасибо.

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

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

    ОтветитьУдалить
  4. Mikhail Barg

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

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

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

    ОтветитьУдалить
  6. Анонимный22/1/12 01:09

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

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

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

    ОтветитьУдалить
  7. Анонимный

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

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


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

    ОтветитьУдалить
  8. Анонимный25/1/12 22:13

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

    ОтветитьУдалить
  9. Интересная выжимка, спасибо.

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

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

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

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

    ОтветитьУдалить