Pull to refresh
4
0
Dmitrii @imert

User

Send message

Как решать конфликты с уважением к себе и оппонентам? Гайд по ненасильственному общению

Reading time6 min
Views24K

Хотелось бы, чтобы в рабочей коммуникации все понимали друг друга с полуслова, не совершали ошибок и дарили окружающим исключительно положительные эмоции — но это что-то на сказочном. Какими бы классными ни были ваши корпоративные отношения, конфликты и сбои в диалоге будут случаться. О том, как общаться и вести себя в непростых ситуациях, рассказываем под катом.
Читать дальше →
Total votes 64: ↑60 and ↓4+76
Comments26

Путешествие внутрь Avito: платформа

Reading time4 min
Views32K
image

Мы уже рассказали вам о хранилище Avito, картинках, медиапикере, но главный вопрос так и оставался нераскрытым: какая она, архитектура платформы, из каких компонентов состоит и какой стек использует. Вы просили рассказать об аппаратной составляющей Avito, используемой системе виртуализации, СХД и так далее — ну что же, отвечаем.
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments33

Немного о Iptables, Iproute2 и эмуляции сетевых проблем

Reading time4 min
Views37K
Однажды мне понадобилось в Zabbix сделать мониторинг потери пакетов между мастером и репликами (репликация плохо себя чувствует если канал не очень хороший). Для этого, в Zabbix есть встроенный параметр icmppingloss, на удаленный хост отправляется серия ICMP пакетов и результат фиксируется в системе мониторинга. И вот параметр добавлен, триггер настроен. Казалось бы задача выполнена, однако как говорится «Доверяй, но проверяй». Осталось проверить что триггер сработает когда потери действительно будут. Итак, как сэмулировать потерю пакетов? Об этом, да и не только, пойдет речь под катом.

image

Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments8

Сбор и анализ логов демонов в Badoo

Reading time12 min
Views47K

Введение


В Badoo несколько десятков «самописных» демонов. Большинство из них написаны на Си, остался один на С++ и пять или шесть на Go. Они работают примерно на сотне серверов в четырех дата-центрах.

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



Однако у нас до недавнего времени не было очень важной части — сбора и анализа логов, которые каждый демон пишет локально в файлы на сервере. Зачастую именно эта информация помогает на самом раннем этапе поймать проблему или постфактум понять причины отказа.

Мы построили такую систему и спешим поделиться подробностями. Наверняка у кого-то из вас будет стоять похожая задача, и прочтение данной статьи убережет от ошибок, которые мы успели совершить.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments53

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

Reading time3 min
Views567K
Для многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.

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

Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
Читать дальше →
Total votes 133: ↑90 and ↓43+47
Comments92

Google Calendar, как бесплатный СМС гейт

Reading time4 min
Views67K
Вы знали, что google календарь может отправлять СМС напоминания? Скорее всего, да. Я сам этим пользуюсь постоянно. А знали ли вы, что с помощью таких напоминаний можно сделать себе СМС оповещения? А вот можно. Эдакий персональный бесплатный СМС гейт. Я об этом когда-то давно читал, но тогда мне это нужно не было. Недавно понадобилось отправлять СМС оповещения от железки аля умный дом и я вспомнил об этом способе. Вспомнил, нашел готовый django модуль, реализующий его, и подключил к своему сайту. Работает! На все у меня ушло где-то пол часа. Но обо всем по порядку.
Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments51

Хороший триггер, плохой триггер: как мы мониторим сотни серверов по всему миру

Reading time8 min
Views27K


Необходимость мониторинга должна быть очевидна практически для любой компании, однако я не раз сталкивался с примерами, когда к такому выводу ребята приходили только после падения продакшна. Причем нередко команда узнавала об этом уже постфактум — от своего генерального директора, которому на недоступность проекта пожаловались его друзья, решившие вдруг взглянуть на стартап. И вот он в гневе звонит членам команды с вопросом даже не «почему все упало», а почему он об этом знает, а они — нет. И тут им в голову приходит мысль, а почему бы не настроить мониторинг? Казалось бы, что может быть проще…

Нам, например, круглосуточно требуется мониторить более 46 000 метрик на более чем 500 серверах в 6 дата-центрах и 4 странах, а DAU игры War Robots стабильно переваливает за 1 500 000 человек.

Но правильный, настоящий мониторинг пишется кровью системного администратора и разработчика. Каждый кейс, каждый факап и даже внутренние процессы, включая количества тонера в картридже принтера, должны быть описаны сценарием мониторинга. Я решил немного рассказать о том, с чем мы столкнулись при организации этого процесса, а также как выстроили работу сисадминов, снизив количество дежурств и улучшив их качество. При этом упор будет сделан на подходе к мониторингу, тогда как настройка той или иной системы легко гуглится и без посторонней помощи.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments14

Zabbix для DevOps: как мы внедряли систему мониторинга в процессы разработки и тестирования

Reading time5 min
Views17K


Мы продолжаем цикл публикаций о внедрении инструментов и практик DevOps в нашей компании. Недавно мы рассказывали о том, как анализируем уязвимости с помощью нейронных сетей и нечеткой логики, а сегодня поговорим о внедрении системы мониторинга Zabbix в процессы разработки и тестирования.
Total votes 15: ↑12 and ↓3+9
Comments5

События, шины и интеграция данных в непростом мире микросервисов

Reading time11 min
Views32K


Валентин Гогичашвили объясняет микросервисы. Перед вами расшифровка доклада с Highload++.

Добрый день, я Валентин Гогичашвили. Все слайды я сделал латиницей, надеюсь не будет проблем. Я из Zalando.

Что такое Zalando? Наверное, вы знаете Lamoda, Zalando был папой Lamoda своё время. Чтобы понять, что такое Zalando, нужно представить Lamoda и увеличить в несколько раз.

Zalando – это магазин шмоток, мы начали продавать обувь, очень хорошую между прочим. Начали расширяться всё больше и больше. Снаружи сайт выглядит очень просто. За 6 лет что я работаю в Zalando и за 8 лет существования — эта компания была одной из самых быстрорастущих в Европе в какое-то время. Шесть лет назад, когда я пришел в Zalando, она росла где-то 100%.
Total votes 30: ↑27 and ↓3+24
Comments16

Не убивайте свою мотивацию: осваивайте Ruby on Rails на интересных примерах

Reading time8 min
Views43K
Все же помнят, как это бывает: учишься ты чему-то новому, но вдруг раз и приуныл. А все почему? Потому что разработка типовых приложений при обучении скучна до зубовного скрежета.

Подобные задания становятся УБИЙЦАМИ мотивации №1.

Лично я не хочу, чтобы мои ученики теряли мотивацию и сдавались на полпути. Поэтому я создал этот километровый список из 27 забавных идей для приложений, которые вы можете создать, пока обучаетесь использовать React на пару с Ruby on Rails.


Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments25

Стильный код на Python, или учимся использовать Flake8

Reading time7 min
Views160K

Автор: Анатолий Соловей, developer

Язык программирования Python очень востребован на современном рынке, он развивается изо дня в день, и вокруг него сложилось активное сообщество. Во избежание конфликтов между разработчиками-питонистами, создатели языка написали соглашение PEP 8, описывающее правила оформления кода, однако даже там отмечено, что:
Many projects have their own coding style guidelines. In the event of any conflicts, such project-specific guides take precedence for that project.

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

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

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

На помощь в этом случае приходят линтеры — инструменты, контролирующие оформление кода в проекте. Именно они помогают поддерживать его чистоту и, в нашем случае, предотвращать создание коммитов, которые могут содержать ошибки. Я для контроля качества использую Flake8 и сейчас постараюсь объяснить, почему выбрал именно его, и расскажу, как его настроить, чтобы получить максимальный результат. Заинтересовались? Добро пожаловать под кат.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments16

Демонстрационная база данных для PostgreSQL

Reading time7 min
Views62K

В этой заметке я расскажу о нашей демонстрационной базе данных для PostgreSQL: почему она важна для нас и как может пригодиться вам, как устроена схема и какие данные в ней содержатся.


Сразу приведу ссылку на полное описание (там же написано, где взять демо-базу и как ее установить).


image

Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments32

Подборка подкастов по программированию на русском и английском языках

Reading time7 min
Views180K
Всем привет! В этой статье собраны одни из лучших подкастов по программированию как на русском так и на английском языках, которые позволят вам быть всегда в курсе последних новостей.

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

И да, есть много интересных и популярных подкастов для разработчиков и программистов. Подкасты невероятно полезны, они будут держать вас в курсе всего что происходит в интересующей вас сфере, а также помогут вам развить более широкий взгляд на постоянно развивающуюся область информационных технологий.
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments63

Мотивирующая история «Союза»

Reading time7 min
Views29K

