Pull to refresh
17
0
Дмитрий Хлебов @AI_zek

Инженер-погромист

Send message

Погружаемся в Kubernetes: полезные материалы от сотрудников Selectel

Level of difficultyEasy
Reading time6 min
Views9.2K

Часто новичкам сложно начать работу с Kubernetes. Нужно перебрать с десяток курсов, прежде чем они найдут действительно полезные материалы. Чтобы помочь вам с выбором, мы попросили коллег порекомендовать ресурсы для изучения Kubernetes. Сохраняйте в закладки: пригодится начинающим разработчикам, администраторам и DevOps-инженерам.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments0

Лучшие практики для надёжной работы с RabbitMQ

Level of difficultyEasy
Reading time13 min
Views19K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

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

Следуй за белым кроликом
Total votes 58: ↑58.5 and ↓-0.5+59
Comments16

Как совмещать основную работу и проекты на стороне

Level of difficultyEasy
Reading time5 min
Views47K

У многих из нас остается достаточно свободного времени в сутках. А почему бы не монетизировать это время, думает начинающий IT левак? Если работать по три часа в день в будние, брать по 2 тысячи за час, то получится 120 тысяч дополнительного дохода в месяц. Звучит отлично!

Меня зовут Даниил, и я через выгорание, увольнение, споры с заказчиками и успешные проекты научился совмещать карьеру в компании и ведение проектов на стороне.

Читать далее
Total votes 111: ↑109 and ↓2+107
Comments48

Изучаем сетевой стек докера в rootless mode

Level of difficultyMedium
Reading time16 min
Views3.3K


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

Читать дальше →
Total votes 16: ↑16.5 and ↓-0.5+17
Comments0

Аутентификация для WebSocket и SSE: до сих пор нет стандарта?

Level of difficultyMedium
Reading time21 min
Views8K

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

В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events, обсудим, какие нюансы могут быть, когда клиентская часть находится в браузере, и на что еще стоит обратить внимание, чтобы избежать неочевидных проблем.

А еще заодно поговорим про уязвимость Cross-Site WebSocket Hijacking (CSWSH) и в целом посмотрим на многие вопросы через призму информационной безопасности.

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments5

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Level of difficultyMedium
Reading time12 min
Views15K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

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

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments22

REST API сервер на Bash с использованием сокетов и Apache

Level of difficultyMedium
Reading time14 min
Views5.4K

Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core. Безусловно, для подобных целей лучше используются специализированные серверные фреймворки или библиотеки, такие как Flask или Django в Python, но меня не покидала идея реализации похожего сервера, где описание логики будет производиться на языке одного только Bash. Приведу примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat , socat и ncat, а также веб-сервера Apache с использованием встроенных модулей.

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments3

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Level of difficultyMedium
Reading time33 min
Views97K

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2+212
Comments77

Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные

Level of difficultyMedium
Reading time15 min
Views8.5K

Привет, Хабр! Я Виктор, техлид продукта CI/CD в Samokat.tech. А это, :(){ :|:& };: fork-бомба, которая создаёт свои дочерние процессы бесконечно. Запуск такой штуки в контейнере без ограничений роняет всю ноду. Не используйте в проде! Если запустить в WSL, то винду тоже укладывает. Как же избежать запуска такой штуки на проде? Помогут квоты.

Давайте разберемся как работают квоты в Kubernetes. Там есть немало граблей. В этой статье поделюсь своим опытом по работе с квотами – расскажу, чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments7

Kubernetes: шпаргалка для собеседования часть 2

Level of difficultyMedium
Reading time11 min
Views14K

Всем привет! Это снова Олег. Как и обещал, публикую вторую часть текста, посвященную вопросам, которые могут быть заданы на собеседовании по Kubernetes. 

Чтобы было понятно о чем речь, коротко: я работаю исполнительным директором по разработке в Газпромбанке, собеседую инженеров DevOps и системных администраторов. Делюсь вопросами (и ответами, конечно), которые могут быть заданы на собеседовании. Первую часть можно найти здесь. Итак, поехали.

Ехать далее
Total votes 12: ↑11 and ↓1+10
Comments17

10 самых распространенных проблем при линтинге Dockerfile'ов

Level of difficultyEasy
Reading time8 min
Views11K

Весной 2023 года разработчики Depot добавили в свой сервис возможность проверять Dockerfile'ы при каждой сборке.

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

Читать далее
Total votes 36: ↑35 and ↓1+34
Comments4

Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики

Reading time9 min
Views27K

Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики.

(1) Школа. (2) Матанализ. (3) Аналитическая геометрия. (4) Линейная алгебра.

Все плейлисты, материалы, курсы в открытом доступе и бесплатны.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments18

Наглядное руководство по SSH-туннелям

Reading time8 min
Views116K

Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

Читать далее
Total votes 75: ↑75 and ↓0+75
Comments17

Docker Swarm для самых маленьких

Reading time13 min
Views115K

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments26

Глубокое погружение в Java Memory Model

Reading time53 min
Views128K


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Босяцкий кластер высокой доступности

Reading time8 min
Views16K

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

Читать далее
Total votes 50: ↑45 and ↓5+40
Comments41

На пути к тестируемому инфраструктурному коду

Reading time6 min
Views4.3K

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

Сейчас я пишу больше инфраструктурного кода: утилиты бэкапов, скрипты мониторинга, Kubernetes-манифесты, Ansible-плейбуки, Terraform-модули, и, чуть не забыл, CI/CD. Иногда он бывает простым, иногда странным, но чаще — нетестируемым. Инфраструктурный код — это код в мешке: пока не запустишь — не узнаешь, что случится. В среднем я делаю 10—20 запусков пайплайна в Jenkins, чтобы довести код CI до рабочего состояния.

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

Сейчас расскажу, как можно все эти беды свести к минимуму.

Давай! Ура, давай!
Total votes 23: ↑23 and ↓0+23
Comments2

Руководство по обеспечению высокой доступности в Kubernetes

Reading time11 min
Views11K

Перед вами полноценный гайд по запуску приложений с высокой доступностью (HA) в Kubernetes. В его основу лёг мой многолетний опыт работы с этой системой, приправленный лучшими практиками из официальной документации OpenShift и Kubernetes.
Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments4

Как бы вы реализовали форму аутентификации на сайте? Вопрос для собеседования на Junior/Middle/Senior?

Reading time9 min
Views54K

В свете исследования "Веб-разработчики пишут небезопасный код по умолчанию" мне подумалось, что именно так может звучать один из базовых вопросов на собеседовании с точки зрения проверки знания web-разработчика от уровня Junior до Senior.

Тема с одной стороны в общем-то простая, а с другой - многогранная. Можно сделать “на коленке”, а можно и “по-взрослому” -  зависит от знаний конкретного девелопера и технического задания. Ну и не привязывается к конкретному языку. Что nodejs, что .net, что PHP - на ответы это не влияет. Ну и отлично же! Давайте попробуем.

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

Как бы вы ответили на конкретный вопрос? Попробуйте проверить себя и потратить пару минут на обдумывание прежде чем читать ответ.

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

Итак, за вёсла!

Читать далее
Total votes 69: ↑59 and ↓10+49
Comments211

Полезные личностные качества для ИТ-специалиста + материалы для их развития

Reading time8 min
Views21K

Вы когда-нибудь задумывались, почему один человек легко идёт по жизни, достигает высоких результатов и получает всё, чего ему хотелось бы, а другие словно каждый день сражаются — и регулярно проигрывают? Безусловно, это можно объяснить множеством факторов, и на некоторые из них сложно влиять, в то время как другие довольно легко изменить. Большую роль играют личностные качества — приобретённые особенности человека, которые проявляются в его поведении и способах справляться с жизненными ситуациями.

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

Читать далее
Total votes 23: ↑18 and ↓5+13
Comments12

Information

Rating
Does not participate
Location
Россия
Registered
Activity