Pull to refresh
15
0
Дмитрий @StamPit

Operations

Send message

Сбор расширенной статистики работы апстрима с помощью nginx-sla

Reading time8 min
Views16K

Введение


Повышение качества обслуживания клиентов неизменно приводит к более высокой их лояльности. Причем не только в смысле приверженности определенному онлайн-продукту, но и в смысле терпимости к его недостаткам, при условии, конечно, что достоинства – скорость, юзабилити, функциональность и т.д. – их перевешивают.

Измерить качество обслуживания напрямую мы, конечно, не можем, однако даже такую эфемерную величину в принципе можно свести к набору количественных характеристик, так или иначе косвенно отражающихся на качестве. Прибыль, число клиентов, процент конвертированных лидов (leads – зарегистрировавшиеся или заинтересованные пользователи) и т.д. – все это вполне объективные показатели. Кроме того, эти величины могут быть включены в систему контроля эффективности работы в качестве KPI – ключевых показателей эффективности.

С нашей, инженерной точки зрения подобными характеристиками являются время ответа и HTTP-код ответа апстрима. Действительно, дизайн, функциональность продукта, маркетинговые усилия и прозвон клиентов находятся вне зоны нашей компетенции. Следовательно, нужно сфокусироваться на том, что находится в нашей власти – ускорение работы инфраструктуры приложения и обработки клиентских запросов.

Анализ отклика и HTTP-кодов удобно проводить на основе некоторой собранной статистической базы, и здесь мы плавно подходим к теме статьи.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments10

#FailOverConf — как это было, презентации и видео

Reading time5 min
Views12K


4 апреля мы провели первую FailOver Conference — конференцию, целиком и полностью посвященную отказоустойчивости сайтов и их бесперебойной работе.

Целый день, более 7 часов, мы слушали доклады от разработчиков и архитекторов облачных сервисов, системных администраторов хостинг-провайдеров, опытных DBA, обсуждали их, спорили…

Тема оказалась очень важной и востребованной — более 1200 человек зарегистрировались на онлайн-трансляцию.

Конечно, сложно сразу «переварить» такой большой объем информации. К чему-то хочется вернуться позже, попробовать применить к конкретному проекту. Именно поэтому один из самых часто звучащих вопросов как из зала, так и в онлайне (в твиттере): «А будут ли опубликованы материалы?»

Да, конечно! Мы публикуем и презентации, и видео докладов, и с удовольствием делимся ими с вами!
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments8

12 антипаттернов DevOps

Reading time6 min
Views16K
От переводчика. Продолжая серию переводов про DevOps, в этот раз хочется поговорить о том, как делать НЕ надо. Мы сталкивались с этим, каждый раз, когда приходит что-то новое, например agile. Возникают культы карго, слышаться речи, что мы особенные и у нас все не так и так далее. Так давайте же попробуем избежать этого в случае DevOps.

Итак, вы хотите стать DevOps? Хорошо, но прежде чем начать, давайте взглянем на некоторые вещи, которые вы не должны делать.

В старые добрые времена, мы просто называли их «плохие идеи», но появилась дипломатия и политкорректность, ушел «мозговой штурм» и появился «idea shower», а вместе с ним и слово «анти-паттерны».

Если «паттерн» это правильный путь, то по своей сути «анти-паттерн» является неправильным — и поэтому, чтобы не дать вам пойти неверным путем, мы составили этот список (с небольшой помощью DevOps сообщества).
Читать дальше →
Total votes 19: ↑5 and ↓14-9
Comments18

Темная сторона кода

Reading time3 min
Views86K

«Покой — это ложь. Есть только страсть.
Через страсть я познаю силу.
Через силу я познаю могущество.
Через могущество я познаю победу.
Через победу мои оковы рвутся.
И Великая Сила освободит меня.»

— Кодекс ситов

Я хочу поговорить о темной стороне кода и о том, к чему это приводит. Что я понимаю под темной стороной кода? С моей точки зрения — это такой код, который был написан программистами, которые поддались желанию написать кое-как, исходя из своих собственных целей, а не целей продукта. Они оставили покой (размеренное написание кода согласно практикам) в угоду страсти (код ради кода). А если есть темная сторона, то есть и ее представители — Темные властелины, Дарты. Вот о них мы сегодня и поговорим.
Читать дальше →
Total votes 163: ↑125 and ↓38+87
Comments78

11 важных вещей, которые нужно знать про DevOps — часть вторая

Reading time6 min
Views12K
(Продолжение перевода, первая часть здесь)

8. Как Infosec и QA интегрируются в поток работ DevOps?

Высокие темпы развертывания обычно ассоциируемые с DevOps, часто оказывают огромное давление на QA и Infosec. Рассмотрим случай, когда разработчики делают десять развертываний в день, в то время как безопасники требуют четырехмесячного тестирования безопасности приложения. На первый взгляд, все это выглядит как тотальное несоответствие между темпами разработки и тестирования безопасности.

Примером риска, связанного с недостаточно проверенным процессом развертывания, является известная проблема Dropbox в 2011, когда аутентификация была отключена на четыре часа, что позволило неавторизованным пользователям получить доступ ко всем хранимым данным.
Читать дальше →
Rating0
Comments0

11 важных вещей, которые нужно знать про DevOps — часть первая

Reading time9 min
Views302K

От переводчика


В 2009 года за рубежом возникло движение, которое назвало себя DevOps. На первый взгляд это разработчики с навыками сисадминов и сисадмины с навыками разработчиков. Но на самом деле это отнюдь не так. Данное подход имеет четкие цели, философию, инструменты и методы, которые только некоторые русскоязычные компании начинают использовать. Мне кажется, что данный подход у нас незаслуженно игнорируется и мне хотелось бы рассказать об 11 вещах, которые нужно знать о DevOps, в частности:
  • что такое DevOps
  • каковы его ценности
  • как он внедряется
  • кому он приносит пользу

Надеюсь, этот текст вам понравится.

Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments11

Краткая, неполная, и в основном неверная история языков программирования

Reading time5 min
Views18K
Представляю вашему вниманию вольный перевод юмористической статьи James Iry «A Brief, Incomplete, and Mostly Wrong History of Programming Languages» — статья старая, и если кто-либо укажет на уже существующий перевод — буду очень благодарен, ибо сам не нашел.
Читать дальше →
Total votes 104: ↑99 and ↓5+94
Comments26

Упрямый Маверик Хуан Чжан и его смартфоны Meizu

Reading time9 min
Views56K
«Вероятно, в связи с тем, что мы никогда не зависели от инвестиций, Meizu не испытывала ни глобального провала, ни глобального успеха. Идти дальше гораздо важнее, чем просто идти быстрее!» – считает СЕО компании Meizu Бай Юнсян (Bai Yongxiang). У нас отсутствует внешнее финансирование, мы не занимаемся наклейкой логотипа «Meizu» на готовые типовые устройства, благодаря творческой, эстетической составляющей, компания Meizu является уникальным производителем привлекательных телефонов, которые может оценить любой, независимо от своих пристрастий.


Разговор с CEO Meizu, Бай Юнсяном
Total votes 105: ↑91 and ↓14+77
Comments46

Типичный день под присмотром Алисы

Reading time6 min
Views135K
Недавно вышла новая версия комплекса MajorDoMo, о котором на Хабре была обзорная статья, и я решил, что было бы хорошо показать на живом примере, как оно работает. Возьмём самый обычный будний день и посмотрим, как Умный дом себя вёл в его течении.

Картинка для привлечения внимания

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments112

Puppet под нагрузкой

Reading time6 min
Views33K
Puppet — довольно удобный инструмент для управления конфигурациями. По сути, это система, которая позволяет автоматизировать настройку и управление большим парком машин и сервисов.

Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.

О чём пойдет речь:

  • Puppet: ликбез;
  • кластеризация, масштабирование;
  • асинхронный Storeconfigs;
  • сбор отчётов;
  • анализ полученных данных.

Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments48

27+ ресурсов для онлайн-обучения

Reading time5 min
Views969K

В настоящее время активно развивается система дистанционного обучения, теперь уже не является проблемой получение полноценного образования практически по любому предмету дистанционно. Онлайн-обучение имеет ряд преимуществ – обучение в индивидуальном темпе, свобода и гибкость, доступность, социальное равноправие. В сети появляется все больше сервисов, помогающих получать новые знания.

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Еще раз об изучении языков

