<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Блог Андрея Смирнова (разработка)</title><link>http://www.smira.ru/</link><description></description><language>ru</language><lastBuildDate>Sun, 11 Jan 2015 20:58:38 GMT</lastBuildDate><generator>http://getnikola.com/</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Первый вебинар из серии "Разработка надёжных высоконагруженных систем"</title><link>http://www.smira.ru/posts/highload-webinar-upcoming.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;Серия вебинаров &lt;a class="reference external" href="http://smira-webinar.highload.ru/"&gt;"Разработка надёжных высоконагруженных систем"&lt;/a&gt; началась в прошлом 2014 году первым бесплатным вебинаром, на котором мы рассмотрели состав курса, основные темы, а также сделали небольшое введение
в мир высоконагруженных и надежных приложений. До старта основной части из шести вебинаров осталось чуть больше недели,
самыми сложными будут первые два вебинара про хранение данных 20-21 января. Мы поговорим о том, как устроены базы данных,
как они работают, почему так сложно масштабировать хранение данных, и о том, как осуществить это масштабирование. Мы
расшифруем "страшные" аббревиатуры ACID и CAP, поговорим об AP, CP и CA-системах.
Еще есть время &lt;a class="reference external" href="http://smira-webinar.highload.ru/"&gt;зарегистрироваться и оплатить свое участие&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Все участники получат запись вебинаров, небольшой тест для закрепления полученной информации, а также доступ
к практическим заданиям.&lt;/p&gt;
&lt;p&gt;Вот запись первого бесплатного вебинара "Введение":&lt;/p&gt;
&lt;iframe src="//player.vimeo.com/video/115121262" width="900" height="506" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;</description><category>highload</category><category>высокие нагрузки</category><category>мастер-класс</category><category>разработка</category><guid>http://www.smira.ru/posts/highload-webinar-upcoming.html</guid><pubDate>Sun, 11 Jan 2015 16:25:22 GMT</pubDate></item><item><title>Серия вебинаров "Разработка надёжных высоконагруженных систем"</title><link>http://www.smira.ru/posts/highload-webinar.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;То, о чем многие спрашивали, наконец-то случилось! Мы с &lt;a class="reference external" href="http://highload.ru/"&gt;Олегом Буниным&lt;/a&gt; открыли регистрацию на
&lt;a class="reference external" href="http://smira-webinar.highload.ru/"&gt;серию вебинаров "Разработка надёжных высоконагруженных систем"&lt;/a&gt;. По содержанию
вебинары будут на 90% соответстовать &lt;a class="reference external" href="http://www.smira.ru/categories/master-klass.html"&gt;мастер-классу&lt;/a&gt;, который проходил два раза этим летом.
С точки зрения формата вебинар и мастер-класс значительно отличаются:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;вебинар проходит по вечерам, начиная с 18:00, нет необходимости решать вопросы с работой;&lt;/li&gt;
&lt;li&gt;вебинаров будет семь: шесть основных частей и введение, можно выбрать толькое те темы, которые нужны, или записаться на весь курс;&lt;/li&gt;
&lt;li&gt;по сравнению с мастер-классом живого общения будет меньше, это связано с техническими особенностями и количеством участников;&lt;/li&gt;
&lt;li&gt;стоимость участия значительно ниже.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Создавая курс "Разработка надежных высоконагруженных систем", я старался ответить
на вопрос: что необходимо сделать, чтобы система масштабировалась при увеличении нагрузки
в два, десять, сто раз? При условии ограниченности ресурсов этот вопрос далеко не простой,
универсального ответа на него не существует, но понимая основные принципы построения архитектур
веб-приложений и зная о доступных решениях, можно найти ответ, который подходит для каждой
конкретной системы.&lt;/p&gt;
&lt;p&gt;Тема надежности находится очень близко к теме высоких нагрузок: это и отказоустойчивость,
избыточность, надежность хранения данных, разворачивание системы в нескольких дата-центрах.
Моя задача - дать такой набор знаний и приемов, чтобы после серии вебинаров участник мог построить
подходящую архитектуру самостоятельно. Это не будет курс о тюнинге MySQL или о настройке отказоустойчивого nginx,
но мы будем говорить о том, почему MySQL устроен так, как он устроен, какие из этого вытекают характеристики, и, соответственно, что делать, чтобы заставить его работать быстрее. Мы поговорим о том, почему nginx использует несколько процессов
и асинхронный сетевой ввод-вывод, а также о том, как может быть обеспечена отказоустойчивость прокси-сервера без
состояния.&lt;/p&gt;
&lt;p&gt;Курс ориентирован на разработчиков веб-приложений (серверная часть, предоставляющая API, и клиентская - HTML/JS/Deskop/Mobile).
Теоретический рассказ перемешивается с анализом существующих продуктов, примерами архитектур высоконагруженных
и отказоустойчивых систем, мы будем вместе решать задачи по проектированию и искать ответы на вопросы.&lt;/p&gt;
&lt;p&gt;Деление вебинаров по темам можно отобразить на архитектуре типичной веб-системы следующим образом:&lt;/p&gt;

