Как стать автором
Обновить
1
0

Sys.op

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

Как организовать CI/CD на проекте: от постановки задач до настройки конвейера развертывания

Время на прочтение5 мин
Количество просмотров16K
В чем залог успешной настройки Continuous Delivery на проектах? Слаженная работа команд разработки, тестирования и инженеров по инфраструктуре. Спасибо, кэп, как говорится :) Но как это реализовать на практике? В этой статье поделимся нашими наработками, как это всё организовать и воплотить в жизнь.

Мы обобщили базовые основы в одну шпаргалку для себя и делимся с вами:


Опытные инженеры вряд ли узнают из статьи что-то новое, но надеемся, что начинающим специалистам эта информация пригодится.


Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии10

Переезд в Лондон с женой и собаками. История мобильного разработчика

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

Меня зовут Кирилл, я Android-разработчик. Сейчас я уже привык к тому, что живу и работаю в Лондоне, но год назад и представить себе такого не мог. В этой статье я расскажу, как мне выпал шанс устроиться в международную компанию, о чём спрашивали на интервью, какие этапы нужно пройти, чтобы уехать в Великобританию с семьёй и собаками, и какой он, Лондон.


Читать дальше →
Всего голосов 139: ↑124 и ↓15+109
Комментарии693

История переезда системного администратора в Германию. Часть первая: поиск работы и виза

Время на прочтение18 мин
Количество просмотров47K
Всем привет.

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

Это будет длинная история в трех частях, где я постараюсь максимально осветить все грабли, по которым пришлось пройти.
Читать дальше →
Всего голосов 53: ↑50 и ↓3+47
Комментарии133

История переезда системного администратора в Германию. Часть вторая: переезд и первые шаги

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

Я наконец-то изыскал время и написал вторую часть своей истории об IT-эмиграции. Первую часть можно прочитать тут — История переезда системного администратора в Германию. Часть первая: поиск работы и виза. В этой части я опишу подробно, как мы с сестрой обустраивались на новом месте, какие ошибки при этом допускали и сколько нам эти ошибки стоили.

Итак, поехали.

У нас было два загранпаспорта, национальная виза, контракт на работу, договор на учебу и целое множество вещей всех сортов и расцветок, а также лысый кот, длинный список дел, норовящая развалиться машина и несколько тысяч евро. Не то чтобы всё это было так уж необходимо для переезда в Германию, но если уж начал эмигрировать из России, то становится трудно остановиться. Единственное, что вызывало у меня опасение — это жилье. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем поиск квартиры во Франкфурте. Я знал, что рано или поздно мы столкнемся и с этим.

Читать дальше →
Всего голосов 82: ↑73 и ↓9+64
Комментарии273

Тонкая настройка балансировки нагрузки

Время на прочтение22 мин
Количество просмотров49K
В этой статье речь пойдет о балансировке нагрузки в веб-проектах. Многие считают, что решение этой задачи в распределении нагрузки между серверами — чем точнее, тем лучше. Но мы же знаем, что это не совсем так. Стабильность работы системы куда важнее с точки зрения бизнеса.



Маленький минутрый пик в 84 RPS «пятисоток» — это пять тысяч ошибок, которые получили реальные пользователи. Это много и это очень важно. Необходимо искать причины, проводить работу над ошибками и стараться впредь не допускать подобных ситуаций.

Николай Сивко (NikolaySivko) в своем докладе на RootConf 2018 рассказал о тонких и пока не очень популярных аспектах балансировки нагрузки:

  • когда повторять запрос (retries);
  • как выбрать значения для таймаутов;
  • как не убить нижележащие серверы в момент аварии/перегрузки;
  • нужны ли health checks;
  • как обрабатывать «мерцающие» проблемы.

Под катом расшифровка этого доклада.

Всего голосов 51: ↑49 и ↓2+47
Комментарии17

Мониторинг и настройка сетевого стека Linux: получение данных

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


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

Также рекомендуем ознакомиться с иллюстрированным руководством на ту же тему, там есть поясняющие схемы и дополнительная информация.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+57
Комментарии8

Тюнинг сетевого стека Linux для ленивых

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

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

Читать дальше →
Всего голосов 94: ↑94 и ↓0+94
Комментарии45

Лучшие бесплатные редакторы для разработки и документации: Atom

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

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


Atom seti theme


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

Читать дальше →
Всего голосов 27: ↑11 и ↓16-5
Комментарии37

Как усилить техподдержку — 6 секретных способов

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


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

Служба поддержки часто считается отправной точкой в карьере новых и неопытных сотрудников, которые стремятся попасть в сферу IT или перейти к другим её областям. Но, если IT-директор серьезно относится к культуре обслуживания, то так быть не должно.

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

Что IT-директора могут сделать для преобразования службы IT-поддержки и создания более продуктивных задач? Начните с понимания влияния вашего собственного восприятия.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии8

Девять граблей Elasticsearch, на которые я наступил

Время на прочтение7 мин
Количество просмотров73K
Автор иллюстрации — Anton Gudim


«Подготовленный человек тоже наступает на грабли.
Но с другой стороны — там, где ручка.»


Elasticsearch — прекрасный инструмент, но каждый инструмент требует не только настройки и ухода, но и внимания к мелочам. Некоторые — незначительны и лежат на поверхности, а другие спрятаны так глубоко, что на поиск уйдет не один день, не один десяток кружек кофе и не один километр нервов. В этой статье расскажу про девять замечательных граблей в настройке эластика, на которые я наступил.
Давайте приступим
Всего голосов 59: ↑58 и ↓1+57
Комментарии69

Получаем IP-адреса HTTPS-клиентов с HAProxy (frontend) на Nginx (backend) в режимах HTTP и TCP-балансировки

Время на прочтение3 мин
Количество просмотров56K
Довольно часто требуется балансировать нагрузку между несколькими веб-серверами. При этом, как правило, необходимо, чтобы веб-приложения получали реальные IP-адреса клиентов, а не IP балансировщика.

В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].

Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2

Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии14

Продвинутое использование Гита или как выйти на пенсию на полгода раньше?

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


Не знаю, на каком языке программирования вы пишете, но уверен, что используете Гит при разработке. Инструментов для сопровождения разработки становится всё больше, но даже самый маленький тестовый проект, я неизменно начинаю с команды git init. А в течение рабочего дня набираю в среднем ещё 80 команд, обращаясь к этой системе контроля версий.


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


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


Кому будет полезна эта статья?


Вы уже освоили джентльменский набор Гита и готовы двигаться дальше? Существует 2 пути:


  1. Освоить сокращённые команды – алиасы. Они почти всегда составлены мнемонически и легко запоминаются. Забыть оригиналы команд проблематично, я легко их набираю, когда это требуется. Плюс не сбиваюсь с мысли, проверяя что-то в Гите в процессе написания кода.
  2. Узнать о дополнительных флагах к командам, а также их объединении между собой. Я понимаю, что кто-то ненавидит сокращения. Для вас тоже есть интересный материал в статье – как повысить полезность и удобство вывода команд, а также как решать не самые тривиальные, но часто встречающиеся на практике задачи.

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


Добро пожаловать под кат!

Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии44

ZooKeeper или пишем сервис распределенных блокировок

Время на прочтение10 мин
Количество просмотров68K
disclaimer Так получилось, что последний месяц я разбираюсь с ZooKeeper, и у меня возникло желание систематизировать то, что я узнал, собственно пост об этом, а не о сервисе блокировок, как можно было подумать исходя из названия. Поехали!

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

От распределенного сервиса блокировок разумно требовать:
  1. работоспособность в условиях моргания сети (первое правило распределенных систем — никому не говорить о распределенных системах сеть ненадежна)
  2. отсутствие единой точки отказа

Создать подобный сервис нам поможет ZooKeeper

image В википедии написано, что ZooKeeper — распределенный сервис конфигурирования и синхронизации, не знаю как вам, но мне данное определение мало что раскрывает. Оглядываясь на свой опыт, могу дать альтернативное определение ZooKeeper, это распределенное key/value хранилище со следующими свойствами:
  • пространство ключей образует дерево (иерархию подобную файловой системе)
  • значения могут содержаться в любом узле иерархии, а не только в листьях (как если бы файлы одновременно были бы и каталогами), узел иерархии называется znode
  • между клиентом и сервером двунаправленная связь, следовательно, клиент может подписываться как изменение конкретного значения или части иерархии
  • возможно создать временную пару ключ/значение, которая существует, пока клиент её создавший подключен к кластеру
  • все данные должны помещаться в память
  • устойчивость к смерти некритического кол-ва узлов кластера

Под катом код, данные по производительности и куча wtf-ов
Всего голосов 29: ↑23 и ↓6+17
Комментарии20

Шпаргалка с командами Docker

Время на прочтение5 мин
Количество просмотров714K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии15

Теория и практика бэкапов с Borg

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


К нашему огромному удивлению на хабре не оказалось ни одного материала про замечательный Open Source-инструмент для резервного копирования данных ­— Borg (не путать с одноимённым прародителем Kubernetes!). Поскольку уже более года мы с удовольствием используем его в production, в этой статье я поделюсь накопленными у нас «впечатлениями» о Borg.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии46

Масштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер

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

В предыдущей статье мы поделились своим опытом внедрения и использования СУБД ClickHouse в компании СМИ2. В текущей статье мы затронем вопросы масштабирования, которые возникают с увеличением объема анализируемых данных и ростом нагрузки, когда данные уже не могут храниться и обрабатываться в рамках одного физического сервера. Также мы расскажем о разработанном нами инструменте для миграции DDL-запросов в ClickHouse-кластер.


Два шарда по две реплики


Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии0

Zabbix 3.4: Массовый сбор данных на примерах счетчика Меркурий и smartmontools

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


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

  • сбор всех данных за раз, полученных в JSON от консольной утилиты счетчика электроэнергии Меркурий 236
  • сбор показателей S.M.A.R.T. жестких дисков и SSD, полученных в табличном виде от smartmontools.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии22

Жизнь в Германии глазами моей жены

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


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

Вот я и решил спустя два с половиной года после переезда в Германию написать что-то демотивирующее про этот период моей жизни.

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

Похоже, действительно нужно признать, что если вы переезжаете в Германию, имея на руках контракт, драма в вашей жизни на этом если не прекращается, то как минимум надолго откладывается: у вас появляется интересная работа, новые знакомства, возможность путешествовать и наслаждаться жизнью. Прежде, чем вам начнут чудиться на каждом шагу русофобы, а немецкие СМИ внезапно начнут поливать вас антироссийской пропагандой (несмотря на то, что вы их принципиально не смотрите и не читаете, разумеется), нужно долго и упорно выгорать на работе, загоняя себя в глубокую депрессию. То, насколько быстро это случится и случится ли вообще, во многом зависит от гармонии в вашей семье.

Поэтому этот пост я хотел бы адресовать тем специалистам, которые собираются переезжать в Германию со своей семьёй. Я расспросил свою жену о том, как она пережила эти 2,5 года моего профессионального счастья, искала смысл жизни и дошла до того, что открыла в Германии ИП по 3Д-визуализации.
Читать дальше →
Всего голосов 69: ↑53 и ↓16+37
Комментарии232

Zabbix как сканер безопасности

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

Привет! Все мы знаем и любим такие продукты для vulnerability assessment процессов как Nessus, Qualys, Max Patrol и всякие прочие OpenVAS. Одной из основных задач, которые они решают, является обеспечение контроля версионных уязвимостей.


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


Существует масса разнообразных инструментов для решения этой задачи, но у всех них с нашей точки зрения есть одна общая проблема — они требуют отдельного хлопотного развертывания и порождают в вашей инфраструктуре еще один инструмент с root-овой учетной записью. Но ведь для такого простого действия как сбор информации об установленных пакетах root не нужен! Да и обычно в инфраструктуре уже присутствуют развернутые системы с возможностью консолидации данных, совместной работы и удаленного исполнения команд на серверах. Поэтому мы решили сделать инструмент, который позволил бы в пару кликов развернуть в своей среде систему контроля уязвимостей Linux с минимальными изменениями продакшена.


Что развернуто в большинстве продуктовых систем? Конечно же мониторинг. И довольно часто это Zabbix. Так давайте к нему и прикрутимся!

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии19

Полезные сниппеты для Nginx конфигов

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


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Всего голосов 94: ↑91 и ↓3+88
Комментарии44

Информация

В рейтинге
Не участвует
Откуда
Estepona, Málaga, Испания
Зарегистрирован
Активность