Архитектура Google

Каждый хоть раз слышал о Google благодаря их всеобъемлющему, “умному” и быстрому поисковому сервису, но ни для кого не секрет, что они не ограничиваются только им. Их платформа для построения масштабируемых приложений позволяет выпускать множество удивительно конкурентноспособных интернет-приложений, работающих на уровне всего Интернета вцелом. Они ставят перед собой цель постоянно строить все более и более производительную и масштабируемую архитектуру для поддержки своих продуктов. Как же им это удается?

Источники информации

Эта запись является переводом с английского, автор оригинальной версии — Todd Hoff. Оригинал написан приблизительно в середине 2007 года, но по-моему до сих пор очень даже актуально.

Далее следует перечисление источников информации из оригинала:

Архитектура Flickr

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

Источники информации

Этот пост является переводом статьи от Todd’а Hoff’а.  Далее привожу источники информации из оригинальной статьи:

Платформа

  • PHP
  • MySQL
  • Сегментирование (прим.: разбиение системы на части, обслуживающие каждая свою группу пользователей; называть можно было по-разному, но давайте остановимся на этом варианте перевода слова “Shards”)
  • Memcached для кэширования
  • Squid в качестве обратной-прокси для HTML и изображений
  • Linux (RedHat)
  • Smarty в роли шаблонизатора
  • Perl
  • PEAR для парсинга e-mail и XML
  • ImageMagick для обработки изображений
  • Java для узлового сервиса
  • Apache
  • SystemImager для развертывания систем
  • Ganglia для мониторинга распределенных систем
  • Subcon хранит важные системные конфигурационные файлы в SVN-репозитории для легкого развертывания на машины в кластере.
  • Cvsup для распространения и обновления коллекций файлов по сети Read the rest of this entry »

Proxy для MySQL (и не только)

  1. SQL Relay. SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux.
  2. MySQL Proxy.  The MySQL Proxy is an application that communicates over the network using the MySQL Network Protocol and provides communication between one or more MySQL servers and one or more MySQL clients. In the most basic configuration, MySQL Proxy simply passes on queries from the client to the MySQL Server and returns the responses from the MySQL Server to the client.
  3. PL/Proxy. PL/Proxy is database partitioning system implemented as PL language.
  4. SQLB : SQL Load Balancer. The SQLB project is used to improve SQL requests to a database. It supports MySQL, PostgreSQL and Oracle(tm). It is a set of deamon programs that make multiple permanent connection to one or more database when they start. Then an external program, previously linked with the sqlb client library, can send SQL requests to these deamons and get the result without any need to make a connection/disconnection. The SQLB PHP and Perl modules provided here with SQLB are some examples of such programs.

Scalability and Scalable Architecture Video Lectures

Отсюда http://freescienceonline.blogspot.com/2007/08/scalability-and-scalable-architecture.html

This month I present to you the amazingly good videos on scalability and scalable architectures.

They cover real life scalability issues and solutions at YouTube, Twitter, LiveJournal and Wikipedia. Some other videos are on more theoretical aspects of scalability such as design of effective data storage systems and effective algorithms to read and modify the data.
Also I found some video lectures on MySQL tuning, clustering and high availability.

Enjoy!
Read the rest of this entry »

Nginx

Все умные мальчики насмотрелись презентаций и уже давно установили себе на сервера NGINX.

Полезные линки по теме:

  1. хорошее описание внутренностей
  2. список рассылки 1 http://dir.gmane.org/gmane.comp.web.nginx.russian (читать обязательно)
  3. список рассылки 2 http://www.lexa.ru/nginx-ru/
  4. Nginx memcached rails
  5. Nginx English Wiki

WEB-сервер 0W-httpd (ZeroWait httpd)

Смотрел однажды  доклад разработчиков системы статистики для liveinternet.ru… Так вот один из них сказал, что они используют сервер 0W-httpd, который не доступен в исходниках. Так вот это неправда :)

Сайт программки http://0w.ru/httpd/, свеженькая версия 0.7q вышла недавно…

0W-httpd — производительный и «легкий» web-сервер.

Область применения: сайты со статическим содержимым («картиночные» сервера, файловые архивы), узкоспециализированные сервера (баннерные, счетчиковые системы), акселератор для высоко-загруженных серверов общего назначения. Фактически производительность ограничена возможностями сетевой карты и жесткого диска.
Read the rest of this entry »

Scalable web architectures

Полезные презенташки, блоги и т.д. (отсюда http://www.royans.net/arch/library/)

Library

This is a collection of Slides, presentations and videos on topics related to designing of high throughput, scalable, highly available websites I’ve been collecting for a while.
Read the rest of this entry »