Как стать автором
Обновить
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 мин
Количество просмотров51K


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

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

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

Введение


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


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


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


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


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


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

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


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

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

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

Время на прочтение10 мин
Количество просмотров24K
Если одновременно выполняется много операций по изменению схемы БД, сервис не может корректно работать на запись. Разработчик Владимир Колясинский объяснил, какие операции в 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 мин
Количество просмотров140K
Одиноким вечером, глядя на свою пустую зачётку и осознавая, что конец близок, я снова задумался о том, как бы мне сейчас собрать сумку, или даже просто рюкзак, положить туда рубашку, шорты и свалить в тёплую страну. Было бы хорошо, да вот с дипломом живётся намного лучше. Во всяком случае, мне всегда так говорят.

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

Но времена сейчас другие, сейчас 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 мин
Количество просмотров26K
Лучше резервного копирования может быть только резервное копирование с контролем версий и проверкой целостности. Существует уйма программного обеспечения различного уровня платности под разные операционные системы для резервного копирования файлов, баз данных и образов, а также для управления конфигурациями серверов и ПО. А вот для работы с конфигурациями сетевого оборудования решений не так и много.



Мы создали приложение 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 мин
Количество просмотров40K

Недавно я натолкнулся на вопрос на 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 мин
Количество просмотров116K
Оценивать что-либо — очень сложно. Для этого нужно быть экспертом в той сфере, о которой идёт речь, уметь учитывать сторонние факторы, выбирать. Но всё знать и уметь нельзя. Однако бизнес подобрался к решению проблемы оценки вплотную — были придуманы показатели 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 мин
Количество просмотров4.1K
Развертывание 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

Информация

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