В серии из трех статей рассказываем о переходе с монолитной на микросервисную архитектуру. Разбираемся, когда и кому это действительно нужно, рассматриваем 7 миграционных шаблонов и самый больной вопрос: «Как быть с данными?».
DevOps *
Методология разработки программного обеспечения
Новости
Что Должно Быть в Каждом FirmWare Pепозитории
В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории безотносительно к конкретному проекту.
То есть перечислить самые универсальные и переносимые программные компоненты (кирпичики), которые могут пригодиться в практически любой сборке.
Размер имеет значение! Часть 2
Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса.
В данной части, обсудим как можно проверять размер в pull request, что позволит автоматизировать весь процесс обнаружения регрессии, до того как изменения попали в development.
Немного хардкора: как поднять Kubernetes на двух старых ноутбуках с Gentoo
Хочу рассказать об интересном эксперименте, суть которого заключалась в развертывании и настройке Kubernetes на двух старых ноутбуках — один из них, кроме того, был с процессором на архитектуре i386. В качестве теоретической основы использовалось руководство Kubernetes The Hard Way, которое по ходу дела пришлось немного доработать, а в качестве системы на хостах — Gentoo (да, вам не показалось). Давайте погрузимся в этот увлекательный хардкор!
Динамическое масштабирование кластеров Kubernetes в Airbnb
Введение
Важный аспект эксплуатации вычислительной инфраструктуры – гарантировать, что используемые облачные ресурсы автоматически масштабируются по мере необходимости, как вверх, так и вниз. Серьезные флуктуации трафика могут наблюдаться ежедневно, и поэтому «площадь» облака должна динамически масштабироваться сообразно этим флуктуациям.
Например, в Airbnb такое масштабирование обеспечивается при помощи Kubernetes. Это опенсорсная система оркестрации контейнеров. Также в Airbnb используется OneTouch, интерфейс конфигурации сервисов, являющийся надстройкой над Kubernetes и более подробно описанный в этом посте.
Здесь же мы поговорим о том, как динамически подбирать размеры кластеров, пользуясь Kubernetes Cluster Autoscaler, а также подчеркнем функционал, привнесенный компанией Airbnb в сообщество sig-autoscaling. Эти улучшения способствуют настраиваемости и гибкости, а эти качества очень важны для выполнения уникальных бизнес-требований, предъявляемых в Airbnb.
Apache Kafka в цепочке поставок в пищепроме и ритейле
Цепочка поставок в пищевой промышленности и ритейле — это сложная, медленная и ненадёжная система. В этой статье мы рассмотрим развёртывание Apache Kafka для обработки данных в реальном времени в таких сферах, как производство, логистика, розничная торговля, доставка, рестораны и другие части бизнеса. Это будут примеры из настоящих компаний: Walmart, Albertsons, Instacart, Domino’s Pizza, Migros и т. д.
Everything Bagel, часть II: версионные таблицы озера данных в lakeFS и Trino
Команда VK Cloud уже переводила статью о том, как развернуть локальный стек данных с помощью инструмента Everything Bagel. Теперь переводим вторую часть, в которой на практике разбираем, как выполнять запросы к разветвленным данным lakeFS через механизм распределенных запросов Trino.
«Папа, а кем ты работаешь?» Рассказываем про Kubernetes простым языком
Этот комикс – видение DevOps-команды «Онланты» Иллюстрированного детского путеводителя по Kubernetes от Cloud Native. На примере маленького приложения Фиппи разбираемся, что такое Kubernetes и в чем особенности этой технологии.
Встречайте новую главную героиню и внимательно следите за ее путешествием!
Frontend в условиях полной редактируемости
В этой статье мы расскажем подробно про систему поблочной сборки и подводные “камни” реализации подобной системы под «1С-Битрикс» для frontend-разработчиков.
Блочная редактируемость
Нам требовалось разработать сайт на базе CMS «1С-Битрикс: Управление сайтом» и при этом предоставить контент-менеджерам полную власть над страницами и их содержимым. Контент-менеджеры \читай не разработчики\ должны иметь возможность собирать страницы из заранее созданных блоков, определять порядок этих блоков на странице, управлять настройками дополнительного визуального оформления для каждого из блоков и редактировать контент в рамках поддерживаемых типов данных. И всё это управляется через визуальный редактор Битрикса без необходимости вручную создавать новый инфоблок для каждого блока на странице. Такую систему можно назвать “Блочная редактируемость”.
Grafana OnCall — Open Source хаб для алертов и инцидентов
Привет, хабр! С удивлением обнаружил, что здесь нет ни одного упоминания Grafana OnCall, Incident Response Tool с открытым исходным кодом от Grafana Labs. И это нужно исправлять, ведь мы бурно растем как по звездочкам на гитхабе, так и как часть Grafana Cloud, а в issues на гитхабе, в основном, встречаются техлиды из FAANG.
Если кратко, OnCall — это инструмент, который поможет организовать надежные оповещения/реагирование на инциденты в команде, соблюдать SLA и не просыпаться ночью от звонков.
Простой CI/CD на Ansible Semaphore
CI/CD стал неотъемлемой частью процесса разработки ПО, как в крупных, так и в небольших компаниях и проектах, в том числе open source.
Самыми популярными CI/CD-системами является GitLab и Jenkins. Обе эти системы являются мощными, расширяемыми и включают множество дополнительных возможностей. С помощью этих систем можно построить CI/CD любой сложности.
Но часто бывает, что что нужно максимально простое и прямолинейное решение, а не функциональность.
В этом случае Ansible Semaphore это то что нужно.
10 рекомендаций по работе с Ansible
Ansible — топовое решение для управления парком геораспределенных серверов и позволяет конфигурировать нужные состояния с помощью кода. Но даже несмотря на популярность решения, в том числе среди российских разработчиков, не все знают, как оптимизировать работу с этим инструментом, из-за чего вынуждены работать с «костылями».
Делимся советами, как «выжать» из Ansible по-максимуму, не сталкиваясь с проблемами.
Как настроить CI в мобильных приложениях
Приветствую! Меня зовут Алексей Денискин, я тимлид мобильной команды СберМаркета. В этой статье я на примере покажу, как организовать CI для мобильных приложений на Android и iOS. Я буду использовать GitLab CI, но описанный подход применим к большинству стандартных стеков.
Немного про Infrastructure as Code в VMmanager и про ценности для IT-отделов и всей компании
Привет, Хабр! Недавно мы выпустили новую функциональность в продукте VMmanager — интеграцию с Terraform и Swagger для работы в рамках концепции Infrastructure as Code.
В этой статье я хочу крупноуровнево рассказать о таком подходе, немного раскрыть составляющие нашей интеграции и представить пример решения такой задачи в VMmanager.
Как внести Хаос в свой кластер k8s, и почему гении властвуют над Хаосом?
Кто-нибудь из вас когда-нибудь слышал о теории “Чёрный лебедь”? Если говорить вкратце, то данная теория рассматривает труднопрогнозируемые события, которые несут за собой огромные последствия для всей системы. К примеру, ваш кластер k8s располагается в ДЦ в конкретно взятом регионе. Всё было прекрасно, но с берега пришло цунами и его затопило, вследствие чего все сервера стали недоступны и ваше приложение не работает. Так кто же в этом будет виноват? Карма? Подводные землетрясения? Ответ прост - вы сами.
Экономим на Azure SQL Databases
Всем привет! В данной статье я расскажу о том, как наша компания смогла сэкономить за счет внедрения Azure SQL Elastic Pool. Дополнительно будут примеры Azure REST API для энумерации SQL Servers, для энумерации SQL databases и для получения метрик.
Самые пытливые в конце статьи узнают сэкономленную величину. Здесь исходники
Миграция приложения из Docker Compose в Kubernetes. Как, зачем и с какими проблемами я столкнулся
Зачастую, приложение, у которого происходит существенный рост пользователей оказывается не готово к этому. Требования к быстродействию и доступности растут, а инфраструктура и архитектура приложения не позволяют их обеспечить.
Стоявшая передо мной задача: улучшить инфраструктуру и качество работы приложения, успевшего вырасти из MVP и стенда для одного клиента в популярный SaaS. Отсутствие отказоустойчивости и масштабируемости компонентов сервиса начало ощутимо мешать пользователям. Настала пора адаптировать приложение под кластерный режим.
Приложение работало в контейнерах, а оркестрация осуществлялась с помощью Docker Compose. Компоненты приложения не задумывались готовыми к запуску в кластерном режиме, что, разумеется, нормальная ситуация для раннего этапа многих проектов: бизнес требует быстрой доставки новых функций, и на преждевременную оптимизацию не всегда можно и нужно тратить время. Но в какой-то момент именно стабильность и быстродействие становятся самыми важными функциями.
Каково мигрировать приложение с уже сформированным техническим стеком и базой пользователей? Какие есть варианты решения, подводные камни? Как оценить есть ли смысл в таких трудозатратах? В этой статье я поделюсь своим опытом переноса приложения из Docker Compose в Kubernetes.
Размер имеет значение! Часть 1
Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса. В данной части, обсудим как можно легко проверять размер в development ветке.
Все внедрили DevOps? Не забудьте про Shift Left Security
Про Shift Left вы наверняка знаете — в контексте DevOps или QA об этом часто пишут. А что за зверь такой — Shift Left Security (SLS)? Вроде новый термин, свежий, «хайповый»? Отнюдь, концепция смещения влево процессов безопасности появилась вместе с DevOps. И они друг от друга неотделимы. Процессы идут в контексте исторического развития, а подтверждение этому — отчеты и документация, например, GitLab. Попробую доказать это утверждение.
5 типичных ошибок при использовании Apache Kafka
Даже если у вас большой опыт работы с Apache Kafka, время от времени наверняка случается зайти в тупик. Например, когда вы конфигурируете и изучаете клиенты или настраиваете и отслеживаете брокеры. Попробуй за всем уследить, когда в конвейере Kafka столько компонентов. В этой статье описано пять частых ошибок и советы по тому, как их избежать на всех этапах — от конфигурирования клиентов и брокеров до планирования и мониторинга. Эти рекомендации сэкономят вам время и силы.