&lt;div id="slides_42376f4344184f4ca4b92f9423a30a01" class="carousel slide"&gt;
    &lt;ol class="carousel-indicators"&gt;
            &lt;li data-target="#slides_42376f4344184f4ca4b92f9423a30a01" data-slide-to="0" class="active"&gt;
            &lt;/li&gt;&lt;li data-target="#slides_42376f4344184f4ca4b92f9423a30a01" data-slide-to="1"&gt;
            &lt;/li&gt;&lt;li data-target="#slides_42376f4344184f4ca4b92f9423a30a01" data-slide-to="2"&gt;
            &lt;/li&gt;&lt;li data-target="#slides_42376f4344184f4ca4b92f9423a30a01" data-slide-to="3"&gt;
            &lt;/li&gt;&lt;li data-target="#slides_42376f4344184f4ca4b92f9423a30a01" data-slide-to="4"&gt;
            &lt;/li&gt;&lt;li data-target="#slides_42376f4344184f4ca4b92f9423a30a01" data-slide-to="5"&gt;
    &lt;/li&gt;&lt;/ol&gt;
    &lt;div class="carousel-inner"&gt;
                &lt;div class="item active"&gt;&lt;img src="http://www.smira.ru/galleries/webinar-parts/highlight1920.001.png" alt="" style="margin: 0 auto 0 auto;"&gt;&lt;/div&gt;
                &lt;div class="item"&gt;&lt;img src="http://www.smira.ru/galleries/webinar-parts/highlight1920.002.png" alt="" style="margin: 0 auto 0 auto;"&gt;&lt;/div&gt;
                &lt;div class="item"&gt;&lt;img src="http://www.smira.ru/galleries/webinar-parts/highlight1920.004.png" alt="" style="margin: 0 auto 0 auto;"&gt;&lt;/div&gt;
                &lt;div class="item"&gt;&lt;img src="http://www.smira.ru/galleries/webinar-parts/highlight1920.006.png" alt="" style="margin: 0 auto 0 auto;"&gt;&lt;/div&gt;
                &lt;div class="item"&gt;&lt;img src="http://www.smira.ru/galleries/webinar-parts/highlight1920.008.png" alt="" style="margin: 0 auto 0 auto;"&gt;&lt;/div&gt;
                &lt;div class="item"&gt;&lt;img src="http://www.smira.ru/galleries/webinar-parts/highlight1920.010.png" alt="" style="margin: 0 auto 0 auto;"&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;a class="left carousel-control" href="http://www.smira.ru/posts/highload-webinar.html#slides_42376f4344184f4ca4b92f9423a30a01" data-slide="prev"&gt;‹&lt;/a&gt;
    &lt;a class="right carousel-control" href="http://www.smira.ru/posts/highload-webinar.html#slides_42376f4344184f4ca4b92f9423a30a01" data-slide="next"&gt;›&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Первый вебинар, "Введение" будет посвящен общим вопросам отказоустойчивости и высоких нагрузок, мы разберем примеры,
поговорим о том, как внедрять изменения в команде разработки (или на уровне компании). Участие бесплатно, вебинар пройдет 18-го декабря,
необходимо только &lt;a class="reference external" href="http://goo.gl/forms/KCqSZ8eRoI"&gt;зарегистрироваться&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Основные шесть вебинаров (данные I+II, приложение, архитектура, клиент и тестирование, эксплуатация) пройдут с 20-го января по
17-е февраля, подробная программа и ссылки на регистрацию опубликованы на &lt;a class="reference external" href="http://smira-webinar.highload.ru"&gt;сайте вебинара&lt;/a&gt;.
Сегодня участие в каждом из шести вебинаров стоит 4000 рублей, а все вместе - 16000 рублей (скидка 33%). По мере приближения
даты вебинаров цена будет расти, так что торопитесь :)&lt;/p&gt;</description><category>highload</category><category>высокие нагрузки</category><category>мастер-класс</category><category>разработка</category><guid>http://www.smira.ru/posts/highload-webinar.html</guid><pubDate>Sun, 14 Dec 2014 18:22:16 GMT</pubDate></item><item><title>HighLoad++-2014</title><link>http://www.smira.ru/posts/highload-2014.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;На &lt;a class="reference external" href="http://highload.ru/"&gt;Highload++-2014&lt;/a&gt; в этом году я выступал с двумя докладами.&lt;/p&gt;
&lt;p&gt;Первый доклад ("&lt;a class="reference external" href="http://www.highload.ru/2014/abstracts/1519.html"&gt;Клиентские приложения под нагрузкой&lt;/a&gt;")
был одним из тех, который открывал конференцию. Он достаточно простой, но, судя по отзывам, нашел отклик в
аудитории: с теми проблемами, о которых я говорил в докладе, сталкивались очень и очень многие. Идея
доклада пришла от осознания того факта, что клиентские и серверные разработчики часто не могут найти
общий язык, не понимая до конца все проблемы и сложность работы друг друга.&lt;/p&gt;
&lt;p&gt;Перед докладом показывали шаржи на докладчиков:&lt;/p&gt;
&lt;iframe src="//player.vimeo.com/video/110703144" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Ну и слайды самого доклада:&lt;/p&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/41040323" width="595" height="385" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt;&lt;p&gt;Второй доклад ("&lt;a class="reference external" href="http://www.highload.ru/2014/abstracts/1639.html"&gt;Анатомия веб-сервиса 2.0&lt;/a&gt;") был переработанной
версией &lt;a class="reference external" href="http://www.smira.ru/posts/anatomy-of-web-service.html"&gt;весеннего доклада с РИТ-2014&lt;/a&gt;. Основная идея: то, как устроен backend
внутри (многозадачность, сетевой ввод-вывод, обработка входящих и исходящих соединений) влияет на характеристики
полученного решения.&lt;/p&gt;
&lt;p&gt;Слайды:&lt;/p&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/41040324" width="595" height="385" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt;</description><category>highload</category><category>разработка</category><guid>http://www.smira.ru/posts/highload-2014.html</guid><pubDate>Sat, 22 Nov 2014 17:41:39 GMT</pubDate></item><item><title>Golang Meetup July 2014</title><link>http://www.smira.ru/posts/golang-meetup-july-2014.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;Вчера прошел отличный &lt;a class="reference external" href="http://www.meetup.com/Golang-Moscow/events/194773402/"&gt;Golang Moscow Meetup&lt;/a&gt; в офисе Google. Было
очень много участников, что не может не радовать. Интересный crash course Go от Дмитрия Вьюкова, "секретный" проект по
автоматической генерации кода от Алексея Палажченко. Всем большое спасибо!&lt;/p&gt;
&lt;p&gt;Выкладываю слайды своего доклада:&lt;/p&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/37354492" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt;</description><category>aptly</category><category>golang</category><category>meetup</category><category>разработка</category><guid>http://www.smira.ru/posts/golang-meetup-july-2014.html</guid><pubDate>Fri, 25 Jul 2014 12:37:35 GMT</pubDate></item><item><title>Exponential Backoff или как "не завалить сервер"</title><link>http://www.smira.ru/posts/exponential-backoff.html</link><dc:creator>Andrey</dc:creator><description>&lt;blockquote&gt;
Этот пост был написан по материалам
&lt;a class="reference external" href="http://smira.highload.ru"&gt;мастер-класса про высокие нагрузки и надежность&lt;/a&gt;.&lt;/blockquote&gt;
&lt;p&gt;При любом взаимодействии клиента и сервера мы сталкиваемся с необходимостью повторять запросы. Сетевое соединение
может быть ненадежно, могут быть проблемы на сервере или любые другие причины, из-за которых необходимо
повторить запрос. То же самое касается и взаимодействия backend-сервера с базой данных или любым другим
хранилищем данных (другим сервисом).&lt;/p&gt;
&lt;p&gt;Мы сегодня поговорим об интервале повторов запроса. Через какой период времени после неудачного запроса
можно его повторить? Давайте рассмотрим две стратегии: повтор через фиксированный интервал времени и
экспоненциальное откладывание (exponential backoff). Мы увидим на симуляции, что при условии наличия
большого числа клиентов повтор через фиксированный интервал может не дать серверу "подняться", а использование
exponential backoff позволяет избежать этой проблемы.&lt;/p&gt;
&lt;p&gt;Вопрос интервала повторов становится важным при проблемах на сервере. Очень часто сервер способен выдержать
нагрузку от клиентов, которые отправляют запросы в некотором "текущем" режиме, распределяя свои запросы
во времени случайным образом. Если на сервере происходит отказ, все клиенты обнаруживают его и начинают
повторять запросы через некоторый интервал. Может оказаться, что частота таких запросов превышает тот предел,
который сервер может обрабатывать.&lt;/p&gt;
&lt;p&gt;Еще одним важным моментом является то, что клиент часто не может отличить проблемы на сервере от проблем
с сетевым соединением на стороне клиента: если ответ на запрос не приходит в заданный интервал времени,
клиент не может сделать заключение о том, в чем именно проблема. И поведение клиента (повтор запроса, интервал
повтора) будут одинаковыми в обоих ситуациях.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.smira.ru/posts/exponential-backoff.html"&gt;Читать далее…&lt;/a&gt; (5 минут чтения осталось)&lt;/p&gt;</description><category>highload</category><category>разработка</category><guid>http://www.smira.ru/posts/exponential-backoff.html</guid><pubDate>Wed, 11 Jun 2014 16:55:48 GMT</pubDate></item><item><title>Отзывы на мастер-класс</title><link>http://www.smira.ru/posts/training-feedback.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;После первого &lt;a class="reference external" href="http://smira.highload.ru"&gt;мастер-класса про высокие нагрузки и надежность&lt;/a&gt; я получил большое
количество отзывов от участников. По 10-балльной шкале средний балл при ответе на вопрос "Ваше общее
впечатление от мастер-класса" составил 8,92, что совсем неплохо для первого раза. Подавляющее большинство оставивших
отзыв порекомендовало бы мастер-класс своим коллегам и знакомым.&lt;/p&gt;
&lt;p&gt;Вот некоторые из отзывов:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Семинар позволил мне упорядочить знания, получить новые сведения и обратить более пристальное внимание на известные мне проекты.»&lt;/p&gt;
&lt;p class="attribution"&gt;—Денис Котляров&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;«Очень нравится способ подачи материала через постоянный диалог с аудиторией - для меня это очень эффективно.»&lt;/p&gt;
&lt;p class="attribution"&gt;—Павел Крюков&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;«Крайне подробный курс, включающий в себя ровно столько информации, сколько достаточно для аргументированного принятия тех или иных решений. Количество информации в каждой из областей близко к границе понятия "необходимо и достаточно". Лучший неуниверситетский курс, который я когда-либо видел.»&lt;/p&gt;
&lt;p class="attribution"&gt;—Евгений Кузовлев&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;«Всё отлично. Очень много разных тем. При этом все подробно. При этом все что непонятно, быстро и подробно объясняется.»&lt;/p&gt;
&lt;p class="attribution"&gt;—Иван Ремизов&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Из замечаний к мастер-классу, кроме организационных мелочей, можно выделить пожелание добавить больше практических
заданий и совместных занятий. В следующий раз я сокращу теоретическую часть в пользу основного задания -
проектирование Twitter-подобного проекта. Мы будем проектировать вместе, а также в группах, пытаясь найти интересные
и неудачные места в проектах архитектур. А я постараюсь поделиться своим опытом создания подобных систем.&lt;/p&gt;
&lt;img alt="highload training" src="http://www.smira.ru/galleries/highload.training.png"&gt;
&lt;p&gt;&lt;a class="reference external" href="http://smira.highload.ru"&gt;Приходите на мастер-класс 4-го, 5-го и 6-го июля&lt;/a&gt;, будет еще интереснее, чем в первый раз!&lt;/p&gt;
&lt;p&gt;Другие материалы в моем блоге о мастер-классе:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;отрывки из курса: &lt;a class="reference external" href="http://www.smira.ru/posts/highload-reliability-training-rit-2014.html"&gt;про хранение данных&lt;/a&gt; и
&lt;a class="reference external" href="http://www.smira.ru/posts/highload-and-reliability-more-excerpts.html"&gt;про очереди и многозадачность&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;основные &lt;a class="reference external" href="http://www.smira.ru/posts/highload-reliability-training-july.html"&gt;темы практических заданий&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;как были &lt;a class="reference external" href="http://www.smira.ru/posts/training-assignments.html"&gt;сделаны практические задания&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>highload</category><category>мастер-класс</category><category>разработка</category><category>рит</category><guid>http://www.smira.ru/posts/training-feedback.html</guid><pubDate>Mon, 09 Jun 2014 19:32:33 GMT</pubDate></item><item><title>Практические задания на мастер-классе</title><link>http://www.smira.ru/posts/training-assignments.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;Первый &lt;a class="reference external" href="http://smira.highload.ru"&gt;мастер-класс о высоких нагрузках и надежности&lt;/a&gt; прошел успешно,
оказалось, что 900 слайдов на три дня даже слишком много :) В следующий раз
теоретическая часть будет немного покороче, а практики будет побольше. На мастер-классе было
&lt;a class="reference external" href="http://www.smira.ru/posts/highload-reliability-training-july.html"&gt;7 практических заданий&lt;/a&gt;, каждое из которых
работало корректно у всех 25 участников на протяжении всех трех дней.
Я не ожидал, что не будет ни одной проблем.&lt;/p&gt;
&lt;p&gt;Когда я начинал подготовку к мастер-классу, я понимал, что:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;задачи не должны зависеть от умения программировать: все знают разные языки программирования, да и сам
процесс кодирования может занять много времени;&lt;/li&gt;
&lt;li&gt;потребуются различные сервисы в рамках заданий, установить их на ноутбуки участников и обеспечить
отсутствие проблем будет сложно;&lt;/li&gt;
&lt;li&gt;я буду один на 25 человек, и подойти к каждому и помочь решить проблемы я не смогу.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Поэтому единственным вариантом оставалось подготовить сами задания (код) заранее и запускать их
в контролируемом окружении. Можно было выдать всем по образу виртуальной машины, но это опять-таки
потребует установки на все ноутбуки участников системы виртуализации, производительность каждой
машины будет разной. В результате я решил запустить виртуальные сервера в Amazon EC2, это имеет
следующие преимущества:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;одинаковое окружение у всех участников (как по составу, так и по производительности);&lt;/li&gt;
&lt;li&gt;участникам требуется только ssh;&lt;/li&gt;
&lt;li&gt;я могу централизовано управлять виртуальными машинами: готовить к следующему заданию и т.п.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.smira.ru/posts/training-assignments.html"&gt;Читать далее…&lt;/a&gt; (3 минут чтения осталось)&lt;/p&gt;</description><category>highload</category><category>разработка</category><category>рит</category><guid>http://www.smira.ru/posts/training-assignments.html</guid><pubDate>Thu, 29 May 2014 21:05:41 GMT</pubDate></item><item><title>Мастер-класс про высокие нагрузки и надежность: второй заход</title><link>http://www.smira.ru/posts/highload-reliability-training-july.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;До первого &lt;a class="reference external" href="http://smira.highload.ru"&gt;мастер-класса о высоких нагрузках и надежности&lt;/a&gt; осталась неделя,
свободных мест уже давно нет, но можно записаться на второй заход 4-го, 5-го и 6-го июля. Кто еще
не собрался в отпуск, приходите, будем вместе разбираться с тем, как построить высоконагруженную
и надежную систему.&lt;/p&gt;
&lt;p&gt;Я уже публиковал отрывки из курса про &lt;a class="reference external" href="http://www.smira.ru/posts/highload-reliability-training-rit-2014.html"&gt;хранение данных&lt;/a&gt;,
&lt;a class="reference external" href="http://www.smira.ru/posts/highload-and-reliability-more-excerpts.html"&gt;сетевой ввод-вывод и очереди&lt;/a&gt;.
Кроме теоретической части на мастер-классе
будет и практическая часть, вот темы основных заданий:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;memcached: выделение памяти, каковы накладные расходы;&lt;/li&gt;
&lt;li&gt;"битва" моделей сетевого программирования: процессы, нити, асинхронный ввод-вывод;&lt;/li&gt;
&lt;li&gt;PostgreSQL vs. Redis: скорость и чем она достигается;&lt;/li&gt;
&lt;li&gt;шардирование, консистентное хеширование, что происходит при отказах шард;&lt;/li&gt;
&lt;li&gt;влияние алгоритма повтора на клиенте на восстановление работоспособности сервера;&lt;/li&gt;
&lt;li&gt;ØMQ на практике: взаимодействие сервисов;&lt;/li&gt;
&lt;li&gt;протоколы соглашения и распределенная консистентная конфигурация.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Еще одно задание проходит "красной нитью" через весь курс, оно связано с проектированием Twitter-подобного
проекта: от схемы базы данных до архитектуры клиентского приложения, схемы отказоустойчивости и
оценок масштабируемости.&lt;/p&gt;</description><category>highload</category><category>мастер-класс</category><category>разработка</category><category>рит</category><guid>http://www.smira.ru/posts/highload-reliability-training-july.html</guid><pubDate>Fri, 16 May 2014 20:34:18 GMT</pubDate></item><item><title>Мастер-класс: высокие нагрузки и надежность</title><link>http://www.smira.ru/posts/highload-and-reliability-more-excerpts.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;На мой &lt;a class="reference external" href="http://smira.highload.ru"&gt;мастер-класс про высокие нагрузки и надежность&lt;/a&gt; 24-26 мая осталось
совсем мало мест! Выкладываю еще два небольших отрывка курса.&lt;/p&gt;
&lt;p&gt;Выбор языка программирования, фреймворка, на котором будет написан backend - дело непростое,
необходимо взвесить большое количество факторов и принять правильное решение. Одним из таких
факторов является сетевая архитектура backendа. Здесь тесно переплетаются два вопроса:
организация сетевого ввода-вывода и многозадачная обработка запросов. Backend по сути
представляет из себя "сложный прокси-сервер", который принимает HTTP-запросы, выполняет
запросы к базе данных, другим хранилищам и сервисам, связывая их бизнес логикой, и
формирует ответ. Это означает, что вопрос обработки соединений, переключение между
обработкой конкурентных соединений играет важную роль в общей производительности
приложения. Особенно ярко эти факторы проявляются при обслуживании долгих запросов
(Websocket, long-polling, ...).  Каждый язык программирования и фреймворк предоставляет
(или не предоставляет) выбор механизмов многозадачности и сетевого ввода-вывода, мы
поговорим подробно о Javascript, PHP, Java, Python, Ruby, Go и Erlang.&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/33889610" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px 1px 0; margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt;&lt;p&gt;&lt;a href="http://www.smira.ru/posts/highload-and-reliability-more-excerpts.html"&gt;Читать далее…&lt;/a&gt; (1 минут чтения осталось)&lt;/p&gt;</description><category>highload</category><category>мастер-класс</category><category>разработка</category><guid>http://www.smira.ru/posts/highload-and-reliability-more-excerpts.html</guid><pubDate>Thu, 24 Apr 2014 19:30:49 GMT</pubDate></item><item><title>Анатомия веб-сервиса (РИТ-2014)</title><link>http://www.smira.ru/posts/anatomy-of-web-service.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;Сегодня я выступил на &lt;a class="reference external" href="http://ritconf.ru/"&gt;РИТ-2014&lt;/a&gt; с докладом о том, как устроен backend внутри,
как он обрабатывает запросы, отправляет запросы в другие сервисы, базы данных и другие хранилища. Я немного
поговорил о том, как может быть организована многозадачность и какие выводы можно из этого сделать.&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/33515838" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px 1px 0; margin-bottom:5px; max-width: 100%;" allowfullscreen&gt; &lt;/iframe&gt;&lt;p&gt;Доклад был небольшой частью моего &lt;a class="reference external" href="http://smira.highload.ru"&gt;мастер-класса по высоким нагрузкам и надежности&lt;/a&gt;,
который я проведу 24-26 мая. Если доклад показался интересным, приходите на мастер-класс. Там мы поговорим
обо всем более детально, разберем практические задачи.&lt;/p&gt;
&lt;p&gt;P.S. Записывайтесь на мастер-класс скорее, всего будет 20 участников, а мест осталось уже не так много!&lt;/p&gt;</description><category>разработка</category><category>рит</category><guid>http://www.smira.ru/posts/anatomy-of-web-service.html</guid><pubDate>Mon, 14 Apr 2014 19:18:11 GMT</pubDate></item></channel></rss>