Pull to refresh
0
0

User

Send message

Большая шпаргалка по Docker: как распилить монолитный проект на части

Level of difficultyMedium
Reading time19 min
Views22K

Погружение в мир контейнеризации с докером — это путь к оптимизации развёртыванию приложений, а также ключ к упрощению жизни разработчиков и системных администраторов. Меня зовут Андрей Аверков, в IT c 2008 начинал пусть с аналитика-проектировщика IT систем, 11 лет в роли разработчика и последние годы на руководящих должностях. Сейчас я тимлид команды разработки из 9 человек в группе компании Кокос. Мы занимаемся созданием и поддержкой CPA платформ (gdeslon.ru, fxpartners.ru, ads.mobisharks.com), а также проектом по генерации лендингов — lpgenerator.ru. У нас большой опыт в разделении продуктов на части, поэтому, сегодня мы собрали самое основное и необходимое для работы с Docker. В нашей шпаргалке вы найдете все необходимое для успешного старта с докером: от базовых концепций и установки до продвинутых техник работы с контейнерами.

Читать далее
Total votes 19: ↑14 and ↓5+13
Comments11

Обзор балансировщика traefik

Level of difficultyEasy
Reading time6 min
Views8.7K

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

Traefik - современный и мощный балансировщик нагрузки.

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

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

Как работает сеть в контейнерах: Docker Bridge с нуля

Level of difficultyMedium
Reading time21 min
Views37K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

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

Dragon Userbot — расширение возможностей Вашего Telegram-аккаунта до уровня, ограниченного лишь Вашей фантазией

Level of difficultyEasy
Reading time6 min
Views10K

Мы хотим рассказать о проекте, который существует уже больше года и, за свою историю, получил уже больше 200 "звезд" на GitHub. ​Сегодня, мы релизнули версию 4.0 - она использует новые версии библиотек (Pyrogram) и имеет дополненный функционал.

Читать далее
Total votes 12: ↑5 and ↓70
Comments14

Настраиваем двухступенчатый WireGuard для выхода из страны

Level of difficultyMedium
Reading time4 min
Views45K

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

В начале августа некоторые интернет операторы и провайдеры начали блокировку протокола WireGuard в РФ по его рукопожатию.

Лично испытывал блокировку у Мегафон и Теле2, но не заметил у Ростелеком. VPN по-прежнему работал через последнего.

Очень не хотелось отказываться от Wireguard в пользу прокси-серверов в духе VLESS+TLS-Vision, в виду того, что все наши пользователи уже сильно привыкли именно к Wireguard.
Поэтому вариант с кардинальной сменой клиентского софта не рассматривался.

Поскольку трафик Wireguard блокируется только на зарубежные адреса было принято решение добавить еще один хоп в систему, а начальное подключение осуществлять к серверу в РФ.

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

Создание telegram-ботов с интерактивным меню

Level of difficultyMedium
Reading time15 min
Views39K

Однажды меня попросили провести ревью и рефакторинг одного telegram-бота. Увидев файл размером 2000 строк, рассчитанный только на обработку разных меню я понял, что это требует унификации и общих подходов. Так родилась библиотека aiogram-dialog

В этой статье я бы хотел обратить внимание на некоторые проблемы, которые мы встречаем при создании таких меню, предложить варианты их решения. А во второй половине статьи показать как это решается с помощью aiogram-dialog.

Мы не будем рассматривать архитектуру всего приложения, об этом вы можете прочитать у Фаулера или Мартина. Мы поговорим только про определенную часть UI ботов. Так же это не будет введением в разработку telegram-ботов с нуля. Я предполагаю, что читатель знаком с питоном, ООП и слышал о такой вещи как DRY.

Примеры выбраны так, чтобы проще было показать определенные проблемы, но это не единственные сценарии приводящие к ним.

Читать далее
Total votes 22: ↑21 and ↓1+23
Comments4

Как на самом деле Linux выполняет запись на диск?

Reading time6 min
Views27K

Друзья мои, программисты и операторы, я бы хотел поговорить о том, как в Linux работает запись файлов.

Раньше я думал, что она устроена определённым образом, и как Джон Леннон, «I’m not the only one». Оказалось, операции записи работают совершенно иначе. То, как они работают, интересно и важно знать.

Позвольте начать с того, как я раньше думал о записи файлов.

Читать далее
Total votes 62: ↑43 and ↓19+44
Comments113

Деньги и страх смерти: почему денежные негативные установки так сложно на самом деле изменить?

Level of difficultyEasy
Reading time6 min
Views27K

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

Читать далее
Total votes 62: ↑48 and ↓14+48
Comments189

Bash-скрипты, часть 7: sed и обработка текстов

Reading time9 min
Views591K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

В прошлый раз мы говорили о функциях в bash-скриптах, в частности, о том, как вызывать их из командной строки. Наша сегодняшняя тема — весьма полезный инструмент для обработки строковых данных — утилита Linux, которая называется sed. Её часто используют для работы с текстами, имеющими вид лог-файлов, конфигурационных и других файлов.


Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments34

Переходите на микрофронтовую архитектуру

Reading time9 min
Views18K

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

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

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

Полезная ссылка с подробным объяснением концепции микрофронтенда.

Читать далее
Total votes 7: ↑4 and ↓3+2
Comments21

Как Василий ускорял сборку тестов

Reading time7 min
Views4.1K

Однажды инженер Василий проснулся и понял, что больше не может ждать эти бесконечные пайплайны.

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

Картина была такая: от старта пайплайна до непосредственного запуска тестов в сервисе проходило в среднем 7,5 минут. Допустим, за рабочий день каждый член команды (разработчик/тестировщик) запускает 3 пайплайна, а людей в команде — 14. Тогда на сборку образа уходит 5 часов 15 минут. 

Василию не подходит.

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

Лучшие друзья: Terraform, Ansible и Jenkins

Reading time11 min
Views12K

Рассказываем, как использовать Jenkins CI/CD Pipeline для создания инфраструктуры AWS с помощью Terraform и Ansible. Мы не будем вдаваться в подробности, как настраивать Terraform или тестировать код по мере создания инфраструктуры, так как эти шаги считаются стандартными. Конечный результат — код Terraform, создающий среду AWS с общедоступными подсетями и инстансами EC2 с Ansible Playbook. Когда код помещается в репозиторий GitHub, GitHub Webhook запускает Jenkins CI/CD Pipeline, действия которого зависят от того, куда мы отправляем код — в ветку разработки или основную.

Читать далее
Total votes 11: ↑10 and ↓1+10
Comments6

Gatsby.js в деталях

Reading time15 min
Views90K


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

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

RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

Reading time7 min
Views25K

Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как в итоге переслать это сообщение. Я решил собрать все это в одном месте и сделать из этого практическое руководство, которое поможет из ничего получить рабочий прототип и понять как это работает. Эта статья ориентированная на новичков, которые только хотят познакомиться с RabbitMQ. Целью я поставил максимально простыми словами и по шагам рассказать, как быстро и легко поднять все окружение локально, отправить и получить сообщения через очередь.

Читать далее
Total votes 7: ↑4 and ↓3+1
Comments13

Как настроить python в Linux под свой проект?

Reading time4 min
Views33K

Привет, Хабр! Меня зовут Дмитрий Алексеев, я Data Scientist и являюсь участником профессионального сообщества NTA. Сегодня расскажу как использовать python и Linux «в связке», и как это поможет облегчить вам жизнь.

Читать далее
Total votes 21: ↑9 and ↓12+1
Comments16

IT для неайтишников: Куда исчезают программисты после 40 лет?

Reading time11 min
Views122K

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

Читать далее
Total votes 114: ↑95 and ↓19+103
Comments281

Прокрастинация. И почему борьба с ней контрпродуктивна

Reading time6 min
Views18K

Любое дело и кажется важным, но 5 минут ровным счетом ничего не изменят. Тем более я давно не смотрел, не читал ничего интересненького. Немного разгружу мозг, соберусь с силами и сразу в бой… И чем дольше собираешься, тем выше вероятность, что подстегивать работу будет не ресурс, полученный от отдыха, а маты в трубке и пессимизация премиальных. А виной тому твоя лень — прокрастинация.

Читать далее
Total votes 19: ↑16 and ↓3+16
Comments31

Расстояние Левенштейна для чайников

Reading time4 min
Views79K

Когда я взялась решать задачку по динамическому программированию — реализовать алгоритм, который рассчитывает расстояние Левенштейна — мне пришлось послушать пару небольших лекций и прочесть несколько статей (приведу их в конце), чтобы разобраться. Я решила попытаться пересказать алгоритм настолько просто, чтобы по этому объяснению можно было снять ролик для тиктока (когда он снова возобновит свою деятельность в РФ). Дальше — мало формул и много картинок.

Читать далее
Total votes 40: ↑36 and ↓4+36
Comments17

Еще один гайд по переходу с Linux на Mac

Reading time15 min
Views19K

Вот вот начнется продажа ноутбуков Apple с чипами M2. Для кого-то этот факт будет сигналом к обновлению рабочей машинки. Наверняка, найдутся и те, кто впервые пересядит за мак. И среди пересевших на мак обязательно будет какая-то небольшая доля линуксоидов. Решил написать небольшой обзор актуальных инструментов, поделиться опытом перехода. Знаю, по теме на Хабре есть десятки статей. Где-то повторюсь, где-то раскрою тему хуже коллег, но я уверен, каждый читатель найдет для себя что-то новое.

Читать далее
Total votes 55: ↑36 and ↓19+24
Comments68

18 отборных однострочных команд Linux

Reading time4 min
Views37K

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

Приступим!
Читать дальше →
Total votes 62: ↑42 and ↓20+37
Comments55
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity