Как стать автором
Поиск
Написать публикацию
Обновить
287.49

DevOps *

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

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

Автоматизируем выпуск валидных SSL-сертификатов в локальном Kubernetes

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

В данном туториале максимально просто расскажу и покажу на практике как настроить автоматический выпуск сертификатов в локальном kubernetes так, что бы ваша локальная машина доверяла им. Я постарался написать его так, чтобы даже новичкам можно было настроить свой куб просто следуя данной инструкции.

Читать далее

История создания идеального Docker для Laravel

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

Казалось бы, упаковать PHP в контейнер и настроить GitHub Actions - дело пяти минут. Но как часто бывает, реальность оказалась сложнее. Это история о том, как я вернулся к разработке на PHP и решал накопившиеся проблемы с деплоем Laravel-проекта. О том, как готовил Docker-образ, несколько раз переписывал процесс деплоя, находил компромиссы там, где это было возможно, и полностью перестраивал архитектуру там, где компромиссы были неприемлемы.

Читать далее

Use case использования Kubernetes при построении Cloud-Native-платформы данных

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

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

Привет, Хабр. Меня зовут Сергей Емельянов. Я ведущий программист VK Tech. Мы с командой смогли построить Cloud-Native-архитектуру платформы данных на базе Kubernetes. И в этой статье я хочу рассказать, как это было — от задачи до полученных результатов.

Читать далее

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

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

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.

Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

Читать далее

Как перекинуть файлы на смартфон по WiFi

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

Допустим Вы скачали на свой NetTop PC аудио книгу и теперь хотите её перекинуть на Android телефон.

Как же это можно провернуть?

Предположим, что вас на телефоне нет SD карты, да и USB кабель тоже пропал куда-то.

Как же перекинуть огромный файл с LapTop-а на PalmTop?

В этом тексте я напиcал, как посылать файлы по WiFi.

Читать далее

Строим карту IP коннектов домашних девайсов, без регистрации и смс

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

Вы никогда не задумывались, а куда вообще коннектится все то что у вас дома в сети ? Все эти Windows, MacOS, iOS и прочие проприетарные и умные утюги ? А это не сложно посмотреть. Сегодня в нашем кружке 'Оч.умелые ручки' мы будем следить за теми, кто следит за нами.

Наша цель - построить карту и графики того куда коннектится все то что сидит в сети дома. И не по трафику, понятно что какая-то там условная Амедиатека будет в топе, а именно про то, куда устанавливаются соединения. Готовить будем на Mikrotik, Grafana и Victoria Logs. В результаты мы получим что-то вроде вот этого:

Читать далее

Как я развернул фулстек-приложение на «NestJS» с «Angular» в «Supabase» и «Vercel»

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

Я разработал небольшое фулстек-приложение в качестве примера REST + WebSockets бойлерплейта на NestJS и Angular. В приложении используется PostgreSQL для хранения данных, Redis для кэширования и Minio для работы с файлами. Изначально целевой средой для развертывания был Kubernetes, но для ускорения разработки и тестирования MVP я решил использовать бесплатные облачные сервисы: Supabase для инфраструктуры и Vercel для деплоя бэкенда и фронтенда.

Читать далее

Чем Kubernetes лучше Docker Swarm

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

Продолжение истории «Контейнерный хостинг или чем Kubernetes лучше Docker Swarm» где я описывал проблемы при построении облачного сервиса,а возможные решения выбирал между Docker Swarm и Kubernetes. Статья будет особенно полезна тем, кто практически не имея опыта, сомневается что выбрать в качестве оркестратора для своих проектов. Забавно будет почитать и тем, кто уже прошел по этим граблям и имеет свой собственный опыт, чтобы освежить в памяти какие‑то моменты или где‑то взглянуть по-новому.

Читать далее

Service Mesh глазами бэкендера: умный дирижёр микросервисного оркестра

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

Service Mesh – это «умная» сеть для управления трафиком между сервисами. Углубимся в детали и разберём, как эта технология упрощает жизнь DevOps-инженеров и разработчиков.

Привет, Хабр! Алексей Ушаровский — бэкенд разработчик в международном финтехе, эксперт Skillbox по Java и Kotlin. На текущем проекте ему приходится сталкиваться не только с бэкендом, но и с технологиями DevOps. На закрытом эфире для комьюнити Skillbox Code Experts рассказал про свой опыт работы с технологией Service Mesh. Делимся с вами в этой статье.

Читать далее

Как собрать Linux-контейнер с нуля и без Docker

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

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

Читать далее

Agile-романтика: Kanban доска для счастливых отношений

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

Жизнь в ИТ не простая, работа, таски, дедлайны, мониторинг серверов, случайные падения кластера среди ночи... и где-то в этом хаосе есть ещё и личная жизнь. Проблема в том, что если в проде у тебя всегда есть система мониторинга, то в отношениях её нет. Или есть, то только в виде пассивно-агрессивного вопроса перед сном "Тебе не кажется, что ты мало времени уделяешь семье?".

Поэтому, сейчас мы разберёмся как можно сделать Kanban-доску в Taiga и попробуем сделать из хаоса порядок. Ведь мы можем поддерживать 99.99% аптайма в проде, почему бы не попытаться добиться хотя бы 80% в личной жизни?

Читать далее

Наш путь delivery of secrets: как мы пришли к связке Bank-Vaults и Vault Secret Operator

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

Привет, Хабр! Меня зовут Натиг Нагиев, я Devops-инженер в МТС Диджитал.

На нашем проекте мы обеспечиваем авторизацию внешних клиентов в продуктах МТС. Это Mission Critical система, где мы оптимизировали и гарантировали доставку секретов в контейнеры с микросервисом, избавлялись от дополнительных рабочих нагрузок и исключали внешние зависимости. В прошлом материале я сравнил разные инструменты, которые мы перебрали, а в этом расскажу про наше итоговое решение — связку Bank-Vaults и Vault Secrets Operator.

Читать далее

Картинка дня DevOps-инженера: подъем в 6 утра по тревоге, разборы полетов и раннеры GitLab CI

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

Эволюционируя из рядового сисадмина в DevOps-а, специалисты начинают заботиться о разработке. В среднем разработчики об инфраструктуре знают не очень много: вполне может добавить скрипт, который обрушит кластер. Поэтому наша задача как девопсов сделать систему максимально отказоустойчивой, автоматизировать рутину, выстроить процессы CI/CD, настроить мониторинг и вообще следовать подходу “Инфраструктура как код”.

Но это в теории. На практике это возможно, только если в систему никто не вносит никаких изменений, а так не бывает. Поэтому жизнь DevOps - постоянный “День Радио” в отдельно взятой инфраструктуре.

Врезка: “День Радио” — это фильм с сюжетом, что в прямом эфире вот-вот должен стартовать марафон, но за десять минут до начала выясняется, что заранее подготовленная тема перехвачена конкурентами. И начинается суета и множество сюжетных поворотов и проблем 🙂

Я поговорил с Дмитрием, тимлидом DevOps-команды в Git In Sky. Обсудили, как выглядит его типичный рабочий день и какие задачи стоят перед командой в условиях активно растущего рынка SRE-аутсорсинга.

Читать далее

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

Давайте писать удобное локальное окружение…

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

Всем привет, меня зовут Аббакумов Валерий.

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

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

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

Читать далее

CI/CD Kubernetes платформа Gitorion. Canary-релизы

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

Привет всем! Перед деплоем нового релиза приложения в продакшен хорошей практикой является оценка его работы с запросами от реальных пользователей. Если разом заменить текущий релиз приложения на новый, есть вероятность в случае ошибки в программном обеспечении повредить данные большого числа пользователей или получить непрогнозируемое поведение нового релиза под нагрузкой. Чтобы избежать указанных трудностей используют Canary‑релизы — это когда рядом с актуальным релизом приложения в продакшене развертывают релиз с новой версией приложения и направляют на него часть запросов от реальных пользователей. В данной статье мы расскажем о нашем опыте внедрения Canary‑релизов в CI/CD платформу Gitorion.

Читать далее

Как исправлять ошибки в Git, не оставляя улик

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

Как же иногда хочется закинуть коммиты «Remove debug log», «fix» или «fix fix fix». Такие коммиты как грязные носки под кроватью: их не видно, пока не придёт ревьюер с пристальным взглядом или, что еще хуже, потенциальный работодатель, решивший посмотреть на ваш профиль github.

К счастью, Git предлагает два супер-инструмента для того, чтобы история коммитов выглядела так, будто ты всегда знаешь, что делаешь: git commit --fixup и git rebase --autosquash. И сегодня мы разберем на практике как это применять.

Читать далее

DEVops: Разрабатываем свой Kubernetes оператор с кастомными ресурсами на Go

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

Используете готовые операторы в Kubernetes? Я тоже... Но с какого‑то момента я начал задаваться вопросом: «а как люди их пишут?». И я нашел ответ!

В этой статье я наглядно покажу, как создать свой кастомный оператор в Kubernetes на Go при помощи kubebuilder. Оператор позволит отслеживать изменения ресурсов в кластере, а затем отправлять уведомления в Telegram или другие мессенджеры. Какие ресурсы «трекать» будем описывать через кастомные ресурсы (Custom Resource). Погнали!

Читать далее

Мой первый контейнер без Docker

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

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Что не так с chroot: почему для контейнеров используется именно pivot_root

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

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

Читать далее

CodeSigning для разработчиков под Windows по новым правилам

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

С 1.06.2023 году вступили в действие новые требования к сертификатам для подписи кода (aka CodeSigning), которые значительно осложнили жизнь разработчиков ПО. Суть изменений - прощай старый добрый PFX, закрытые ключи теперь должны быть неизвлекаемыми и некопируемыми. Примеры изменений у поставщиков: раз, два, три - в общем-то у всех одно и тоже.

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

Безопасность должна быть более безопасной

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