Назад | Перейти на главную страницу

Доступность и масштабирование: три уровня или два уровня

Я начал работать над трехуровневым веб-сайтом (UI: MVC / Application: REST / DB), я всегда считал, что три уровня более масштабируемы, чем два (табу для веб-сайтов с высоким трафиком), но в последнее время я знал, что некоторые хорошо известные веб-сайты - это двухуровневые, а не трехуровневые веб-сайты, и, похоже, они работают довольно хорошо.

Так в чем же дело, как решить, два ли будут служить вам (в целом) лучше, чем три. веб-сайт, который я собираюсь создать, является общедоступным, но относительно небольшим, и я ожидаю большого трафика.

Любые идеи?

Это требует довольно небольшого анализа приложения. При определении того, насколько хорошо данная система будет масштабироваться, есть несколько вопросов, которые нужно задать себе, чтобы помочь определить болевые точки масштабирования:

  1. Если я внезапно увижу на порядок больше трафика, где я увижу проблемы и как быстро я смогу их решить?
    1. Как насчет двух порядков?
  2. Если мой сайт будет расти в течение года, где я увижу проблемы из-за размера?

Эти вопросы помогут вам выяснить, где какие-то отдельные точки могут вас сбить с толку, и определить уровни, требующие чрезмерных ресурсов для горизонтального масштабирования. Некоторые вещи будет сложно смоделировать, например, рост БД за год и то, как это влияет на производительность БД. Остальные будут простыми, например производительность сервера приложений.

Это помогает в двух- или трехуровневом анализе, поскольку сообщит вам, нужно ли вам вообще разделить первые два уровня, и поможет выяснить, насколько далеко в дальнейшем вам понадобится дискретный первый уровень. Если кажется, что увеличение на два порядка за год вызывает проблемы на первом уровне, спроектируйте свой уровень 1/2 так, чтобы его можно было разделить позже, и делайте это позже по мере необходимости.