Есть такие люди, книги, фильмы, которые мотивируют. Часто встречается сюжет, когда у героя поначалу что-то не получается, но он потом достигает большого успеха позже или в другой области. История техники тоже может мотивировать. Корабль «Союз», который изначально создавался для лунной программы, не возил людей к Луне. Первые полеты тоже не шли идеально — миссии срывались, происходили аварии, даже гибли люди. Но появлялись новые модификации, корабль становился все лучше, и сейчас он является самым надежным и безопасным пилотируемым кораблем и уже скоро побьет рекорд Спейс Шаттла в 135 полетов и станет еще и больше всего летавшим кораблем. И не факт, что в будущем найдутся корабли, которые смогут обогнать его по длительности программы — первый беспилотный полет «Союза» состоялся без малого 50 лет назад.
Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments90

Пособие по Ansible

Reading time29 min
Views674K

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


Этот режим интересен потому что вам не нужно иметь публично доступную главную машину для удаленной настройки узлов; это узлы должны быть доступны (позже мы увидим, что скрытые узлы также могут получать конфигурацию).

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments15

Анонс публичной бета-версии NGINX Amplify

Reading time5 min
Views19K


Мы рады представить бету NGINX Amplify, нашего нового инструмента для мониторинга NGINX и NGINX Plus. Используя NGINX Amplify, вы сможете отслеживать и контролировать NGINX и приложения, которые он обслуживает. Новый инструмент позволит быстро решать проблемы с производительностью и доступностью отдельных сервисов и инфраструктуры в целом. На текущий момент он включает в себя гибко настраиваемую панель мониторинга с механизмом оповещений, а также систему автоматических рекомендаций по оптимизации производительности и улучшению безопасности.

Узнать больше и увидеть NGINX Amplify в действии можно записавшись на онлайн вебинар, который пройдет 13 июля в 20:00 по московскому времени.

Также, вы можете начать бесплатно использовать NGINX Amplify прямо сейчас, пройдя регистрацию.
Подробности
Total votes 26: ↑23 and ↓3+20
Comments64

Видео с HighLoad++: Bruce Momjian (PostgreSQL) — Building Global Teams Like Postgres

Reading time1 min
Views3.4K
Добрый день,

Готов еще один видеоролик из серии докладов на октябрьском HighLoad++:

Bruce Momjian (PostgreSQL) — Building Global Teams Like Postgres

Часть первая, (31:42): video.mail.ru/corp/morozova/16/27.html

Часть вторая: (27:43): video.mail.ru/corp/morozova/16/28.html

Часть третья: (23:04): video.mail.ru/corp/morozova/16/29.html

Часть четвертая: (23:55): video.mail.ru/corp/morozova/16/30.html

Уже выложенные на Хабр доклады

Хорошего просмотра!

Мы обязательно выложим доклады остальных участников — все будет хорошо:)
Total votes 23: ↑20 and ↓3+17
Comments4

Гарвардский курс CS50 на русском: появилась вторая лекция

Reading time2 min
Views24K
CS50 на русском

100 тысяч просмотров за неделю

На прошлой неделе вышла первая лекция Гарвардского курса CS50, локализованная JavaRush и студией Vert Dider. Буквально за несколько дней ролик собрал 25 тысяч просмотров, а трейлер с анонсом курса уже просмотрело более 100 тысяч человек. Очевидно, инициативу по переводу лекций русскоязычное сообщество встретило с энтузиазмом, что, безусловно, вдохновляет переводчиков продолжать в том же духе.

Сегодня, 27 июня, на сайте JavaRush появилась втора лекция Гарвардского курса по основам программирования CS50 на русском — javarush.ru/cs50.html
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments9

Паттерны ООП в метафорах

Reading time17 min
Views559K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Total votes 214: ↑201 and ↓13+188
Comments86

Что нужно знать при миграции с MySQL на PostgreSQL?

Reading time8 min
Views37K
В продолжение статьи о теории и практике миграции хранилищ данных на PostgreSQL, мы поговорим о проблемах, с которыми вы можете столкнуться при переезде с распространенной СУБД MySQL. Дабы не утомлять всех лишней риторикой, сегодняшний рассказ будет более тезисный и проблемно-ориентированный.

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

Именно поэтому в предыдущей статье я рекомендовал не тратить время на поиск серебряной пули и написать что-нибудь свое “на коленке”, что действительно работает. Данная статья призвана облегчить написание такого инструмента, указывая на потенциальные изъяны, в наличии которых вы может сравнительно быстро убедиться.

Перейдем к делу.
Читать дальше →
Total votes 49: ↑43 and ↓6+37
Comments56
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity