Я разрабатывал сайт за прошедшие дни пары и проведение некоторого исследования в различные аспекты масштабирования сайта горизонтально. Если дела идут как запланировано через несколько месяцев (годы?) Я знаю, что должен был бы волноваться об увеличении масштаба сайта и, так как ресурсы, которые это закончит тем, что использовало, были бы огромны.
Так, это получило меня к взглядам, когда наилучшее время должно начать думать об и разрабатывать для, масштабируемость? Если Вы запускаете слишком вначале, Вы могли легко усложнять свой дизайн и лишать возможности на самом деле создавать. Вы могли также слишком оказаться в деталях, архитектуре, безотносительно, и волновать получение ничего сделанного. Кроме того, если Вы действительно получаете его работа, но сайт никогда не взлетает, Вы, возможно, потратили впустую хороший блок дополнительного усилия.
С другой стороны, Вы могли сохранять себя тонна усилия в будущем. Разработка его с нуля, чтобы быть большой сделала бы намного легче позже позволить ему стать большим с очень небольшим продолжением перезаписи.
Я знаю, для какого я продолжаю работать, я решил сделать по крайней мере несколько выбора теперь на стороне масштабирования, но я не собираюсь делать полное изменение размышления, чтобы заставить это масштабироваться полностью. В частности, я перепроектировал свою базу данных от стандартного реляционного дизайна до одного подобного тому, что было предложено на сайте Reddit, связанном ниже, и я собираюсь дать кэш-памяти попытку.
Так, основной вопрос, когда хорошее время должно начать думать или вызывать беспокойство о масштабировании, и каковы некоторые хорошие проекты, подсказки, и т.д. для при выполнении так?
Несколько вещей, которые я читал для тех, кому интересно:
http://www.codinghorror.com/blog/2009/06/scaling-up-vs-scaling-out-hidden-costs.html
Продуманная, разумная архитектура должна позволить вам масштабироваться позже, не требуя чрезмерных ресурсов для реализации. Об этом нужно думать с самого начала проекта.
В настоящее время существуют очень хорошие архитектуры и шаблоны корпоративного проектирования, из которых вы можете позаимствовать (Rails, MVC, Spring и т. Д.), Которые позволяют разрабатывать программное обеспечение на хорошо зарекомендовавшей себя и хорошо изученной основе, обеспечивающей необходимые механизмы для масштабирования. вверх.
С определенной точки зрения, методы масштабирования являются вполне приемлемыми и консолидированными. Поэтому вместо того, чтобы полагаться на веб-ссылки / статьи, я бы прочитал книги по этой теме, прежде чем приступить к задаче.
Я предлагаю: