Когда хорошее время начать думать о масштабировании?
-
04-10-2019 - |
Вопрос
Я проектировал сайт за последние пару дней и выполнял некоторые исследования различных аспектов масштабирования сайта горизонтально. Если дела идут как запланировано, через несколько месяцев (годы?) Я знаю, что мне нужно будет беспокоиться о масштабировании сайта вверх и вне, поскольку ресурсы в конечном итоге охватывают потребление, будут огромными.
Итак, это заставило меня думать, когда лучшее время начать думать, и проектировать, масштабируемость? Если вы начнете слишком рано, вы можете легко затруднить ваш дизайн и сделать невозможным на самом деле. Вы также можете быть слишком догнаны деталями, архитектуру, что угодно, и заверили ничего не сделали. Кроме того, если вы получите его работать, но сайт никогда не взлетает, вы, возможно, потратили хороший кусок дополнительных усилий.
С другой стороны, вы могли бы спасать себя тонну усилий по дороге. Разработайте его с земли, чтобы быть большим, сделало бы намного проще, чтобы позволить ему расти, с очень маленьким переписывать.
Я знаю, над тем, что я работаю, я решил сделать по крайней мере несколько выборов сейчас на стороне масштабирования, но я не собираюсь сделать полную смену мышления, чтобы полностью масштабироваться. Примечательно, что я переработал свою базу данных из обычного реляционного дизайна к одному аналогичному, что было предложено на сайте Reddit, связанные ниже, и я собираюсь дать Memcache S попробуйте.
Итак, основной вопрос, Когда хорошее время начать думать или беспокоиться о масштабировании, а какие хорошие дизайны, советы и т. Д. Для этого при этом?
Пара вещей, которые я читал, для тех, кто заинтересован:
http://www.codinghorror.com/blog/2009/06/scaling-up-vs-scaling-out-hidden-costs.html.
Решение
Хорошо - хотя и разумная архитектура должна позволить вам увеличить позже, не требуя чрезмерных ресурсов для реализации. Это следует подумать о самого начала проекта.
В наше время существует очень хорошие архитектуры и узоры проектирования предприятия, которые вы можете рисовать от (Rails, MVC, Spring и т. Д.), Что позволяет разработать программное обеспечение на хорошо обоснованном и хорошо понятном основании, который предоставляет необходимые механизмы для расширения масштабирования.
Другие советы
Под определенной точкой зрения методы масштабирования вполне приняты и консолидированы. Таким образом, вместо того, чтобы полагаться на веб-ссылки / статьи, я бы читал книги на тему, прежде чем начать пробел.
Я предлагаю:
- «Масштабируемые интернет-архитектуры» - http://www.amazon.com/scalable-Internet-architectures-the-schlossnagle/dp/067232699x/Ref=sr_1_1?ie=utf8&s=1_&qid=1274462743&sr=8-1
- «Искусство масштабируемости» - http://www.amazon.com/art-asalability-architecture-organizations-enterprise/DP/0137030428/REF=SR_1_3?ie=utf8&s= kslys&qid=1274462743&sr=8-3.
- «Искусство планирования емкости» - http://www.amazon.com/art-capabity-planning-scaling-resources/dp/0596518579/ref=pd_bxgy_b_text_b.