Как стать автором
Обновить
5
0
Andrew Yakovlev @nox1725

System Architect / DevOps / System Engineer

Отправить сообщение

Корпоративная реальность

Время на прочтение 13 мин
Количество просмотров 20K
Лена подняла с пола свою сумку, распахнула ее пошире, оглядела содержимое и тяжело вздохнула. Несколько секунд размышляла, в итоге сквасила недовольную гримасу и начала выкладывать содержимое на стол.

Губная помада, несколько разноцветных конфет, влажная салфетка из KFC, обычные бумажные салфетки с логотипом какого-то ресторана, расческа, упаковка из-под жвачки, еще одна расческа, книга «Страсть Эмбер: одного мало», зажигалка, тональный крем, несколько исписанных, мятых стикеров, карты бутиков и сетевых супермаркетов, большой блокнот со множеством разноцветных закладок, и так далее. Сергей, сначала заскучавший, проявлял к содержимому сумки Лены все больше интереса. Сколько лет на свете живешь, не перестаешь удивляться этому процессу.

— Ура! – воскликнула, наконец, Лена. – Я уж думала, дома забыла!

Она извлекла из сумки небольшой целлофановый пакет с кучей бумажек внутри. Сергей успел заметить, что в сумке еще оставалось артефактов раза в два больше, чем Лена успела выложить на стол.

— Вот они, вопросики. – улыбаясь, Лена развернула пакет и достала бумажки. – Так, где же она…

— Кто?

— Да так…
Читать дальше →
Всего голосов 56: ↑44 и ↓12 +32
Комментарии 113

Сравниваем PHP FPM, PHP PPM, Nginx Unit, React PHP и RoadRunner

Время на прочтение 11 мин
Количество просмотров 49K


Тестирование производилось с помощью Yandex Tank.
В качестве приложения использовались Symfony 4 и PHP 7.2.
Целью являлось сравнение характеристик сервисов при разных нагрузках и нахождение оптимального варианта.
Для удобства все собрано в docker-контейнеры и поднимается с помощью docker-compose.
Под катом много таблиц и графиков.
Читать дальше →
Всего голосов 72: ↑67 и ↓5 +62
Комментарии 46

Миграция схемы базы данных без даунтайма для postgresql на примере django

Время на прочтение 10 мин
Количество просмотров 14K

Введение


Привет, Хабр!


Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный список рабочих операций по изменению схемы. Django можно заменить на любой любимый фрэймворк/библиотеку — подходы скорее всего будут похожи.


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


Перед тем как пойти дальше позволю себе сделать следующие предположения.


Можно разделить логику работы с базой данных большинства приложений на 3 части:


  1. Миграции — изменение схемы базы данных (таблиц), предположим мы всегда запускаем их в один поток.
  2. Бизнес логика — непосредственная работа с данными (в пользовательских таблицах), работает с одними и теми же данными постоянно и конкурентно.
  3. Миграции данных — не изменяют схемы данных, работают по сути как бизнес логика, по умолчанию, когда будем говорить про бизнес логику, будем также подразумевать и миграции данных.

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


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

Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 5

Изменение схемы таблиц PostgreSQL без долгих блокировок. Лекция Яндекса

Время на прочтение 10 мин
Количество просмотров 23K
Если одновременно выполняется много операций по изменению схемы БД, сервис не может корректно работать на запись. Разработчик Владимир Колясинский объяснил, какие операции в PostgreSQL требуют длительных блокировок и как команда Яндекс.Коннекта обеспечивает почти стопроцентную доступность сервиса на запись во время выполнения подобных операций. Кроме того, вы узнаете о библиотеке для Django, которая призвана автоматизировать часть описанных процессов.


У нас большие нагрузки, тысячи RPS, и простой в несколько минут, не говоря о большем времени, недопустим. Нужно, чтобы миграции происходили незаметно для пользователя. А с такими нагрузками уже не получится встать в четыре часа ночи, что-то накатить, когда нет нагрузки, и снова лечь спать — потому что нагрузка идет круглые сутки.

Всего голосов 61: ↑61 и ↓0 +61
Комментарии 41

English notes #1: Заканчивай с этим «very»

Время на прочтение 3 мин
Количество просмотров 51K
Прим. ред.: Этой статьёй мы начинаем цикл публикаций, посвящённых английскому языку и подготовленных нашим штатным учителем для инженеров компании (в данном случае — на основе видеоурока engVid, JamesESL English Lessons). С одной стороны — нам нужно изучать язык, с другой — нравится это делать, а с третьей — почему бы не разбавить технические материалы своего блога? Ваши отзывы очень приветствуются!

Слово «very» очень популярно в английском языке, да и не только. Однако, употребляя его слишком часто, вы можете прослыть косноязычным или попросту Эллочкой-людоедочкой.



Как известно, в великом романе-эпопее «Война и Мир» Лев Николаевич не совершает повторов на протяжении каждых трех страниц(!). Не это ли искусство? Однако, не будем долго мечтать — let's get down to business.
Читать дальше →
Всего голосов 98: ↑87 и ↓11 +76
Комментарии 160

Пенсионное интервью программиста

Время на прочтение 11 мин
Количество просмотров 63K
– Добрый день, Станислав Сергеевич! Проходите, пожалуйста!

– Здравствуй, Катенька! Прохожу, прохожу…

– Чай, кофе?

– Ну… Не знаю я. Ничего, наверное.

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

– Ну, не клизму же ставить будете, Катюш. Не бойтесь, я вас не съем.
Читать дальше →
Всего голосов 181: ↑110 и ↓71 +39
Комментарии 125

Что мы читали в марте: пять необходимых книг для инженеров инфраструктуры

Время на прочтение 3 мин
Количество просмотров 13K


Мы в Skyeng понемногу строим свою библиотеку важных и полезных книг. Началось все с того, что своими списками в Фейсбуке поделились основатели компании (ссылки ниже), а теперь к ним присоединились и руководители направлений. В марте свой топ профессиональной литературы представила Надежда Рябцова, отвечающая за нашу IT инфраструктуру. Я попросил ее рассказать о каждой книге чуть подробнее – надеюсь, читателям Хабры этот список, дополненный четырьмя еженедельными рассылками, будет полезен.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 8

И так сойдёт… или как данные 14 миллионов россиян оказались у меня в руках

Время на прочтение 6 мин
Количество просмотров 139K
Одиноким вечером, глядя на свою пустую зачётку и осознавая, что конец близок, я снова задумался о том, как бы мне сейчас собрать сумку, или даже просто рюкзак, положить туда рубашку, шорты и свалить в тёплую страну. Было бы хорошо, да вот с дипломом живётся намного лучше. Во всяком случае, мне всегда так говорят.

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

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

image

Внимание: не пытайтесь повторять действия, описанные в публикации и им подобные. Помните о ст. 272 УК РФ «Неправомерный доступ к компьютерной информации».

Читать дальше →
Всего голосов 360: ↑346 и ↓14 +332
Комментарии 812

Где найти и как выбрать тимлида

Время на прочтение 11 мин
Количество просмотров 25K


Предыстория


Привет! Меня зовут Виталий Шароватов, я уже 16 лет работаю в IT. Сейчас я руковожу направлением фронтенд в Badoo. В него входят две команды, которые занимаются разработкой и поддержкой десктопной версии сайта badoo.com, мобильной версии m.badoo.com и многими другими проектами. Да, десктопную и мобильную версии у нас делают отдельные команды. :)

Два с половиной года назад я пришел в Badoo разработчиком, со временем вырос до тимлида, а потом, когда было решено перевозить команду Desktop Web в Лондон, стал руководителем направления.

Прошлой осенью на Codemotion Milan я делал доклад о росте из разработчика в тимлида (и писал на Хабр статью об этом) и о том, с какими неожиданными моментами мне пришлось столкнуться, а теперь расскажу, как при переходе из лида в руководителя направления я справился с подбором и «выращиванием» тимлида в одной из команд (Mobile Web).
Читать дальше →
Всего голосов 68: ↑65 и ↓3 +62
Комментарии 38

cBackup — резервное копирование конфигураций сетевого оборудования

Время на прочтение 5 мин
Количество просмотров 25K
Лучше резервного копирования может быть только резервное копирование с контролем версий и проверкой целостности. Существует уйма программного обеспечения различного уровня платности под разные операционные системы для резервного копирования файлов, баз данных и образов, а также для управления конфигурациями серверов и ПО. А вот для работы с конфигурациями сетевого оборудования решений не так и много.



Мы создали приложение cBackup (от configuration backup) для работы с конфигурациями сетевого оборудования. Кроме непосредственно резервного копирования конфигов, можно отслеживать изменения между их версиями, что помогает локализовать источник проблемы при восстановлении после сбоев. cBackup — open source и распространяется бесплатно, включая отдельно скачиваемые шаблоны поддержки различных сетевых устройств.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 47

Выпуск#7: ITренировка — актуальные вопросы и задачи от ведущих компаний

Время на прочтение 8 мин
Количество просмотров 12K
Мы подготовили новый выпуск ITренировки с вопросами и задачами от ведущих IT-компаний.

КДПВ

В подборку попали вопросы, встречающиеся на собеседованиях в Adobe (да, вопрос про цвет включён в подборку :). Задачи различного уровня сложности, но все решаемые. Особенно, если Вы уже ответили на вопросы из прошлых выпусков.

Надеемся, что приведённые задачи помогут Вам качественно подготовиться к предстоящим собеседованиями.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 55

Как вернуть украденный домен через арбитраж WIPO. Пошаговая инструкция

Время на прочтение 6 мин
Количество просмотров 14K
Итак, у вас украли домен. Вы обнаружили это или утром, когда проверяли почту на смартфоне, или вечером, когда увидели на своем сайте чужую рекламу, потом зашли в админку, решив, что сайт взломали, но рекламного кода там не оказалось, и вы поняли, что DNS переписаны на другой сервер…

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


Вы сразу пишите в техпродержку регистратора и получаете ответ, что жалоба получена и будет рассмотрена в установленные сроки.
Читать дальше →
Всего голосов 56: ↑56 и ↓0 +56
Комментарии 52

Как обучть мдль пнмть упртые скрщня

Время на прочтение 16 мин
Количество просмотров 39K

Недавно я натолкнулся на вопрос на Stackoverflow, как восстанавливать исходные слова из сокращений: например, из wtrbtl получать water bottle, а из bsktballbasketball. В вопросе было дополнительное усложнение: полного словаря всех возможных исходных слов нет, т.е. алгоритм должен быть в состоянии придумывать новые слова.


Вопрос меня заинтриговал, и я полез разбираться, какие алгоритмы и математика лежат в основе современных опечаточников (spell-checkers). Оказалось, что хороший опечаточник можно собрать из n-граммной языковой модели, модели вероятности искажений слов, и жадного алгоритма поиска по лучу (beam search). Вся конструкция вместе называется модель зашумлённого канала (noisy channel).


Вооружившись этими знаниями и Питоном, я за вечер создал с нуля модельку, способную, обучившись на тексте "Властелина колец" (!), распознавать сокращения вполне современных спортивных терминов.


Читать дальше →
Всего голосов 88: ↑87 и ↓1 +86
Комментарии 17

[Перевод] IOHIDeous — новогодняя zero-day уязвимость от macOS

Время на прочтение 2 мин
Количество просмотров 21K

Что случилось?


Разработчик c GitHub ником Siguza, сделал неортодоксальный новогодний подарок — обнаружил уже долго существующую zero-day уязвимость в macOS, позволяющую атакующему получить root доступ к системе для дальнейшей ее компрометаци. Уязвимость существует уже довольно продолжительный период времени но не предоставляет возможности для удаленного взлома системы.

Siguza, который является программистом и хакером из Швейцарии, детально описал уязвимость и дал ей название IOHIDeous. По заявлению Siguza, данной уязвимости подвержены все версии macOS, выпущенные за последние 15 лет.

Оригинал: IOHIDeous is a macOS zero-day for the New Year
Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 9

Сотрудники и бизнес: и не друг, и не враг, а как?

Время на прочтение 16 мин
Количество просмотров 20K
Бизнес увлёкся, и это стало настораживать. Нейросети, блокчейн, машинное обучение, роботы, автоматизация всего и вся создали опасную иллюзию того, что всё решено. А значит, можно увольнять, сокращать, не удерживать, не мотивировать. А зачем? Часть издержек экономится за счёт внедрения автоматизации, а на те рабочие мощности, что остались, стоят очереди из соискателей, к чему держаться за кого-то. Это не утопия, это наша данность, с которой мы входим в новый 2018 год. И её, этой данности, не должно быть. Потому что за каждой технологией стоят люди, за каждой компанией и за каждым продуктом компании — люди, и за владельцами компаний — тоже люди. За четыре дня до нового года мы хотим поговорить о том, как бизнесу ладить с сотрудниками, а сотрудникам — с бизнесом. Ведь мы по-прежнему не можем существовать друг без друга. Поэтому поговорим — как люди с людьми. О людях.


Источник: Яндекс.Картинки
Читать дальше →
Всего голосов 53: ↑52 и ↓1 +51
Комментарии 42

Система KPI в компании: как не пойти на три буквы

Время на прочтение 16 мин
Количество просмотров 115K
Оценивать что-либо — очень сложно. Для этого нужно быть экспертом в той сфере, о которой идёт речь, уметь учитывать сторонние факторы, выбирать. Но всё знать и уметь нельзя. Однако бизнес подобрался к решению проблемы оценки вплотную — были придуманы показатели KPI. Но этот мощный и проработанный инструмент оказался не таким простым и безобидным. В компаниях вокруг KPI бушуют нешуточные страсти, в которых есть место даже ненависти и личным мотивам. Несколько месяцев жизни нашей компании были посвящены созданию системы расчёта KPI внутри CRM. Сегодня можно выдохнуть и сказать, что всё получилось. А заодно поделиться интересной информацией и своими выводами. В общем, про эти три буквы мы теперь знаем гораздо больше, чем про те.


Всего голосов 35: ↑30 и ↓5 +25
Комментарии 52

Назови мне свою зарплату, и я скажу кто ты

Время на прочтение 6 мин
Количество просмотров 151K
Эта статья родилась в качестве ответа на вот эту вот статью. А именно на вот этот пункт:
«Правило Лебедева» — никто внутри компании не должен знать, сколько получает другой. Не соблюдает ваш зам — увольняйте; не соблюдает профессионал — увольняйте; вы сами обмолвились — с этого момента работать у вас никто не будет, получать зарплату будут, а работать — нет. Будут выполнять письменно сказанное, но буквально понятое. Если профессионал получает много — это хорошо. Если об этом знают другие, они исследуют, а не говно ли он как человек.
Читать дальше →
Всего голосов 233: ↑205 и ↓28 +177
Комментарии 748

Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть III. Настройка puppet-db с помощью Puppet

Время на прочтение 6 мин
Количество просмотров 3.9K
Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть I. Подготовительная
Развертывание OpenSource Puppet 4 с несколькими Puppet masters. Часть II. Настройка Puppet Masters

Настройка puppet-db с помощью Puppet


Зададим настройки для ноды puppet-db в репозитории puppet-environments.git.

В случае стандартного размещения datadir для postgresql


В репозитории puppet-environments.git в файл manifests/nodes.pp добавим настройки puppet-db:

node default {

}
node puppet-db {
  class { 'puppetdb':
    listen_addresses => '0.0.0.0',
  }
}
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 6
1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность