Как стать автором
Обновить
203.61
Рейтинг

DevOps *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Как мы в Сбере формировали сообщество практики по автоматизации DevOps CI/CD

Блог компании Сбер Управление сообществом *DevOps *

Привет, Хабр!

Сегодня мы расскажем о том, как подходили к созданию сообщества практики по автоматизации DevOps CI/CD в Сбере. Рассмотрим предпосылки, методологии и лучший мировой опыт, который использовали, а также ключевые проблемы и ошибки. В этой статье опытом делится Рашид Галиев – руководитель группы развития методологии DevOps и внедрения инженерных практик CI/CD, эксперт команды ядра сообщества DevOps в Сбере.

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

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

Как я написал свой ChatOps: опыт выпускника курса по Python

Блог компании Southbridge Python *Программирование *DevOps *Kubernetes *

DevOps-инженер Константин Кулишов рассказал, как создал свой ChatOps, чтобы дать разработчикам возможность вносить изменения в проект в любое время. Константин выложил ChatOps на GitHub и подробно описал процесс создания.

Читать статью
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 894
Комментарии 0

Linux Page Cache для SRE: основные файловые операции и syscall'ы (часть 1)

Высокая производительность *Системное администрирование *Системное программирование *Разработка под Linux *DevOps *
Перевод

В этой серии постов я хотел бы поговорить о Linux Page Cache. Я считаю, что данные знания теори и инструментов жизненно необходимы и важны для каждого SRE. Общее понимание как работает Page Cache помогает и в рутинных повседневных задачах, и в экстренной отладке на продакшене. При этом Page Cache часто оставляют без внимания, а ведь его лучшее понимание. как правило, приводит к:

- более точному планированию емкости системы и лимитов сервисов и контейнеров;
- улучшенным навыкам отладки приложений, интенсивно использующих память и диски (СУБД и храанилища данных);
- созданию безопасных и предсказуемых сред выполнения специальных задач, связанных с памятью и/или вводом-выводом (например: сценарии резервного копирования и восстановления, rsyncоднострочники и т.д.).

Я покажу, какие утилиты вы можете использовать, когда имеете дело с задачами и проблемами, связанными с Page Cache, как правильно к ним подходить, и как понять реальное использование памяти.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 3K
Комментарии 9

Serverless хранение файлов с AWS lambda

Python *Amazon Web Services *API *DevOps *
Tutorial

Добрый день, сегодня мы развернем serverless инфраструктуру на базе AWS lambda для загрузки изображений (или любых файлов) с хранением в приватном AWS S3 bucket. Использовать мы будем terraform скрипты, залитые и доступные в моем репозитории kompotkot/hatchery на GitHub.

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

В целях упрощения мы воспользуемся функционалом Bugout.dev Resources, в нашем примере выполняющий функцию удаленной базы данных для хранения записей о принадлежности файла к заметки.

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

SaltStack — Темная лошадка систем управления конфигурациями

DevOps *

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

Это мое личное мнение основанное на десятке лет работы с различными системами конфигураций и двухлетнего периода миграции 200+ ролей с Ansible на SaltStack.

Сотни статей уже было написано про сравнение таких систем как Puppet, Chef, Ansible и SaltStack. У каждой из них есть своя ниша и серебряной пули не существует. Эта статья не ставит целью сделать очередное сравнение, которое устареет через ~6 месяцев. Мне скорее хочется показать вам несколько фундаментальных отличий между этими системами.

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

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

Сборка образа Windows Server 2019 с обновлениями c помощью packer и ansible в Yandex Cloud

Системное администрирование *DevOps *

Зачем собирать образ с помощью Packer?


  1. Время создания инстанса из готового образа значительно меньше, чем время, которое нужно затратить с нуля на подготовку виртуальной машины к работе. Это достаточно критичный момент, так как порой очень важно ввести в работу новый инстанс нужного типа за кратчайшее время для того, чтобы начать пускать на него трафик.
  2. Помимо того что образ виртуальной машины для DEV, TEST, Staging окружений, он всегда будет соответствовать по набору ПО и его настройкам тому серверу, который используется в production. Важность этого момента трудно недооценить — крайне желательно, чтобы деплой нового кода на продакшн привел к тому, чтобы сайт продолжал корректную работу с новой функциональностью, а не упал из-за какой-то ошибки, связанной с недостающим модулем или отсутствующим ПО.
  3. Автоматизация сборки production- и development-окружений экономит время системного администратора. В глазах работодателя это также должно быть несомненным плюсом, так как это означает, что за то же время администратор сможет выполнить больший объем работы.
  4. Время для тестирования набора ПО, его версий, его настроек. Когда мы подготавливаем новый образ заранее, у нас есть возможность (и, что самое главное, время!) для того, чтобы спокойно и вдумчиво проанализировать различные ошибки, которые возникли при сборке образа, и исправить их. Также есть время для тестирования работы приложения на собранном образе и внесения каких-то настроек для оптимизации приложений. В случае же, если мы настраиваем инстанс, который нужно было ввести в работу еще вчера, все возникающие ошибки, как правило, исправляются по факту их возникновения уже на работающей системе — конечно же, это не совсем правильный подход.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.7K
