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

Варианта развития событий два. Либо админы сходят с ума, после 100500 деплоя приложения на сотню серверов, либо они начинают использовать лучшие рецепты DevOps. У тебя есть возможность пройти классный курс "DevOps для интернет-проектов", который проводится в рамках курсов Brainwashing. Курс ведут люди, которые многие годы занимались эксплуатацией в таких компаниях, как Skype, Groupon, КупиКупон, Оверсан-Скалакси. И вот, что они обещают:

За 2 дня разберём внедрение DevOps на практике. Научим устанавливать окружение сервера за 5 минут, делать выкатку простой и управляемой, настраивать мониторинг так, чтобы он помогал, а не спамил. Объясним, когда использовать облака и CDN, где лучше размещать проект и как не пострадать от падения марсианского корабля на датацентр.

При этом это не два дня лекций, а мастер-класс с закреплением теоретических знаний практикой (для этого на курс надо взять ноутбук с Linux или OS X на борту).

Курс платный, однако, место можно получить бесплатно, если первым максимально правильно и полно ответить на следующие вопросы.

  1. У вас в конфиге nginx следующее:
    
    upstream fallback {
      server 127.0.0.1:80;
    }
    
    server {
        listen 80;
        server_name example.com www.example.com mobile.example.com;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    
        location /nginx-status {
          stub_status on;
          access_log   off;
        }
    
        location / {
          proxy_set_header X-Real-IP $remote_addr;
          if ($host = 'mobile.example.com') {
            rewrite ^ http://example.com/mobile/$uri last;
            break;
          }
          proxy_pass http://fallback;
        }
    }
    

    Перепишите этот конфиг так, как вы считаете должно быть правильно.

  2. В приложении вы выполняете некоторые запросы на read-only реплике, На особенно долгих запросах приложение пишет в лог:
  3. ActiveRecord::StatementInvalid: PGError: ERROR: canceling statement due to conflict with recovery DETAIL: User query might have needed to see row versions that must be removed. : SELECT …

    Почему это может происходить и что надо сделать, чтобы это исправить?

  4. Развернуто расскажите в чем особенности ассинхронной модели ввода-вывода (epoll) и многотредовой модели (thread pool). В каких случаях удобней использовать одну модель а в каких другую? Сервис с какой моделью вы выбрали бы для работы с жестким диском?
  5. Что делает tcp, когда приемный буфер переполнен? Представьте, что вы создатель протокола tcp и как вы бы решили проблему переполнения буфера?
  6. Вы используете IO планировщик deadline и решили запустить скрипт на удаление файлов с пониженным приоритетом к диску. После старта, скрипт загрузил весь диск и стал мешать другим процессам. В чем причина?
  7. В чем отличие расчета значений load average в Linux и Freebsd (или Solaris), как вы сами бы сделали формулу подсчета этого параметра?

Ответы принимаются до 19 сентября через эту форму.

P.S. Полная программа курса

День первый.Рассказ о подходах и практиках, введение в методологию. Инфраструктура: серверы и облака, как выбрать? Каналы связи, CDN — особенности и подводные камни. Как прогнозировать нагрузку, управление мощностями. Мониторинг. Первая практика — работа с vagrant и chef-solo, разворачиваем проект. Как не потерять данные и запросы к сайту — бэкапы и отказоустойчивость. Управление конфигурацией. Особенности начальной установки серверов.

День второй. Введение в Opscode Chef. Вторая практика — работа с knife и chef-server. Архитектура Сhef и анатомия Chef-run. Минимальный руби курс для работы с Chef. Третья практика — заменяем в своей инфраструктуре apache на nginx, используя Chef. Работа с аттрибутами, ролями и окружениями в Chef. Датабаги и управление данными. Четвертая практика — работа с данными в Chef. Пятая практика — LWRP, code reuse. Шестая практика — примеряем workflow работы с кукбуками. Седьмая практика — особенности выкатки с системой управления конфигурацией.

Оставить мнение