Лёгкая масштабируемость Zope

В статье "Easy scalability" автор объясняет, как легко масштабировать Zope-приложение в случае необходимости.

Масштабируемость сделанных на Zope приложений проводится легко и не требует изменения кода самих приложений.

Zope поддерживает развитие приложений или инфраструктуры без изменения их кода. Даже при самой простой установке можно настроить Zope как автономный сервер обработки входящих запросов и доступ к базе данных в рамках одного процесса Zope. Если вам необходимо обрабатывать большое количество поступающих запросов, или ваша машина стала работать медленнее, можно масштабировать Zope с применением дополнительных серверов.

ZEO - Zope Enterprise Objects

ZEO является технологией клиент-сервер, которая позволяет отделить front-end серверы Zope от сервера базы данных. Front-end серверы ZEO обращаются к ZEO-серверам, используя протокол ZEO. При таком подходе вы можете просто добавить более (дешевые) front-end серверы ZEO в настройки, чтобы масштабировать ваше приложение и добавить балансировщик загрузки перед приложением для распределения поступающих запросов.

zope web servers

Источник: The Fnord Portal

ZEO позволяет вам масштабировать и со стороны сервера. В случае снижения производительности вы можете добавить дополнительные  серверы хранения ZEO и вмонтировать их в front-end серверы ZEO.

Высокая доступность

Избыточность и высокая доступность могут быть ключевыми факторами для высоко нагруженных приложений и интернет-сайтов. Эти аспекты рассматриваются в реально-существующих приложениях через

  • Балансировку нагрузки - поступающие запросы направляются на front-end серверы Zope
  • ZEO - отказ одного front-end сервера Zope не будет влиять на общую функциональность вашего сайта. Балансировщик нагрузки обнаружит отказ и не будет посылать запросы на сервер
  • Репликацию сервера(ов) хранения ZEO - это может быть достигнуто, либо через Zope Replicated Storage (коммерческий ZRS), либо через DRDB (на уровне блоков), либо через использование ZEORaid (программно-реализованный ZEO Raid)

Производительность

Как и любое другое интернет-приложение, Zope может работать быстро или медленно, что зависит от индивидуального кода приложения и от того, что оно выполняет. Ключевым фактором производительности Zope является кэширование. В рамках типичного Zope-приложения, кэширование осуществляется на разных уровнях:

  • на уровне баз данных ZODB с помощью внутреннего кэша ZODB;
  • при использовании ZEO, ответы сервера баз данных кэшируются на стороне клиента;
  • внутреннего кэша Zope (HTTPCaches, RAMCaches);
  • кэширование на уровне приложения;
  • Выделенные кэш-серверы являются обычно инвертированными прокси-серверами, такими как Apache, Squid или Varnish, выполняющими кэширование на уровне HTTP.

По материалам zope2.zope.org

Перевод КОМТЕТ komtet.ru

Вам также может помочь