Комментарии 4

Опыт работы с Apache Kafka: интервью с inDriver

Блог компании Southbridge Программирование *IT-инфраструктура *Apache *DevOps *

DevOps-инженеры компании inDriver Радик Сейфуллин и Александр Плотников распилили старое монолитное приложение и создают новое, а Евгений Бутырин, технический редактор Слёрма, пообщался с ребятами об этом: опыте с Kafka, проблемах, решениях и обучении. 

Читать интервью
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 2.5K
Комментарии 0

DAM. Как работать с docker на суше, а не в облаке

DevOps *

В статье хочу познакомить читателя с идеей, что образы docker - это такие же простые приложения, как apt пакеты. А утилита DAM (Docker Application Manager) - пример их пакетного менеджера.

Статья может быть полезна:
- тем, кто работает с docker на автономных системах или с ограниченным доступом к интернет;
- кому нравится идея - один пакетный менеджер для разных архитектур и операционок;
- кто пробует запихать свое легаси с linux дистрибутива в контейнеры и контролировать его обновление;
- или интересна тому, кто просто проектирует микросервисные архитектуры

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

Взаимное автоматическое распечатывание двух Vault кластеров в Kubernetes

Блог компании Nixys Системное администрирование *IT-инфраструктура *IT-стандарты *DevOps *
Перевод

Введение


Когда я устанавливаю Vault в Kubernetes, я держу в голове, что очень важно иметь возможность сделать автоматическое распечатывание(Auto-Unseal), чтобы кластер Vault был по настоящему высокодоступным.


В моей предыдущей статье "Highly available Vault cluster in Kubernetes" (ссылка), несмотря на то, что я изо всех сил пытался сделать кластер Vault максимально доступным, без автоматического распечатывания кластер Vault мог бы выдержать частичный отказ подов, но не пережил бы перезагрузку всего кластера.


В этой статье хорошо объяснено, почему это произошло. Для меня проблема заключается в том, что я не пользуюсь "службой AWS KMS", которую можно было бы использовать, или подобной службы безопасности от "облачного" провайдера, потому что я управляю Kubernetes на self-hosted "облаке" (в этой статье объясняется моя настройка).


В Vault версии 1.1 добавлена поддержка "Transit Auto Unseal", которая заключается в использовании второго Vault кластера B для автоматического распечатывания (Auto-Unseal) кластера А.


Итак, вот идея: развернуть 2 кластера Vault A и B и настроить их так, чтобы они делали автоматическое распечатывание друг для друга.

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 922
Комментарии 1

Многоконсольный вывод для Python

Open source *Python *Отладка *DevOps *
Из песочницы

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

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

Для этого используют обычный print() но по стандарту ограничен одной консолью, или loggin() но его нужно относительно дольше настраивать, чем проект console-debugger, по причине того что нужно указывать файл, стиль вывода даны в файл, рейтинг обработки, в ручную запускать слежение за файлом, в ручную закрывать слежение за файлом, когда вам больше не нужен обработчик.

Я понимаю плюсы лорнирования но они не подходят для дебаггинга ...

Вариант программы для отладки Python
Всего голосов 8: ↑4 и ↓4 0
Просмотры 5K
Комментарии 22

CI/CD для Dynamics CRM на базе Azure DevOps. Часть 2. Continuous Deployment

.NET *CRM-системы *Microsoft Azure DevOps *

В прошлой статье я рассказал как собрать CI часть пайплайна непрерывной поставки CI/CD на базе Azure DevOps Pipelines для Microsoft Dynamics CRM. Сегодня же поговорим о CD (Continuous Deployment) части.

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 733
Комментарии 0

Чек-лист хороших инженерных практик в компаниях

Блог компании Хекслет Программирование *Тестирование веб-сервисов *DevOps *

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

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

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

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 7.5K
Комментарии 8

