...

четверг, 12 сентября 2013 г.

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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий