Search
Write a publication
Pull to refresh
1
@Redemaxread⁠-⁠only

User

Send message

Как мы внедряли отказоустойчивый GitLab Cluster с использованием Ansible и бесшовными обновлениями

Level of difficultyMedium
Reading time15 min
Views1.9K

В процессе роста нашей инфраструктуры мы столкнулись с тем, что Single Node (all-in-one) инсталляции GitLab стало недостаточно. Производительность начала снижаться, а любое обновление или сбой сервиса приводило к простою всей разработки. Поэтому мы приняли решение перейти на отказоустойчивый GitLab Cluster с возможностью бесшовных обновлений (zero downtime upgrade).

Для автоматизированного развёртывания и управления кластером мы выбрали Ansible.

Читать далее

Введение в современную сетевую балансировку и проксирование

Reading time24 min
Views138K

Недавно я осознал нехватку вводных обучающих материалов о современной сетевой балансировке и проксировании. Я подумал: «Почему так? Балансировка нагрузки — одна из ключевых концепций для построения надёжных распределённых систем. Ведь должна быть доступна качественная информация об этом?» Я поискал и обнаружил, что информации мало. Статьи в Википедии о балансировке и прокси-серверах содержат обзоры некоторых концепций, но не могут похвастаться последовательным описанием предмета, особенно в том, что касается современных микросервисных архитектур. Поиск в Google информации о балансировке в основном возвращает сайты вендоров, заполненные модными терминами и скупые на подробности.


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

Читать дальше →

State of DevOps 2024. Platform Engineering

Level of difficultyEasy
Reading time7 min
Views2.5K

Всем привет, с вами Sergey Sabbath:)

А вот и моя любимая тема! Я с нетерпением ждал новый State of DevOps ради неё. Одна из самых ценных вещей в новом исследовании — это определение платформенной инженерии (PE, Platform Engineering) как социально-технической дисциплины. Здесь инженеры думают не только о технических аспектах автоматизации, но и о повторяемости процессов и о том, как предоставить самообслуживание клиентам платформенных решений.

“Platform engineering is a sociotechnical discipline where engineers focus on the intersection of social interactions between different teams and the technical aspects of automation, self‑ service, and repeatability of processes.”

Читать далее

Международные стандарты безопасной разработки: ликбез

Level of difficultyEasy
Reading time11 min
Views5K

DevSecOps — это не просто модное словечко, а целая философия, объединяющая разработку, безопасность и операции. Но как применить эту философию на практике? Здесь на помощь приходят международные стандарты.

В этой статье мы рассмотрим пять основных международных DevSecOps-стандартов: DSOMM, BSIMM, OWASP SAMM, Microsoft SDL и NIST SP 800-64. Мы разберем их особенности, сильные и слабые стороны, а также поговорим о том, как адаптировать эти стандарты к российским реалиям.

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

Читать далее

Обзор готовых решений для построения портала IDP и когда они не подходят: анализ на примере кейса компании Evrone

Reading time10 min
Views1.9K

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

Меня зовут Александр Кириллов. Я СТО в компании Evrone. В этой статье я расскажу о наших предпосылках внедрения IDP, поиске вариантов реализации и объясню, почему иногда готовые решения не подходят.

Читать далее

Kata Containers для Docker в 2024

Level of difficultyEasy
Reading time8 min
Views3.3K

Kata Containers по факту сейчас основной способ запустить контейнеры в изолированной виртуальной машине для большей безопасности. Рассказываю, как установить их для использования с Containerd и Docker, сохраняя возможность переключаться между версиями релизов.

Читать далее

Как работает генерация видео в open source проекте Wunjo CE

Level of difficultyEasy
Reading time9 min
Views2.5K

Генерация видео теперь open source? Наконец-то я нашёл время, чтобы добавить генерацию видео из текста и изображений в свой open source проект Wunjo CE. В этой статье мы рассмотрим, как это работает, сравним его с похожими решениями, изучим основы подхода и его альтернативы.

Смотрим

Иногда лучше делать, а не планировать

Level of difficultyEasy
Reading time7 min
Views48K

Пожилой рабочий на строительстве «Эмпайр-стейт-билдинг» в 1930 г., источник. Вся стройка от подготовки стройплощадки до торжественного запуска лифтов заняла 410 дней

В последнее время часто приходится слышать про новую модель управления — избыток административных кадров, не имеющих отношения к основному производству. К сожалению, это особенно ярко проявляется в IT-индустрии, где количество менеджеров среднего звена сильно превышает стандартные показатели. Например, в компании Google доля менеджеров уже достигла 15% от общей численности персонала, то есть по одному менеджеру на пять-шесть работников. Это заметно превышает средний показатель в сфере услуг 1 к 15.

Избыток менеджеров в компании ведёт к негативным последствиям:

  • засилье KPI с последующей деградацией продукта, которое по менеджерской логике должно увеличивать DAU;
  • деградация корпоративной культуры из-за офисных интриг и карьеризма;
  • снижение продуктивности разработчиков из-за бесконечных совещаний, созвонов, отчётности и использования ПО для «повышения эффективности» (таск-трекеры, тайм-трекеры, календари и проч.);
  • цифровое истощение и выгорание сотрудников.

Это стандартные издержки от переизбытка менеджеров. Иногда даже единственный менеджер приносит больше вреда, чем пользы.
Читать дальше →

Restic: эффективное резервное копирование из Stdin

Reading time5 min
Views12K

Про restic я уже рассказывал в статье Бэкап-хранилище для тысяч виртуальных машин свободными инструментами, с тех пор он остаётся моим любимым инструментом для бэкапа.

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

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

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

Читать далее

OSINT: инструменты

Level of difficultyMedium
Reading time6 min
Views160K

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

Читать далее

Kubernetes Networking: сервисы, Ingress и Network Policies

Reading time16 min
Views24K
image

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

Меня зовут Дмитрий, и я старший DevOps-инженер в ГК Иннотех. В моей работе я часто сталкиваюсь с задачами, которые требуют глубокого понимания сетевых аспектов в Kubernetes.

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

Когда дело доходит до экспозиции наших приложений наружу, я применяю Ingress для управления входящим трафиком. Это не только упрощает настройку SSL/TLS, но и предоставляет гибкие возможности для маршрутизации. И, конечно же, безопасность стоит не на последнем месте. С помощью Network Policies можно тонко настроить сетевые правила, определяя, какие поды могут взаимодействовать друг с другом, что значительно повышает уровень безопасности нашей инфраструктуры.

Данная статья будет особенно полезна для DevOps-инженеров, системных администраторов и архитекторов, которые хотят глубже понять механизмы сетевого взаимодействия в Kubernetes.

Сосредоточимся на критически важных элементах, таких, как сервисы, Ingress и Network Policies. Освоение этих базовых принципов не только упростит вашу работу с Kubernetes, но и даст вам уверенность в управлении сложными системами. Надеюсь, это будет полезно!
Читать дальше →

Геолокация: Используем методы OSINT

Reading time6 min
Views14K

Сегодня обсудим «извечный вопрос»: как обнаружить точное местоположение пользователя методами OSINT? Первым делом вспомним, что OSINT – это совокупность методов и приемов работы с открытыми источниками информации. И в этом контексте самые очевидные способы обнаружения геолокаций заключаются в анализе той публичной информации, которую пользователи оставляют о себе в глобальной паутине. Это геометки и чекины в социальных сетях, анализ публичных записей, координаты в метаданных загружаемых фотографий, исследование фото и видео контента для выявления местоположения оператора и тому подобные.

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

Читать далее

Права в Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Reading time21 min
Views682K
Всем привет. Это перевод статьи из книги RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 and EX300.

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

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

image
Читать дальше →

Как превратить DevOps-пайплайн в DevSecOps-пайплайн. Обзор концепции Shift Left

Level of difficultyMedium
Reading time12 min
Views12K

Привет, Хабр! Меня зовут Алексей Колосков, я DevOps/Cloud-инженер в Hilbert Team. Вместе с моим коллегой Михаилом Кажемским в этой статье мы расскажем об особенностях DevSecOps-пайплайна и концепции Shift Left. Вы узнаете об основных этапах DevSecOps-пайплайна, автоматизированных проверках безопасности при разработке ПО, бесплатных и опенсорс-инструментах. Также найдёте советы, которые помогут раньше обнаруживать уязвимости и улучшать безопасность приложения. 

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

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

Kafka за 20 минут. Ментальная модель и как с ней работать

Level of difficultyMedium
Reading time19 min
Views200K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее

Telegram клиент. TDLib и Spring Boot

Level of difficultyMedium
Reading time11 min
Views19K

Всем привет! В данной статье я хотел бы рассмотреть процесс создания Telegram клиента с помощью кроссплатформенной библиотеки TDLib, Java и Spring Boot.

Читать далее

Инди игры от новых авторов

Reading time14 min
Views6.1K

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

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

Читать далее

Kafka Client для фреймворка Ktor

Reading time6 min
Views3.1K

Мне понадобилось написать приложение на Ktor с использованием Apache Kafka и Kafka Streams. Официального клиента или плагина для Ktor'a я не нашел, а работать с ванильной Кафкой не хотелось, поэтому я как любой уважающий себя разработчик решил написать велосипед.

Читать далее

Как запустить Java-приложение с помощью CRaC в контейнере Docker

Reading time4 min
Views5.5K

CRaC (Coordinated Restore at Checkpoint) — это проект OpenJDK, разработанный Azul для решения проблемы «медленного» запуска виртуальной машины Java в микросервисной среде.

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

В механизме восстановления контрольной точки (checkpoint-restore) нет ничего нового, и большинство из вас уже знают и используют его ежедневно. 

Если вы работаете на ноутбуке и закрываете крышку, операционная система обнаруживает это и сохраняет текущее состояние на диск. Как только вы снова открываете крышку, операционная система восстанавливает сохраненное состояние с диска.
CRaC предоставляет тот же механизм, но для JVM и вашего запущенного приложения.

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

После этого вы сможете восстанавливать состояние JVM, включая состояние вашего приложения, из этой сохраненной контрольной точки так часто, как вам захочется.

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

Читать далее

Spring Data JPA: проекции в запросах

Reading time8 min
Views23K

Вероятно, первое, что приходит вам на ум, когда вы реализуете запрос с помощью Spring Data JPA — это проекции. Это связано с тем фактом, что проекции определяют атрибуты сущности и столбцы базы данных, возвращаемые вашим запросом. А возможность выбирать нужные столбцы очень важна для вашей бизнес-логики. Также это имеет решающее значение для производительности вашего приложения и поддерживаемости вашего кода. Вы можете (и должны) выбрать такую проекцию, которая минимизирует накладные расходы и предоставляет данные в наиболее удобной для использования форме.

Читать далее

Information

Rating
Does not participate
Registered
Activity