Айри — облако для сайта


    Недавно мы запустили новый сервис — облако для сайта, айри.рф. Облако для сайта — это когда весь сайт легкий, прозрачный, воздушный и быстрый. Никакие картинки, скрипты, сложная серверная логика, базы данных и никакой DDoS не могут его опустить. Это когда сайт летает. Мы реализовали свою мечту — теперь любой сайт, независимо от платформы, внутренних особенностей или клиентской логики можно положить в облако. И он станет работать быстрее и надежнее на всех устройствах и для всех пользователей. И доступно это как для самых маленьких сайтов, так и для самых крупных.

    Да, это похоже на западный CloudFlare. И первоначальная модель у нас такая же. Но только на просторах России, согласно ее географии. И развиваться мы планируем по-другому.

    P.S. Сейчас Айри в стадии беты, мы активно набираем первых пользователей, хотя сервис уже перешел в коммерческую эксплуатацию, и надежность является приоритетом.


    Архитектура


    Первоначально мы планировали сделать несколько компонентов сервиса, максимально разделив уровни ответственности. Но позже, в силу разного рода ограничений на целостность данных и отказоустойчивость системы, мы дошли до следующей архитектуры:

    Весь сервис разбивается на географически-независимые узлы, пользователи направляются на тот или иной узел в зависимости от IP адреса и DNS записи. DNS-записи гео-балансируются (при отказе какого-либо узла мы в течение короткого периода времени можем перенаправить локальных пользователей на другой узел).
    1. Слой DNS. Каждый узел представляет собой пару серверов, настроенных при помощи LVS для максимальной отказоустойчивости. Дополнительно зоны на разных DNS серверах отвечают по-разному для разных регионов, создавая гео-балансировку.
    2. Слой балансировки (LVS). Основные машины, которые принимают на себя всю нагрузку. Они же предназначены для подключения к защите от DDoS и перераспределяют запросы на различные FEO-CDN сервера, в зависимости от домена сайта.
    3. FEO-CDN слой (от Front-End Optimization и Content Delivery Network). Каждый узел представляет собой кэширующий и оптимизирующий кластер прокси-серверов. Над архитектурой этого слоя мы думали долго, и продолжаем думать, как максимально оптимизировать и работу сайта, и нагрузку на сервера. На текущий момент у нас есть 4 уровня кэширования и проксирования:
      1. Front-end уровень, только сжимает (через gzip) контент и кэширует финальные HTML-страницы сайты, если необходимо. Если запросов нет в кэше, то проксирует их дальше. Собирает статистику по отданному контенту.
      2. Оптимизирующий уровень. Здесь развернут Page Speed с некоторыми нашими улучшениями в части отложенной загрузки и динамического кэширования страниц. Наиболее сложный уровень с точки зрения применяемых алгоритмов. Все запросы не из кэша отправляются на уровень ниже.
      3. Кэширующий уровень. Кэширует всю статику и, по возможности, динамику. Отдает все из кэша, если может. Если нет — запрашивает исходный сайт. Также логирует низкоуровневые запросы и обеспечивает распаковку (unzip) данных от исходного сайта.


    Балансировка и отказоустойчивость


    В ходе реализации мы рассматривали несколько сценариев отказа сервиса (или сайта). Приведу некоторые основные:
    1. Отказывает DNS-слой какого-нибудь узла — подключается второй из LVS-пары. Если отказывают оба сервера, то на DNS-запросы (ровно с тем же содержанием) начинают отвечать DNS-слои других узлов.
    2. Отказывают оба сервера LVS-пары слоя балансировки какого-нибудь узла. В этом случае за счет DNS-балансировки запросы автоматически направляются на другие узлы.
    3. Отказывает (перегружен) FEO-CDN слой — автоматически подключаем дополнительные запасные сервера на этом слое. Если доступных серверов нет, то действуем по предыдущему сценарию — переводим сайты на другой узел.
    4. Перегружен канал (DDoS) на один или несколько узлов — автоматически подключаем QRator для «проблемных» слоев балансировки.
    5. Исходный сайт отказывает (становится недоступен). Если сайт кэшируется и период недоступности меньше времени жизни кэша, то пользователи ничего не замечают. Если период недоступности меньше суток, то продолжаем выдавать страницы сайта из кэша. Для динамических сайтов — индивидуальная политика (страницы-заглушки, кэшированный контент или перенаправление).

    Основные проблемные места и риски устранены архитектурой, поэтому мы можем говорить об отказоустойчивости 99,9%.

    Как работает ускорение


    Самое сложное и интересное — как работает ускорение. Мы проанализировали имеющиеся фильтры Page Speed, собрали из них несколько вариантов, подходящих для большинства сайтов. И называли уровни ускорения соответствующим образом: Безопасный (когда никакого вреда сайту гарантированно не будет причинено), Минимальный (когда есть минимальные риски навредить сайту), Оптимальный (подходит для большинства сайтов, обеспечивает значительное ускорение, но потенциально опасен) и Максимальный (самый рисковый и самый эффективный вариант). Кроме этого мы предлагает и ручную настройку всех параметров, при необходимости (в полном соответствии с уже имеющейся политикой настройки нашего продукта — WEBO Site SpeedUp).

    Подчеркну, что по умолчанию все статические объекты сайта надолго кэшируются, а все текстовые — надежно архивируются. Кроме этого доступно объединение файлов, включение небольших объектов в содержание страниц, логика отложенной загрузки и Local Storage, равно как и использование множественных доменов и data:URI для изображений. В общем, полный фарш для тех, кто хочет настроить все. И гарантированный уровень скорости и надежности сайта для всех остальных.

    В совокупности с гео-балансировкой запросов (посетители сайта получают объекты сайта с наиболее близкого к ним сервера) мы решаем все проблемы со скоростью сайта «в один клик».

    Тарифы


    Мы подошли максимально дружелюбно к пользователям — и предлагаем тарифы от бесплатного (включено 50 Гб исходящего трафика в месяц) до максимального (от 50 тысяч рублей). Средний сайт может подключиться за 1000-2000 рублей в месяц (это включает 100-250 Гб трафика в месяц, хватает до 100 тысяч пользователей в месяц).

    Подключение


    Есть два основных вида подключения: через смену DNS серверов и через CNAME синоним www. В первом случае мы подключаем домены, которые доступны только без www (например, айри.рф) — нужно делегировать домен на наши сервера, чтобы мы могли полностью управлять гео-балансировкой.

    Второй вид подключения подходит для сайтов, которые доступны только через www или и так, и так. В последнем случае необходимо сделать перенаправление с сайта без www на сайт с www и создать DNS запись для сайта
    www	IN	CNAME	cloud.airee.ru.

    После этого сайт начнет обслуживаться через облако.

    Конечно, все эти действия нужно выполнять после отправки заявки. Мы пока не обслуживаем все домены Рунета :)

    В самое ближайшее время появится и личный кабинет для управления облаком.

    Буду рад вопросам и комментариям. Наша цель — сделать Айри стандартом де-факто при размещении сайтов в Рунете.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 25

      +19
      Николай, я думаю мы с Вами оба понимаем, что утверждения типа «любой сайт, независимо от платформы, внутренних особенностей или клиентской логики можно положить в облако» — не более чем marketing bullshit.

      Поэтому хочется кратко и по делу, насколько я понял, по сути вы сделали следующее:
      — прикрутили днс-балансер
      — продублировали бэкэнды, поставив перед ними балансировщик
      — отдаёте статику по CDN
      — кэшируете и жмёте всё что жмётся гугловским pagespeed-ом

      Ну круто, да, а база? В любом веб-проекте тормозит всегда хранилище данных. Это разрабочтикам сайта надо быть последними отморозками, чтобы сайт тормозил из-за отдачи статики.

      Поставить пару модулей к nginx и прикрутить CDN — это ещё ни разу не облако и вообще задача для слабо одарённого школьника. Что вы реально сделали, чтобы обеспечить «из коробки» отказоустойчивость БД, кей-вэлью стораджей, серверов очередей, любого другого софта который может быть в проекте?

        –4
        99% сайтов в Рунете не делают то, что вы описали. Айри — это идеальное решение для них.
        Область отказоустойчивости БД и других серверных вопросов мы отдадим Битрикс. Они отлично с этим справляются. А если не очень хорошо справляются — то, как минимум, сами научатся и других научат. Область Айри — клиентская оптимизация, скорость на всех устройствах и во всех регионах.
        –1
        А как это работает и работает ли вообще в случае SaaS-платформ??
          0
          Работает как прокси — для динамических сайтов все cookie и пользовательские данные транслируются на исходный сервер, обратно все заголовки данные также транслируются. С SSL отдельная история, возможно несколько вариантов. Для SaaS-платформ работает также, как и для обычных сайтов. Только если SaaS доступно с нескольких IP-адресов, то необходима дополнительная настройка.
          0
          Аналог www.cloudflare.com?
            0
            Второй абзац.
              +4
              Мы запустили подобный сервис уже несколько месяцев назад — caspowa.com.
              Регистрация открыта, есть бесплатный тарифный план — Starter (за счет базовой Front-end оптимизации этого достаточно для ускорения большинства сайтов).
                –1
                Молодцы, очень за вас рад! Но это несерьезно: caspowa.com/tariffs — сколько будет стоить ускорение 1 среднего сайта?
                  0
                  На самом деле, мы также рады видеть, что мы не единственные на рынке. Только почему несерьезно? План Starter абсолютно полноценный, соответсвенно, ускорение 1 среднего сайта будет стоить 0 рублей в месяц.
              –1
              Наши клиенты: masterhost,… РБК


              Действительно клиенты или всё же заглушка?
                0
                действительно
                  0
                  Можно тогда вас попросить ссылки на сайты, где используются ваши технологии?
                  masterhost.ru на мой взгляд не оптимизирован, rbc.ru вроде живет своими силами.
                    –3
                    Вот только сегодня ogorod.com d РБК закрыли, ссылка работать не будет.
                    По Мастерхосту был закрытый под NDA проект. Аналогично с Мегафон и Фаберлик — закрыто по NDA.

                    Если интересно список конкретных ресурсов — можно обсудить лично.
                +2
                Да, это похоже на западный CloudFlare. И первоначальная модель у нас такая же. Но только на просторах России, согласно ее географии. И развиваться мы планируем по-другому.
                Многие IP адреса CloudFlare уже попали в реестр запрещенных сайтов и иногда к некоторым нормальным сайтам (когда DNS выдает заблокированный IP) невозможно получить доступ. В этом случае очистка кэша DNS в браузере спасает, конечно же.
                Но как вы с этим будете бороться? Рано или поздно один из ваших клиентов попадет в реестр, не только по домену, но и по одному из ваших IP.
                  0
                  Планировали бороться за счет административного ресурса. Есть возможность использовать разные IP для разных доменов.
                  +1
                  уже на первой же странице врут на манер сотовых операторов и банков :((
                  Весь входящий трафик бесплатно (при соотношении не больше 1/2 входящего к исходящему).
                    –1
                    Формулировка «Оплата за входящий трафик при превышении соотношения 1/2 входящего в исходящему» — лучше?
                    +1
                    Две тыщи в месяц за хостинг сайтов-визиток? Десять тыщ в год за SSL сертификат? Мне одному кажется, что 150 и 300 рублей соответственно — более реальные цифры? Ну да это не самое главное. Самое интересное это то, что, как я понял, продаётся трафик. То есть на каждом тарифе есть лишь ограничения по трафику (ну и мелочи типа включённого в стоимость SSL-сертификата и защиты от DDOS). Означает ли это, что можно размещать что угодно и, если трафик меньше 250 гигов в месяц, то всё окей? А то есть у меня один сервис — информационный, сайт практический полностью текстовый. Но в нём просто адовых размеров БД с огромным количеством записей, безумными фильтрами-запросами, под которую аж целый отдельный некислый сервер выделен. А трафика меньше 250 гигов создаёт. Можно у вас такое разместить на самом дешёвом тарифе?
                      0
                      Да, конечно!
                        0
                        Тьфу ты, мать честная. Я тут докопался на вашем сайте до инфы о том, что это не хостинг, а вовсе даже сервис. Первый вопрос тогда отпадает. Зато возникает второй — неужели статика может создавать хоть какие-то проблемы? Мне кажется, что бэкенд даёт 99,9% нагрузки на машину.
                          0
                          да, 90% проблем у пользователей при посещении сайта создает статика (в том числе, со сторонних ресурсов). Yahoo! об этом 6 лет назад написало, до сих пор актуально.
                          Поищите статьи на тему «Скорость загрузки сайта»
                            +1
                            А, ну 6 лет назад это, конечно, актуально было. У меня тогда первый интернет проводной безлимитный появился на 128 кбит/с. Не сочтите за холивар — мне правда интересно. А вот, почему, например, у вас на сайте js-ки при обновлении страницы отдаются с кодом 304, а картинки и шрифты — 200? Вроде как для статики и надо 304 отдавать «для скорости»?
                              0
                              Интернет 6 лет назад лучше сравнивать с мобильным интернетом сейчас.
                        0
                        Возник вопрос касательно защиты от DDoS, цитата с сайта:
                        ** Защита от DDoS включает полосу 100 Мбит/с, превышение полосы оплачивается по тарифу 5 рублей за каждые полные или неполные 1 Мбит/с в день.

                        Поясните, это означает что если мой сайт будут атаковать скажем 20Gbps на протяжении суток, что не редкость в наше время, то это мне выльется в 5*(20000-100)= 99500 рублей в сутки за защиту? Разве не оптимальнее в таком случае заказать отдельно защиту у того же куратора, кажется даже у них выйдет дешевле…
                          0
                          Дешевле у них не выйдет. Но можете заказать.
                          Сравните их тарифные планы qrator.net/rates/

                        Only users with full accounts can post comments. Log in, please.