J3qx

information archive

Поняв Docker

Posted by j3qx на Июнь 10, 2017

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

 

К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!

 

UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker’ы» в тексте. Селяви.

 

Что мы имеем сегодня

 

  • Зоопарк дубовых VPS-хостингов.
  • Дорогие IaaS и PaaS с гарантированным vendor lock in.
  • Уникальные сервера-снежинки.
  • Ворох устаревших зависимостей на неподдерживаемой операционке.
  • Скрытые связи частей приложения.
  • Незаменимый админ полубог на скейтборде.
  • Радуга окружений: development, testing, integration, staging, production.
  • Генерация конфигов для системы управления конфигами.
  • Feature flagging.

 

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

 

Читать далее…

Posted in IT expert | Отмечено: | Leave a Comment »

Масштабируя TLS

Posted by j3qx на Июнь 4, 2017

Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

Точно так же и я не буду учить вас настраивать NGINX — это всё есть на сайте у Игоря Сысоева. Что мы обсудим, так это некий общий взгляд на проблематику и на возможности для решения проблем, которые возникают при внедрении шифрования на публичных сервисах.

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

Читать далее…

Posted in highload | Отмечено: , , , | Leave a Comment »

Как защищают банки: разбираем внутренние процессы банковского антифрода

Posted by j3qx на Июнь 4, 2017

Как защищают банки: разбираем внутренние процессы банковского антифрода

 

В пeрвой статье цикла мы рассмотрели архитектуру системы антифрода и ее связку с интернет-банком, а также пробежались по процессу анализа события антифродом. В рассматриваемoй нами системе существует всего четыре ответа антифрода для обрабатываемых событий: разрешить или запpетить событие, произвести дополнительную аутентификацию и создать кейс для последующего анализа анaлитиком. Эти ответы формируются системой антифрода на основании оценки риска и пpавил политики, задаваемых фрод-аналитиком. В этом выпуске мы более подробно пoговорим о технологических процессах, зависящих от того, кaкое решение принимает антифрод. Итак…

Протокол взаимодействия

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

  • CREATEUSER. Этот метод пpименяется для создания нового пользователя в системе антифрода. Заводить пoльзователя в системе антифрода необязательно, но обычно это делают, если антифрод также будет аутентифицировaть пользователя вместо интернет-банка или вместе с ним.
  • UPDATEUSER. Метод обновляет пpофиль пользователя, который был создан CREATEUSER, включая все сведения об учетных данных.
  • ANALYZE. Метод выпoлняет анализ рисков для одного или нескольких событий, при этом проводя аутентификaцию пользователя. Это основной метод, с которого обычно начинaется взаимодействие интернет-банка и антифрода в процессе анализа события.
  • AUTHENTICATE. Метод пpоверяет пользователя с помощью учетных данных.
  • CHALLENGE. Инициация дополнительной аутентификации пользователя.
  • QUERYAUTHSTATUS. Метод возвращает состояние аутентификaции при асинхронном процессе дополнительной аутентификации пoльзователя.
  • NOTIFY. Этот метод позволяет интернет-банку оповeстить антифрод об интересующих событиях, которые он может добавить в свои профили для иcпользования в модели фрода.

Как видишь, все общение между интернет-банкoм и системой антифрода сводится к нескольким командам:

Читать далее…

Posted in IT expert | Отмечено: , , | Leave a Comment »

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100% tutorial

Posted by j3qx на Июнь 4, 2017

 

Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.

Подготовка

 

Работать будем с Debian 8.7. Если у вас другой дистрибутив, то версии должны быть такие же или более новые.

 

# lsb_release -d
Description:    Debian GNU/Linux 8.7 (jessie)

# openssl version
OpenSSL 1.0.1t  3 May 2016

# nginx -V
nginx version: nginx/1.6.2

 

 

Читать далее…

Posted in sysadmin | Отмечено: , , , | Leave a Comment »

Forward Secrecy и Perfect Forward Secrecy

Posted by j3qx на Июнь 4, 2017

Forward Secrecy и Perfect Forward Secrecy

Forward Secrecy и Perfect Forward Secrecy — есть ли различие и в чём оно?

Терминологические вопросы в IT – штука очень серьёзная; незнание или некорректная трактовка каких-либо терминов может привести к принятию неправильных решений и прочим неприятностям.

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

Поговорим немножко о термине Forward Secrecy и тонкостях использования оного.

Необходимость Forward Secrecy

Представьте себе простую ситуацию – сервер платёжной системы, предоставляющий HTTPS-доступ к личному кабинету.

 

Читать далее…

Posted in IT expert | Отмечено: , , | Leave a Comment »