Reading time7 min
Views189K
Тема изучения иностранных языков уже много раз обсуждалась здесь. В архивах можно найти много различных интересных способов и практических советов по поводу изучения языков. В какой-то момент я решил, что мне тоже, наверное, стоит поделится опытом, накопленным в процессе изучения иностранных языков: более-менее бегло я могу говорить на шести языках.
Всё, о чём я пишу здесь — это моё личное понимание проблемы изучения языков и моё видение возможных решений. Я не претендую на какую-либо истину или научность и не имею законченного профессионального образования в области лингвистики.
Я не буду рассматривать здесь изучение языка на уровне туриста, где достаточным уровнем является способность понять основные пункты меню в ресторане, сделать заказ или суметь спросить дорогу и понять, что тебе ответили. Знание языка на таком уровне, конечно, полезно, но это нельзя назвать «владением языком». Для меня уровень владения начинается с того момента, когда я могу спокойно читать тексты на этом языке используя лишь словарик, встроенный в электронную читалку (раньше AlReader, потом СoolReader, сейчас наконец PocketBook Reader).
Читать дальше →
Total votes 74: ↑68 and ↓6+62
Comments97

mysqlnd

Reading time2 min
Views48K
mysqlnd — расширение PHP, которое является драйвером для работы с MySQL по умолчанию в PHP 5.4. Оно работает напрямую с MySQL сервером, а значит, MySQL клиент, а также оверхед на работу с ним, больше не требуется!

image

Читать дальше →
Total votes 67: ↑57 and ↓10+47
Comments51

Видеозаписи докладов с High Performance Conference

Reading time3 min
Views13K
Дорогие хабрачитатели, мы готовы представить вам видеозаписи всех докладов с конференции по высоким нагрузкам HPC, которая состоялась 9 августа в Москве.



Прямо сегодня (или в любое удобное для вас время) в программе:
Сергей Аверин XEK, Badoo (участвовал в создании таких проектов как Хабр, dirty, leprosorium, autokadabra, dribbler, trendclub и др.);
Юрий Насретдинов, Badoo;
Андрей Сумин AndrewSumin, Mail.ru Group (ранее Яндекс, HeadHunter);
Константин Осипов, Mail.Ru Group ( ранее Oracle, Sun, MySQL, Ringrows, Spylog, Interpro);
Даниил Павлючков, ITmozg.ru.

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments3

Как мы научили робота помогать саппорту

Reading time7 min
Views11K


Правда жизни: даже идеальный софт не убережет его разработчика от обращений клиента в службу технической поддержки. А уж если на твоем софте (речь про Parallels Plesk Panel) крутится примерно 50% всех серверов для веб-хостинга в мире, сообщения в саппорт несутся со страшной силой. Помимо сообщений об ошибках и поломках Parallels Plesk Panel (увы, бывает) в саппорт приходят вопросы по реализации кастомных конфигураций, применению нестандартных настроек и реквесты нужных клиентам фичей для их реализации в будущем. Клиенты не всегда следят за развитием продукта и часто просто не в курсе, что предмет их запроса реализован в каком-то из предыдущих апдейтов, а нестандартные настройки уже описаны в статье базы знаний (Knowledge Base) для Parallels Plesk Panel. Нужно было просто придумать, как перехватывать такие запросы «на лету» и автоматически предоставлять пользователям ответы, тем самым разгрузив саппорт под действительно сложные случаи, о которых нет упоминания в базе знаний.

В этом материале изложен опыт Parallels Plesk Service Team (есть твиттер и группа в фейсбуке) – структурного подразделения крупной компании. Но я уверен, статья под катом будет полезна стартапам, у которых уже есть готовый продукт или сервис, но нет службы технической поддержки. И в которых на вопросы пользователей отвечают продакт-менеджер либо фаундер, делая это по пути до офиса или перед сном из дома. Наша система помогла снизить число входящих тикетов на 3-5%. В масштабах Parallels Plesk Panel это тысячи человеко-часов.

Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments8

Как правильно мерять производительность диска

Reading time14 min
Views336K
abstract: разница между текущей производительностью и производительностью теоретической; latency и IOPS, понятие независимости дисковой нагрузки; подготовка тестирования; типовые параметры тестирования; практическое copypaste howto.

Предупреждение: много букв, долго читать.

Лирика



Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
  • научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
  • использование bonnie++
  • использование iozone
  • использование пачки cp с измерениема времени выполнения
  • использование iometer с dynamo на 64-битных системах


Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.

Как мерять правильно
Total votes 151: ↑145 and ↓6+139
Comments164

edX/MITx: Введение в информатику и программирование

Reading time1 min
Views15K
Курс начинается 1 октября 2012 года и продлится до 14 января 2013 года. Как и во многих курсах от edX приблизительная нагрузка составляет 12 часов в неделю.

Курс предназначен для людей с небольшим опытом программирования, чтобы понять вычислительные подходы к решению проблем. Цель данного курса состоит в том, чтобы дать студентам обширные, но не глубокие знания многих аспектов программирования.

Требования для понимания курса: Алгебра средней школы и способности к математике.
При обучении будет использоваться язык Python версии 2.7. Знание языка не требуется.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments9

Анализ логов в реальном времени

Reading time8 min
Views72K
Современные системы мониторинга “из коробки” позволяют отслеживать практически все показатели отдельного узла системы, но обладают рядом существенных недостатков
  • зная все об одном узле, о работе системы в целом они не имеют никакого представления — попробуйте из коробки выдать руководству “в данный момент у нас 1200RPS на фронте, 90% страниц отдается за 300мс, 95% за 650мc, системных ошибок и таймаутов происходит меньше 10 в секунду” (см картинку под катом)
  • выход за рамки одного из системных показателей одного из узлов системы еще не значит, что стоит бить тревогу — возможно узел попал под повышенную нагрузку, или разработчики сменили алгоритм
  • в рамках мониторинга отдельных узлов практически невозможно уследить постепенную деградацию сервиса — как правило он срабатывает только когда уже “ничего не работает”
  • деградация производительности внешних сервисов не отслеживается в принципе (вас никогда не банил CDN?)


На исходной у нашей площадки более 1.000.000 уников, ~100.000.000 http запросов на фронтенд в сутки и развесистый, в плане сопровождения, зоопарк проектов. Набор ключевых слов — nginx, apache, php (двух вариаций), oracle. С заядлой периодичностью возникают ситуации “у нас все работает” по отдельно взятым зонам ответственности либо, что тоже не редкость, “у вас ничего не работает”. На границах ответственности идет сплошная передача тикетов.
Мы не стали изобретать велосипед и решили сделать мониторинг по времени и корректности отклика пользователю с отслеживанием отклика бекендов, а также какие из них были задействованы при обработке конкретного запроса. Ну и плюс наши объемы — не сильно большие, но несколько граблей по ходу изложения можно продемонстрировать.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments17

11 «рецептов приготовления» MySQL в Битрикс24

Reading time10 min
Views40K


Проектируя, разрабатывая и запуская наш новый большой проект — «Битрикс24», мы не только хотели сделать по-настоящему классный сервис для командной работы (к тому же еще и бесплатный — до 12 пользователей), но еще и собрать и накопить опыт по эксплуатации облачных веб-сервисов, «прокачать» свою компетенцию в разработке высоконагруженных отказоустойчивых проектов и — самое главное — поделиться этими знаниями как с нашими партнерами, так и со всеми веб-разработчиками, кому близка тема «хайлоада». :)

Конечно, в одной статье (и даже не в одной) невозможно описать универсальный «рецепт», который бы подошел абсолютно для всех проектов: для кого-то важнее производительность (иногда — даже в ущерб надежности), для кого-то — наоборот, отказоустойчивость превыше всего, где-то много маленьких таблиц, где-то — большой объем данных…

Мы постарались описать те «изюминки», которые не раз помогали нам в работе в решении тех или иных практических задач. Надеемся, они окажутся полезными и для вас. :)
Читать дальше →
Total votes 102: ↑75 and ↓27+48
Comments35

Еще 12 «рецептов приготовления» MySQL в Битрикс24

Reading time9 min
Views78K


В нашей прошлой статье — «11 «рецептов приготовления» MySQL в Битрикс24» — мы, в основном, рассматривали архитектурные решения: стоит ли использовать облачные сервисы (типа Amazon RDS), какой форк MySQL выбрать и т.п.

Судя по отзывам, тема грамотной эксплуатации MySQL в больших «хайлоад» проектах — очень большая и важная. Поэтому мы решили рассказать еще о некоторых нюансах настройки и администрирования БД, с которыми сталкивались при разработке «Битрикс24» и которые используем ежедневно.

Еще раз напомню, что эта статья (как и предыдущая) не является универсальным «рецептом» идеальной настройки MySQL на все случаи жизни. :) Такого не бывает. :) Но искренне верю, что она будет полезной для вас для решения отдельных конкретных задач.

А в конце статьи — сюрприз для самых терпеливых читателей. :)
Читать дальше →
Total votes 84: ↑65 and ↓19+46
Comments14

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

DevOps, Site Reliability Engineer (SRE)
Senior