[конкурс] DevOps Brainwashing

от автора

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

Варианта развития событий два. Либо админы сходят с ума, после 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 реплике, На особенно долгих запросах приложение пишет в лог:

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 …

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

3. Развернуто расскажите в чем особенности ассинхронной модели ввода-вывода (epoll) и многотредовой модели (thread pool). В каких случаях удобней использовать одну модель а в каких другую? Сервис с какой моделью вы выбрали бы для работы с жестким диском?

4. Что делает tcp, когда приемный буфер переполнен? Представьте, что вы создатель протокола tcp и как вы бы решили проблему переполнения буфера?

5. Вы используете IO планировщик deadline и решили запустить скрипт на удаление файлов с пониженным приоритетом к диску. После старта, скрипт загрузил весь диск и стал мешать другим процессам. В чем причина?

6. В чем отличие расчета значений 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 работы с кукбуками. Седьмая практика — особенности выкатки с системой управления конфигурацией.

ссылка на оригинал статьи http://habrahabr.ru/company/xakep/blog/193530/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *