В статье 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.
Quaternions and spherical trigonometry
6 дней назад
10 коммент.:
Интересно, "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.
Согласен с вами Михаил, пост Алёны интересен. Заставляет мозговые извилины пошевелиться и поднимает настроение пункт "Build it to Break". :)
Спасибо.
Mikhail Barg:
Низкая связанность это общий для всех уровней принцип. Тут речь идет скорее о распределенке на всех уровнях, то есть если есть возможность обвалить слой падением одной ноды, то это гарантированный фейл.
Хотя, имхо, это идеализм, даже у совсем больших дядь узким местом остаются менеджеры и балансировщики, критический сервер всегда найдется.
Mikhail Barg
Интересно, "1. Build it to Break" подразумевает просто loose coupling или что-то иное? Из оригинала я этого так и не понял..
Они там все вместе смешали и слабую связность, и устойчивость к сбоям.
Я считаю все пункты можно объединить в один:
"Маштабируемая система это большой черный ящик, с которым рано или поздно что-то случится. И единственное, что в ваших силах, это немного отсрочить этот момент и сделать так, чтобы последствия не были очень большими."
Алёна, приветствую!
Прочитал твой пост 5летней давности http://alenacpp.blogspot.com/2006/09/blog-post_19.html
Насколько он сейчас примерно актуален?
Анонимный
Прочитал твой пост 5летней давности http://alenacpp.blogspot.com/2006/09/blog-post_19.html
Насколько он сейчас примерно актуален?
Актуален вполне. Можно по этим книгам заниматься. И комментарии там хорошие.
Благодарю, успехов по жизни и вообще ;-)
Интересная выжимка, спасибо.
По пункту "3. Scale Out, Not Up"
- увы, далеко не всё масштабируется так. Иногда задачу придходится решать одним большим куском, и разбивать её на части - себе дороже.
И ещё можно добавить пункт "Software as a Toolbox". То есть вместо одного большого монстра, который всё делает, писать софт так, чтобы это были небольшие утилиты. Большие программы будут их дёргать по необходимости. Я тут симулятор большой решил писать - в нём это работает на все 100%.
Ещё раз спасибо за пост.
Отличный пост, мне как новичку очень полезно. А вообще по жизни очень помогает совет: "Если кто-то может понять тебя не правильно, он обязательно поймет тебя не правильно"!
Отправить комментарий