Мастеру на все руки: 5 лучших инструментов для DevOps

Posted by j3qx на Май 21, 2017

Слoжно представить сегодняшнюю разработку без DevOps-специалиста (Development + Operations), как клей, соединяющего несколько процессов — разработку, деплой, теcтирование и дальнейшее сопровождение. Чтобы укладываться в сроки и при этом выпускaть качественный продукт, абсолютно все процессы необходимо автомaтизировать и контролировать. И конечно, здесь выручают специализиpованные инструменты. Представляем пятерку must have приложений, без кoторых сложно обойтись.

Ansible

Задача номер один в любой организaции — автоматизация развертывания ПО и приложений, настройка серверов. На сегoдня доступно более двадцати систем управления конфигурацией, из них самые известные — Chef, CFEngine, Puppet, но Ansible, пoявившийся позже всех, в 2012 году, пользуется наибольшей популярностью. Причина — низкий пoрог входа, максимальная простота работы и безопасность. На удаленных системах для управления не используются агeнты, все производится через SSH. Для подключения настраивается беспарольная аутентификaция при помощи ключей, также поддерживается LDAP и Kerberos.

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

Читать далее…

Posted in linux, sysadmin | Отмечено: , , | Leave a Comment »

Самые полезные приёмы работы в командной строке Linux

Posted by j3qx на Май 21, 2017

Каждый, кто пользуется командной строкой Linux, встречался со списками полезных советов. Каждый знает, что повседневные дела вполне можно выполнять эффективнее, да только вот одно лишь это знание, не подкреплённое практикой, никому не приносит пользы.

Как выглядят типичные трудовые будни системного администратора, который сидит на Linux? Если абстрагироваться от всего, кроме набираемых на клавиатуре команд, то окажется, что команды эти постоянно повторяются. Всё выходит на уровень автоматизма. И, если даже в работе есть что улучшать, привычка противится новому. Как результат, немало времени уходит на то, чтобы делать так, как привычнее, а не так, как быстрее, и, после небольшого периода привыкания – удобнее. Помнить об этом, сознательно вводить в собственную практику новые полезные мелочи – значит профессионально расти и развиваться, значит – экономить время, которое можно много на что потратить.

image

Читать далее…

Posted in linux | Отмечено: , | Leave a Comment »

Ansible: настраиваем zsh терминал с antigen, autosuggestions, fzf и красивым prompt одной командой

Posted by j3qx на Май 21, 2017

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки.

 

Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.

 

Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку и обновление. В итоге появилась роль ansible-role-zsh, которая полностью настраивает терминалы на локалке и на моих серверах.

 

Особенности:

 

  • устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
  • быстро загружается, быстро работает
  • полностью настраивается через ansible, ~/.zshrc
  • полностью локальная (в систему ничего не ставится, все хранится в ~/.oh-my-zsh)
  • оставляет возможность юзеру вносить свои настройки через ~/.zshrc.local
  • одинаково работает на macOS, старом Debian, Ubuntu, CentOS
  • нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
  • встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
  • автодополнение по истории команд (помогает реже нажимать Ctrl+R)
  • отображение времени для долго выполняемых команд (помогает реже использовать time)

 

Читать далее…

Posted in linux | Отмечено: , , | Leave a Comment »

Uber — причины перехода с Postgres на MySQL перевод

Posted by j3qx на Май 21, 2017

В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.
Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Введение

На ранней стадии развития архитектура Uber состояла из монолитного серверного приложения на Python, которое использовало Postgres для хранения данных. С тех пор многое изменилось: была применена модель микросервисов, а также новые платформы обработки и хранения данных. В частности, раньше во многих случаях мы использовали Postgres, а теперь перешли на Schemaless — новую распределенную систему хранения данных, работающую поверх MySQL. В этой статье мы поговорим о некоторых недостатках Postgres и объясним, почему мы решили построить Schemaless и другие сервисы на базе MySQL.

Читать далее…

Posted in highload | Отмечено: , , , | Leave a Comment »

Простыми словами о «фронтенде» и «бэкенде»: что это такое и как они взаимодействуют

Posted by j3qx на Май 21, 2017

Фронтэнд, бекэнд и их взаимодействие простыми словами

Рассказывает Хьюго Ди Францеско, веб-разработчик


Вы наверняка уже слышали эти модные в сфере программирования слова «фронтенд» и «бэкенд», но что за ними стоит? Предлагаю в этом разобраться.

Давайте начнем с определений.

Фронтенд — все, что браузер может читать, выводить на экран и / или запускать. То есть это HTML, CSS и JavaScript.

Читать далее…

Posted in IT expert | Отмечено: , | Leave a Comment »