Привет, Хабр! Мы делаем софт для ресторанов. Это немного сложнее и намного интереснее, чем может показаться. В этом блоге мы будем рассказывать про разные интересные задачи, которые нам приходится решать. Сегодня - про то, как мы организовали работу высоконагруженного сервиса, причем в условиях, когда нагрузка может резко возрастать в 10 раз. И не по цене крыла от Боинга при этом.
DevOps *
Методология разработки программного обеспечения
Новости
Сбор данных мониторинга из Frontend JS приложений используя Grafana Faro
Здравствуйте. В данной статье будет выполнено рассмотрение и установка инструмента Grafana Faro для осуществления сбора данных мониторинга из Frontend приложений написанных на JavaScript. Также, перед непосредственным использованием Grafana Faro, выполним установку в кластере Kubernetes всех остальных необходимых компонентов Grafana стека.
Как мы управляем контейнерной платформой: история adidas о прошлом, настоящем и будущем
10 мая 2022 года компания adidas начала переводить конфигурацию своей платформы на GitOps. Спустя почти два года в блоге компании опубликовали цикл статей об эволюции контейнерной платформы adidas, которые мы перевели и объединили в один материал. В этих статьях инженер компании Анхель Баррера Санчес рассказал, как платформа adidas переходила на GitOps, а также что было до перехода, как они работают сейчас и какие у них планы.
Карты, деньги, ELK. Или как айтишник деньги считал
Привет, Хабр! Вот уже 7 с половиной лет я веду учет своих личных финансов в одном из многочисленных приложений. Всё это время оно неплохо закрывало базовые потребности в моменте, но с годами захотелось глубже проанализировать свою накопленную микро-бигдату и просмотреть на картину в целом. Желательно, в буквальном смысле: воспринимать информацию в виде визуализаций, диаграмм и дашбордов мне проще.
Поэксперементировав, я за несколько вечеров собрал себе решение на довольно нестандартной для таких целей платформе – Kibana. Как по мне, получилось неплохо. По горячим следам я описал этот кейс в своем англоязычном Твиттере и поделился им же в одном русскоязычном сообществе. Угадайте, откуда какой первый комментарий:
– А [зачем], собственно?
– Интересное решение! Я евангелист из Эластик – не хочешь на митапе выступить?
Выступить и правда было бы интересно. И в процессе подготовки презентации родилась эта статья. В ней я поделюсь своим опытом и подходом к личным финансам, расскажу о техническом стеке и воспроизведу по шагам процесс его трансформации. А также расскажу о том, как накопить и погасить технический долг, найти баланс, перестать беспокоиться и начать жить (но это не точно).
Истории
Почему ни в коем случае НЕ надо становиться DevOps инженером! Предостережения начинающим и совет что же делать если «НЕ»
Кто я такой, чтобы делиться своими суждениями и утверждениями? Мне почти 47, в сфере IT профессионально работаю около 25 лет, начав самообучение со школы, с папиного i386 с сопроцессором и модемного dial-up на зюхелях (ну... все же помнят.. да? ну да же? :-) Естественно, среди моего опыта и высшее образование, и технические сертификаты, и работа во множестве компаний самого разного масштаба и разных стран. Сейчас я обладаю как негативным, так и позитивным опытом в различных аспектах IT технологий, попробовав себя как в софте, так и в железе.
Этот опыт заставляет меня поделиться информацией из той самой негативной составляющей с целью предотвращения его повторения читателями. И да, тут будет много злобы и яда к тому дерьму тем технологиям, с которыми приходится работать каждый день DevOps и даже системным администраторам. Однако статья наполнена реализмом, а вовсе не пессимизмом! :-D В ней будет раскрыта вся голая правда про лично Ваше будущее как DevOps инженера!
AITU Military CTF 2024: История о том, как мой сон привел к поднятию киберполигона в стенах моего университета. Часть 1
Всем еще раз привет!
В данной статье будет рассказано, как мой сон на университетской лекции случайно, привел к череду событий, где я стал техническим организатором двух киберполигонов в стенах моего университета...
Cовместное использование GitHub Actions, Docker и GitHub NPMvPackage
В современном мире разработки программного обеспечения GitHub остается самой популярной платформой для хранения Git-репозиторий и управления ими. Помимо своей фундаментальной роли в управлении версиями, GitHub предлагает дополнительные функции, включая возможность размещения private NPM registry. Эта функция упрощает хранение и совместное использование JavaScript и TypeScript библиотек между проектами и командами, улучшая совместную работу и возможность повторного использования кода в вашей компании.
GitHub Actions позволяет автоматизировать задачи ваших проектов, такие как linter, sonar , запуск тестов, билд образов Docker, развертывание в различных средах и многое другое.
Говоря о Docker, общепринятой практикой является создание приложения, библиотеки или любого кода в определенном образе Docker (то есть сборка внутри Docker контейнера). В этом контейнере можно задать определенную версию Node, а также любые внешние ресурсы и библиотеки, необходимые в процессе сборки. Этот подход обеспечивает максимальное удобство, поскольку устраняет необходимость полагаться на конкретный ПК или виртуальную машину со всеми необходимыми настройками. Вместо этого вы можете один раз подготовить среду на уровне Docker и последовательно использовать ее на разных машинах и в разных средах, обеспечивая согласованность и воспроизводимость на протяжении всего процесса разработки.
Однако возникает проблема, когда вы пытаетесь создать свое приложение в Docker, и для этого требуется библиотека npm, хранящаяся в вашем частном реестре GitHub NPM. Более того, этот процесс должен быть осуществим в GitHub Actions. В этой статье я покажу вам процесс настройки, чтобы добиться этого без проблем!
Validating Admission Policy: Магия кастомных политик безопасности Kubernetes
Рассмотрим безобидную, на первый взгляд, ситуацию. Вы развернули новый кубернетес кластер, подключили сетку и стораджи, накатили мониторинги и квоты. Казалось бы, осталось нарезать неймспейсы и передать их в пользование коллегам в разработке. Однако, вы в курсе, что разработчики будут запускать команды через kubectl, а значит, по-хорошему, надо накинуть хотя бы "базовые" ограничения на их команды, ведь только так можно оградить себя от большинства проблем в процессе предстоящей эксплуатации кластера. ...Тем не менее, каким бы сложным действием ни казалась настройка кластера, если у вас есть некоторый запас времени, то милости прошу в краткое рассуждение о возможностях кубернетес контроллеров и практических способах применения Validating Admission Policy.
ИНСТРУКЪЦЫЯ ПО НАСТРОЙКЕ КУБЪ-КЛАСТЕРА
...
шаг 998 Подключите Validating Admission Policies
шаг 999 Отдайте, наконец, кластеръ в эксплуатацию
...
Как управлять Kubernetes с помощью Ansible
Делимся переводом статьи об интеграции Kubernetes и Ansible. Из статьи вы узнаете, как подготовить среду для работы, как развернуть кластер Kubernetes с помощью Ansible, как управлять ресурсами Kubernetes и автоматизировать обновления. Кроме того, вы узнаете, как развернуть плейбук Ansible в Kubernetes на облачном провайдере и использовать Ansible для CI/CD в Kubernetes.
Приглашаем на Cinimex Spring IT Talk в Самаре (офлайн/онлайн)
Привет, Хабр!
После майских праздников мы отправимся в Самару и проведем митап Spring IT Talk!
Встретимся с ИТ-комьюнити и в уютной атмосфере обсудим зоопарк технологий для DevOps-инженера, погрузимся в Kafka Streams и завершим IT-вечер темой преодоления стопперов в профессиональном развитии.
Деплой .NET приложений для самых маленьких. Часть 0
Давным-давно, когда Linux был ещё на ядре 2.6, а PHP5 был глотком свежего воздуха, я впервые заинтересовался миром веб-технологий. Читал учебники, статьи, зависал на форумах, но все равно мало мог понять как код, который я вижу на экране, превращается в волшебные сайты с кнопками, формами и анимациями. Узнал про LAMP и его аналоги для Windows, узнал, что, оказывается, есть хостинги, где такие сайты размещаются. Как только появился внешний интернет без трафика, я поспешил перенести свои локальные поделия во внешний мир, попутно узнав про замечательный протокол FTP. Просто мир волшебных открытий был для меня, особенно когда узнал, что не нужно писать свой форум с нуля, а можно использовать что-то из phpBB, vBulletin и других уже готовых движков.
И когда я много лет спустя переключился в мир .NET, перечисленные ранее умения сыграли со мной злую шутку – я долго не мог понять, как мне найти хостинг для .NET приложений. Почему все известные мне хостинги с лёгкостью предоставляли возможность развернуть PHP приложения, причём даже предлагая какие-то предустановленные версии CMS, но днём с огнём не сыщешь хостинг под .NET. Мое непонимание принципа развертывания приложений усугубляли статьи, которые предлагали их размещать в подходящих сервисах типа Heroku, Digital Ocean или Azure – ведь это так просто и дешево…
Поэтому предлагаю максимально подробно рассмотреть вопрос публикации .NET приложений в арендованном VPS.
Подводные грабли экспертных утилит при работе с инцидентами
Привет, Хабр!
Меня зовут Максим Суханов, я ведущий эксперт в команде CICADA8 Центра инноваций МТС Future Crew. Это подразделение отвечает, в том числе, за реагирование на инциденты кибербезпасности, форензику и реверс-инжиниринг вредоносного ПО. Ещё я занимаюсь другими интересными вещами, вроде немалварного реверса, например, файловых систем NTFS, FAT12/16/32, exFAT, реестра Windows и теневых копий.
Сегодня я расскажу о двух опасных типах ошибок DFIR-инструментов: когда использование утилиты приводит к отказу на целевом хосте и если инструмент выдаёт ошибочные, но ожидаемые результаты. Для подробностей заходите под кат.
Этот пост — текстовая версия выступления на конференции SOC-Форум 2023. Вот тут можно посмотреть запись этого доклада
Книга: «Podman в действии»
Пришло время обновить свой контейнерный движок! Менеджер контейнеров Podman обеспечивает гибкое управление слоями образов и полную совместимость с Kubernetes, а также дает возможность пользователям без прав администратора создавать, запускать непривилегированные контейнеры и управлять ими. OCI-совместимая поддержка Docker API позволяет перевести существующие контейнеры на Podman, не ломая свои скрипты и не меняя привычного порядка работы.
«Podman в действии» познакомит вас с менеджером контейнеров Podman. Простые объяснения и примеры позволят быстро разобраться с тем, что такое контейнеры, как они работают и как управлять ими. Вы получите глубокие знания об используемых Podman компонентах Linux и даже узнаете больше о Docker. Особенно ценны соображения автора Дэна Уолша по поводу безопасности контейнеров.
Для разработчиков и системных администраторов, имеющих опыт работы с Linux и Docker.
Ближайшие события
Упростить развертывание приложений в облаке — open source инструменты, которые помогут это сделать
C помощью cloud-сервисов можно решить множество задач бизнеса — например, организовать централизованное управление корпоративной ИТ-инфраструктурой, разместить клиентские приложения и обеспечить высокую доступность веб-ресурсов при пиковых нагрузках, сократить затраты на серверы и сетевое оборудование.
Но деплой в облаке — задача нетривиальная. Нужно подготовить код и среду, проверить работоспособность и доступность сервиса. Есть открытые решения, которые упрощают этот процесс. Некоторые из них уже набрали популярность — например, Piku и Dokku. Но мы решили поговорить о менее известных, но не менее интересных утилитах, позволяющих запустить коммерческие проекты и снизить расходы на администрирование: Kamal, Qovery, Cuber и MicroK8s.
Это база: нюансы работы с Redis. Часть 2, репликация
Всем привет, на связи Пётр, инженер компании Nixys. В прошлой статье мы разобрали основные концепции Redis. Теперь рассмотрим базовую репликацию Redis и настроим эту БД на высокий уровень отказоустойчивости.
От простого ИТ-ландшафта к единой платформе разработки: эволюция ИТ в Тинькофф
Создание внутренней платформы разработки — спасение для больших компаний во многих кейсах: помогает избавиться от «зоопарка технологий», унифицировать стандарты и подходы, обеспечить безопасность и стабильно улучшать ИТ внутри компании. Но создание единой платформы — результат эволюционного пути развития, и часто этот путь занимает десятки лет.
Обзор K8s LAN Party — сборника задач по поиску уязвимостей в кластере Kubernetes прямо в браузере
Я продолжаю тестировать инструменты, которые помогают научиться защищать кластеры Kubernetes. На этот раз взглянем на продукт от разработчиков из компании Wiz Research — Kubernetes LAN Party, челлендж по выполнению CTF-сценариев. Выход инструмента был приурочен к прошедшей в марте этого года конференции KubeCon EMEA 2024.
В статье я расскажу, зачем нужен этот инструмент, а также пройду все сценарии, которые предлагает K8s LAN Party, и напишу свое мнение о том, насколько это классный инструмент и кому он будет полезен.
Деплой с помощью github actions и пакетов
Гайд по настройке деплоя через ssh и docker контейнеры в github. Развертывать будем на сервер под управлением Ubuntu 23.04.
Как ELK довел нас… до Vector.dev и Clickhouse
Меня зовут Дима Синявский, я SRE-инженер в Vi.Tech — это IT-дочка ВсеИнструменты.ру. В этой статье расскажу я вам о том как мы развивались и с нами развивалась наша система логирования. Почему вам нужен Vector.dev + Clickhouse для хранения и когда это выгодно.
Когда компания была маленькой нам хватало и блокнота, чего сейчас уже не скажешь.
У нас 931 000 пайплайнов в месяц, 4 кластера Kubernetes: от 170 до 190 нод в каждом, и 200 ГБ логов ежедневно.
Измеряя качество: SLO и SLI для инфраструктурных команд
В последние годы перед инженерами нередко ставят задачу спроектировать SLI для тех компонентов, которые они поддерживают. Более или менее понятно, какие SLIs следует применять для пользовательских сервисов и как их рассчитывать. Однако для инфраструктурных команд попытка внедрить SLI сопряжена с рядом сложностей. Далее я расскажу несколько историй об этом и поделюсь выводами, к которым я пришел.