48 полноценных бесплатных книг для программистов (happy developer's day)

Open source *Программирование *.NET *Читальный зал DevOps *
Tutorial

Привет, Хабр! Немного запоздало (ко дню программиста) делюсь подборкой бесплатных книг по программированию. Все они полезные, уровень скорее профессиональный, хотя и для развития от базового тоже подойдет, но, к сожалению, на английском. Среди тем книг: .NET, Алгоритмы, Android, iOS, Angular, C, C++, C#, JS, Linux, Python. В целом, найдется почти любая тема, которая приходит в голову.

Дисклеймер. Все эти книги взяты с одного ресурса, который существует за счет донейшенов. Получить книги можно без осуществления донейшенов, ресурс полностью бесплатный, пожертвования опциональны. Все книги написаны на основе контента со StackOverflow и являются код-ориентированными. Книги со временем обновляются. По ссылкам -- книги, актуальные на 15.09.2021.

Читать далее
Всего голосов 98: ↑97 и ↓1 +96
Просмотры 50K
Комментарии 54

Обзор фреймворка cdk8s для «программирования» Kubernetes-манифестов

Блог компании Флант Системное администрирование *DevOps *Kubernetes *

Kubernetes стал стандартом для запуска микросервисных (и не только) приложений. Компании разных размеров — от стартапов до enterprise — стараются проектировать свои приложения готовыми для запуска в Kubernetes-кластере.

А для запуска приложения в K8s обычно используют Helm-шаблоны с описанием манифестов. Хотя формат шаблонов легко читается и прост в изучении, он может вызвать определенные сложности, когда логика деплоя приложения разрастается, когда создаются дополнительные тестовые контуры (с деплоем только отдельных частей приложения) и т.д. При активном использовании Go-шаблонов рефакторинг манифестов может превратиться в нетривиальную задачу*.

Что делать, если у разработчиков нет времени разбираться со всеми тонкостями Helm-шаблонов, синтаксисом YAML и Go templates, но нужно запустить приложение в Kubernetes? Ответом на этот вопрос может стать использование cdk8s.

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

DevSecOps — когда «инфраструктура как код» встречается с «безопасностью как код»

Блог компании OTUS DevOps *
Перевод

Если вы, как и я, отвечаете за успешный запуск критически важных приложений, помогающих бизнесу быть на передовой в цифровой трансформации, то, несомненно, поймете, о чем пойдет речь в этой статье. Для руководства такой миссией, помимо навыков проектирования архитектуры, требуются также навыки менторинга и управления инженерными ресурсами, а также контроль работы бизнес-аналитиков, выявляющих требования. Эти навыки в значительной степени детерминированы и управляемы по сравнению с другими, необходимыми для обеспечения надежной и безопасной работы приложений. Из-за этого разработчиков часто противопоставляют администраторам инфраструктуры и специалистам по информационной безопасности, считая их "последней миле" на пути к запуску приложения. Но у администраторов и "безопасников" возникают следующие проблемы:

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.4K
Комментарии 2

Exec-пробы: история про эксперимент и свежие грабли

Блог компании Netcracker Программирование *Go *DevOps *Kubernetes *

Мы активно деплоим свои приложения в Kubernetes и используем HTTP-пробы для сервисов. Однако решили провести эксперимент с exec-пробами и… положили на лопатки кластер! Как так? Ведь именно exec пробы первыми описываются во всех руководствах и книгах по Kubernetes, включая официальные! Что же не так?

Вот вам свежая информация о граблях, которая может вас уберечь от потенциальных проблем и необдуманных решений. А в конце статьи – что же не так с HTTP-пробами и зачем мы вообще экспериментировали с exec-ом.

Так где подвох? →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 2.3K
Комментарии 9

Настройка AWS Auto Scaling Group (ASG) на основе использования оперативной памяти

Блог компании EPAM Amazon Web Services *DevOps *

Всем привет!

Сегодня я хотел бы поделиться опытом настройки AWS Auto Scaling Group (ASG) на основе использования оперативной памяти (RAM).

Всё началось с того, что на одном из проектов нам понадобилось настроить масштабирование EC2-инстансов по использованию памяти, а стандартный ASG Target Tracking Scaling Policy позволяет создавать политики только на основе следующих метрик: среднее использование ЦПУ, средний входящий или исходящий сетевой траффик и количество запросов на цель ALB...

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

Экосистема ваших Big Data-кластеров из решении Apache в Docker-контейнерах на Linux-машинах

Open source *Big Data *DevOps *Hadoop *Data Engineering *

Недавно в своей работе начал практиковаться с Hadoop, Spark и Hive от Apache на примере организации распределенного хранилища данных в крупном и сложном проекте. Так как я хорошо дружу с Linux и вселенной Docker, только одна команда позволит не мучиться с лишней установкой Big Data-решении от Apache, не нагружая при этом свою Linux-машину(при наличии Docker и Docker-Compose).

Читать далее
Всего голосов 5: ↑0 и ↓5 -5
Просмотры 1.4K
Комментарии 7

HTTP/3 от А до Я: основные концепции. Часть 1

Блог компании Southbridge Высокая производительность *Разработка веб-сайтов *Серверное администрирование *DevOps *
Перевод

image
Фото Florencia Viadana, Unsplash.com


После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?

Читать дальше →
Всего голосов 83: ↑82 и ↓1 +81
Просмотры 22K
Комментарии 36

Grafana as code, или как я перестал кликать мышкой в UI и полюбил grafonnet

Блог компании Mail.ru Group DevOps *Tarantool *
Tutorial

Когда мы в Tarantool столкнулись с задачей настройки мониторинга для сдачи проекта заказчику, мы решили её с помощью grafonnet. Это библиотека для написания дашбордов Grafana с помощью кода на языке jsonnet, которая заметно облегчила нам жизнь.


Рассказ поделён на две части. В первой я делюсь нашей историей знакомства с grafonnet, причинами, по которым мы выбрали этот инструмент, и задачами, которые мы решили с его помощью. Вторая представляет собой пошаговое обучение написанию простого дашборда для Prometheus. Так что если ситуации, описанные мной в первой половине статьи, покажутся вам знакомыми, вторая позволит вам совершить первый шаг на пути к их разрешению.


Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 8.9K
Комментарии 6

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