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

DevOps *

Методология разработки программного обеспечения

Сначала показывать
Порог рейтинга
Уровень сложности

Container Security: инструменты

Время на прочтение 1 мин
Количество просмотров 498

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

Читать далее
Всего голосов 2: ↑0 и ↓2 -2
Комментарии 1

Новости

Четыре метрики, изменившие мой проект

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

Привет, Хабр! Я Федор Щудло, team lead и fullstack-разработчик. Всего я в разработке 15 лет, из них 11 в роли team lead.

Три года назад я сменил работу и занялся проектом, состояние которого можно описать кратко: ему 25 лет.

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

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

Как результат, разработка шла с большими накладными расходами (все делали долго), и с высокими рисками (выкатили и разломали прод). А команда при этом работала на износ.

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

Читать далее
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 8

Концепция Twelve-Factor App и Kubernetes

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 1.4K

С момента публикации концепции Twelve-Factor App значительно изменилось то, как мы создаём, упаковываем и развёртываем приложения. Контейнеры, Kubernetes и облачные технологии стали основными технологиями, которые позволяют нам создавать переносимые, масштабируемые и надёжные приложения. Тем не менее 12 факторов, сформулированных в концепции, всё ещё актуальны в современном технологическом стеке.

Перевели статью, в которой описывается методология Twelve-Factor App и применение её концепций в контексте контейнеров и Kubernetes.

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

CNCF White Paper по observability: инструменты, виды, стратегии и проблемы

Уровень сложности Сложный
Время на прочтение 38 мин
Количество просмотров 1.6K

В августе 2023 года под руководством группы TAG Observability в экосистеме CNCF была выпущена версия 1.0 документа по наблюдаемости (observability). CNCF — флагман развития и продвижения облачных технологий. Организация объединяет в себе множество компаний, разработчиков и специалистов с огромным опытом и экспертизой, которые упаковали в этот документ. Наш материал является его переводом.

Читать далее
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 3

Истории

PowerShell и Selenium. Проще, чем кажется

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 4.8K

Всем привет! В продолжении публикации о возможностях PowerShell, упомянул, что выделю в отдельную статью использование библиотеки Selenium с упомянутым языком. Этот небольшой гайд также может подойти для понимания, что из себя представляет данная библиотека и общее представление, как с ней работать, т.к. не зависимо от выбранного вами языка, принцип работы с Selenium одинаковый. Сразу отвечу на вопрос для тех, кто не знает, что это за библиотека или кому она может понадобиться. Selenium в первую очередь инструмент для функционального тестирования, это когда нужно проделать ряд действий имитируя реального пользователя и убедиться, что функционал Web-приложения работает исправно или неисправно. Реже используется для автоматизации различных задач в браузере (вызов JavaScript функций по средствам нажатий кнопок, заполнение форм и т.п.), для которых не предусмотрено API, а в некоторых случаях может выступать более удобной и полноценной альтернативой. Работая системным администратором, мне было удобно автоматизировать действия в панелях управления различных сервисах, или собирать специфические метрики с отправкой в базу данных. Selenium даже может входить в список инструментов DevOps-инженера. На мой взгляд, инструмент очень интересный с точки зрения творческого подхода к решению различных задач.

Постараюсь разложить все по полочкам, от установки всех зависимостей до примера работы с данным инструментом, также продемонстрирую альтернативный инструмент, который использовал до знакомства с Selenium. Специально для статьи подготовил модуль, который позволяет общаться с бесплатной версией ChatGPT из консоли PowerShell, который вы можете установить, используя всего две команды, а так же покажу, как просто создать такой модуль. Хочу заметить, что осознанно выделяю данную статью в средний уровень сложности Habr, по итогам ознакомления, для людей базово знакомых с PowerShell (для этого у меня есть отдельная работа с заметками), порог вхождения будет минимален.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Пишем Ansible-модули для управления разными системами хранения данных через Swordfish

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

Большинство современных систем хранения данных (СХД) предоставляют REST API для управления ими, включая настройку, конфигурирование, выполнение различных команд, получение логов, работу с пользователями и т.д. В зависимости от производителя СХД REST API могут отличаться друг от друга. Если вы используете несколько разных систем, их одновременная поддержка становится проблемой: нужно учитывать многообразие протоколов, интерфейсов, команд и способов взаимодействия с API.

Меня зовут Александр Пономарев, вместе с группой студентов СПбПУ Петра Великого на базе Лаборатории YADRO мы изучали способы сделать управление разными СХД менее трудоемким. Вариант, на котором мы остановились, — использовать системы, которые удовлетворяют спецификации Swordfish, в связке с Ansible. Подробнее о проекте, который мы выполняли с инженерами компании и преподавателями университета, рассказываю под катом.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 2

MinIO Multi-Node Multi-Drive

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

Объектное хранилище — название отражает принцип работы, хранение данных в виде объектов с уникальным индексом.

Хочу расcказать о своем опыте работы с одним из них.Меня заинтересовал один конкретный продукт — MinIO, из‑за достаточно простой установки, настройки и не плохого функционала. Есть несколько вариантов инсталляции MinIO:

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 2

Одноразовые пароли для доступа по ssh через HashiCorp Vault

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 6K

HashiCorp Vault имеет в своём арсенале SSH secrets engine, который позволяет организовать защищённый доступ к вашим машинам по ssh, через создание клиентских сертификатов и одноразовых паролей. Про последнее – создание одноразовых паролей (OTP) – мы и поговорим в этой статье.

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

Open Source Cloud Computing 2

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

Для того, чтобы построить облачный сервис понадобится горизонтально масштабируемая база данных. Cloudstack «из коробки» не знает что такое HA, предполагается, что для этого нужно использовать встроенный функционал MySQL или такое решение как Galera Cluster. Но мы пойдем другим путем и остановим свой выбор на Vitess – надежной, легко масштабируемой системы кластеризации для MySQL.

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 1

Bitwarden в действии: Автоматизация смены ключей и паролей для AWS

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 3.4K

В мире, где каждая учетная запись требует от нас еще одного пароля, и каждый облачный сервис, такой как AWS, зависит от надежности этих ключей, менеджеры паролей вроде Bitwarden выступают как спасители. Они не просто хранят наши ключи и пароли, но и делают их управление значительно удобнее. Однако, даже с таким мощным инструментом, как Bitwarden, мы сталкиваемся с ограничением: он не способен автоматически обновлять и менять используемые в облачных сервисах ключи и пароли. Итак, что делать, когда ручное обновление ключей и паролей становится скучной и малоэффективной задачей? В этой статье мы исследуем, как можно объединить удобство использования Bitwarden с эффективными методами автоматизации для управления учетными данными AWS. Представьте себе – больше нет монотонного ввода паролей и обновлений ключей вручную. Но для этого придется немного постараться.

Что ж, начнем...
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 30

Логи из docker compose / docker swarm в Grafana / Loki быстро и просто

Уровень сложности Средний
Время на прочтение 19 мин
Количество просмотров 12K

Хочу показать как развернуть готовый и полностью работающий стек мониторинга Grafana + Loki + Prometheus + Pushgateway + Promtail за пару минут (в прямом смысле этого слова), без необходимости устанавливать на машину дополнительное ПО (плагины docker и плагины логирования) и собирать логи со всех контейнеров машины (или сразу со всех нод, в случае с swarm).

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 21

Chaos Engineering Enterprise Version. Часть 1

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.4K

Всем привет! Я давно планировал написать цикл статей на тему Chaos Engineering, чтобы рассказать о том, как его запускать, пилотировать и, конечно, масштабировать. Я обладаю большим опытом и знаниями, которые помогут запустить эту практику в «жестком» и сложном Enterprise, когда у нас идут релизы, а команд десятки. Частично мы уже делились этой информацией на конференциях CodeFest, ArchDays, DevOops conf, TechLead, но здесь мы еще попробуем систематизировать и подать концентрированно.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 0

Тестирование новых версий сервисов с помощью Canary Deployment (Kubernetes)

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.4K

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

 В  данной статье я  рассмотрел основную проблему в выпуске новых версий приложений в production, также описал суть canary deployment и процесс развертывания с помощью Kubernetes.

Читать далее
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 4

Ближайшие события

«Свои грабли» detected или Hashicorp way, на тропе просветления

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

Всем привет. Меня зовут Ярослав. Вместе с моим коллегой Володей, мы представляем команду Sunshard. Нашей небольшой командой Hashicorp-энтузиастов мы решаем различные бизнес-задачи для команд разработки.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 13

Как Додо Пицца доставляет свежий код: история мобильного CI для iOS

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 3.7K

Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный менеджер появился только пару лет назад. Тяжко.

А когда речь заходит про автоматизацию тестирования и сборок — тушите свет: Xcode Cloud появился полгода назад и почти ничего не умеет, популярные облачные решения могут месяцами не обновлять стек на новые мажорные релизы среды разработки или ОС (вставить ссылку на тред где гитхаб не может привести новую макось уже полгода), а ценник при этом может быть в 10 раз больше, чем за машинки на Linux. Ещё тяжелее.

Меня зовут Леха Берёзка, я iOS-техлид в Додо Пицце и сейчас я расскажу как мы собрали свой CI на М1, с виртуализацией и на полном нативе.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 7

Вася, ты видишь девопса? А он есть

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

Привет! Меня зовут Василий Куценко, я возглавляю департамент DevOps в Почтатехе и считаю, что девопсов не существует… 

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

Но как же быть с тем, что компании постоянно ищут DevOps-инженеров, на хантинговых сайтах полно подобных вакансий, а сама должность престижна и хорошо оплачивается? Кто же эти «фантастические девопсы» и что нужно, чтобы быть «труъ», разбираемся в статье.

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 3

Что происходит, когда вы создаёте Pod в Kubernetes?

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 8.9K

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

Читать далее
Всего голосов 13: ↑10 и ↓3 +7
Комментарии 2

Ценности как инструмент принятия сложных решений: как мы упрощаем взаимодействие команд и приходим к единому мнению

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 2.6K

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

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

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

Аутентификация в Kubernetes через Gitlab'овские JWT токены

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

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

Какой бы инструмент мы не использовали (kubectl, helm), для манипуляций с ресурсами API нам в любом случае будет необходимо аутентифицироваться при выполнении запросов к Kubernetes. Для этого в запросе надо передать данные для аутентификации, будь то токен или сертификат. И тут возникает несколько вопросов:

1. Где хранить эти креды?

Хранить креды от кластера можно, например, в Gitlab CI/CD Variables и подставлять в джобу деплоя, но тогда потенциально все пользователи будут деплоить с одними и теми же доступами

2. Как сделать так, чтобы у каждого пользователя были свои данные для доступа в кластер?

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

А что если сделать так, чтобы в качестве провайдера аутентификационных данных для Kubernetes выступал сам Gitlab? Тогда не надо было бы нигде хранить креды, и каждый пользователь мог бы аутентифицироваться в кубере под своей учёткой при запуске деплоя

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 9

Использование Postgres-триггеров для исторических таблиц

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 5K

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

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 6

Вклад авторов

Работа

DevOps инженер
47 вакансий