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

DevOps *

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

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

RPM-репозиторий — своими руками

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

Итак, начнём.


При внедрении DevOps-процесса в компании одним из возможных вариантов хранилища артефактов сборки может стать rpm-репозиторий. По существу — это просто веб-сервер, раздающий определённым образом организованное содержимое. Есть, конечно, коммерческие варианты maven-репозиториев, которые имеют плагины для поддержки rpm, но мы же не ищем лёгких путей?


image


Задача


Написать сервис, который будет принимать готовые rpm-пакеты по протоколу HTTP, парсить их метаданные, раскладывать файлы пакетов по каталогам в соответствии с внутренней структурой репозитория и обновлять метаданные репозитория после обработки очередного пакета. Что из этого получилось — описано под катом.

Читать дальше →

Cloud Fabric: как SDN помогает IT более гибко реагировать на изменения

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

Cloud Fabric: как SDN помогает IT более гибко реагировать на изменения



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

  • Гибкость: высокая масштабируемость облачных сервисов и каналы для передачи больших данных (Big Data).
  • Упрощение процессов: облачное решение для сети Huawei в 10 раз ускоряет активацию облачных сервисов.
  • Открытость: упрощение облачных вычислений за счет бесшовного подключения к основным облачным платформам.

SDN-решение Cloud Fabric содержит два основных компонента: серию коммутаторов для ЦОД Huawei CloudEngine и Agile Controller.

Решение использует открытую сервис-ориентированную архитектуру для централизованного назначения информационно-вычислительных ресурсов через Agile Controller и облачную платформу, построенную с учетом специфических требований к сервисам. Agile Controller может подключаться к различным облачным платформам ведущих поставщиков для формирования облачной сети, ориентированной на приложения. Облачная платформа может использоваться для унифицированного распределения сетевых, вычислительных и дисковых ресурсов.
Читать дальше →

Продвинутое конфигурирование Docker Compose (перевод)

Время на прочтение5 мин
Количество просмотров163K
Docker Compose обладает целым рядом нетривиальных способов применения, которые мы рассмотрим в этой заметке. Это очередной перевод статьи, которую мы разбирали при подготовке материалов нашего курса Python для Web-разработки.



Контроль порядка запуска


Docker Compose запускает контейнеры в порядке зависимостей, используя опцию depends_on, чтобы указывать, когда запускается сервис. Для определения порядка запуска Compose применяет depends_on, links, volumes_from и network_mode: «service: ...».

Если контейнер должен дождаться состояния “ready” другого контейнера, можно использовать инструменты wait-for-it или dockerize. Они будут проверять хосты и порты до тех пор, пока TCP соединение не будет подтверждено. Для включения принудительного ожидания в композицию необходимо добавить entrypoint:

version: '2'

services:
    web:
        build: .
        ports:
            - "80:8000"
        depends_on:
            - db
        entrypoint: "./wait-for-it.sh db:5432"
    db:
        image: postgres

Вы всегда можете самостоятельно написать скрипт-обёртку, если возникнет необходимость в усилении контроля.
Читать дальше →

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

Время на прочтение7 мин
Количество просмотров384K
Всегда хотелось познакомиться с облачными сервисами, но на моих работах они либо не использовались, либо не в моём отделе. Платить свои деньги не очень хотелось за такое знакомство, да и всё это казалось довольно сложным. Куча разных тарифов, что-то бесплатно, что-то платно. Но на самом деле каждый может разобраться с этим и самое главное легко. Настолько легко, что вы просто обязаны получить свой собственный бесплатный облачный сервер прямо сейчас. Осталось только выбрать какой.

Статья будет полезна тем, кто ещё не пользовался облачными серверами.


Читать дальше →

Основы Docker за Х часов и Y дней

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

0. Вступление


Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.
Читать дальше →

Обеспечение сетевой безопасности в кластере Kubernetes

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

Сетевые политики (Network Policies) — это новая функциональность Kubernetes, которая за счет создания брандмауэров позволяет настроить сетевое взаимодействие между группами подов и других узлов сети. В этом руководстве я постараюсь объяснить особенности, не описанные в официальной документации по сетевым политикам Kubernetes.


Функциональность сетевых политик стабилизировалась в Kubernetes 1.7. В этой статье их работа объясняется в теории и на практике. При желании вы можете сразу перейти к репозиторию с примерами kubernetes-networkpolicy-tutorial или к документации.

Читать дальше →

Ansible Dynamic Inventory из DNS или как растрачивать время на поиски стандартов

Время на прочтение6 мин
Количество просмотров6.9K
Эта статья о неудаче, создана для того чтобы продемонстрировать как полезно рассказывать о неудачах. Надеюсь она изменит результат на успех благодаря комментариям.

Как это обычно бывает, появляется новая задача, вы её обдумываете и останавливаетесь на каком то решении. Дальше, это решение необходимо воплотить в жизнь и вот тут то начинается самое интересное…

Передо мной встала большая задача перевести инфраструктуру компании и её проектов на автоматизированное управление. Впоследствии длительной мозговой деятельности, было последовательно выбрано использовать ansible и как веб интерфейс к нему jenkins. По мере понимания всех бизнес-процессов и системы работы серверов и сервисов, я уже чётко видел всю картину IaC (Infrastructure as Сode — инфраструктура как код). После пилотных плейбуков и ролей пора было начинать частичное внедрение, для ансибл есть замечательная возможность динамически собирать списки серверов которыми нам требуется управлять. Для хранения большого числа серверов и всех необходимых переменных для них решил на первых этапах использовать наши собственные ДНС серверы почерпнув идею у badoo(чтоб вам икалось ребята).

Когда вы хотели как лучше, а получилось как всегда. Вперёд, вниз в глубины гугловых дебрей.
Читать дальше →

Шпаргалка с командами Docker

Время на прочтение5 мин
Количество просмотров801K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →

DNS-запись CAA. Зачем нужна и как использовать?

Время на прочтение3 мин
Количество просмотров51K
CAA (Certification Authority Authorization) — это новый тип DNS-записи, предназначенный для определения центров сертификации, которым разрешен выпуск SSL/TLS-сертификатов для определенного доменного имени или субдомена.

Крупнейшие и наиболее популярные центры сертификации договорились, что начиная с 8 сентября 2017 года в обязательном порядке строго следовать инструкциям, указанным в CAA-записях доменного имени или субдомена для которого запрашивается выпуск сертификата.

Использование CAA-записи позволит повысить уровень безопасности в сети Интернет и сократить случаи неавторизованного получения сертификатов для сторонних доменных имен.

Я подготовил подробную инструкцию, которая разъясняет возможности CAA-записи и формат ее использования.
Читать дальше →

В разрезе: новостной агрегатор на Android с бэкендом. Система мониторинга и визуализации данных (InfluxDB, Grafana)

Время на прочтение9 мин
Количество просмотров8.8K
Вводная часть (со ссылками на все статьи)

Сложные системы (распределённые/крупные/со сложной логикой/сложной системой данных) – как живой организм: подвижный, изменчивый и самостоятельный. Всё это требует постоянного контроля со стороны разработчиков/администраторов/DevOps-инженеров.

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

Обо всём по порядку…
Читать дальше →

Helm secrets — недостающая часть Kubernetes

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


В этой статье я расскажу о том, как мы управляем секретами в Kubernetes-инфраструктуре BaseCRM.


Наша цель — использование Helm Charts в Kubernetes-кластерах BaseCRM с минимальными усилиями, подразумевающими управление лишь значениями параметров и секретами. В Helm или Kubernetes нет официального инструмента управления секретами, и мы решили это исправить.

Читать дальше →

Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки

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


В августе Яндекс.Деньги провели митап Jiramania. На нем разработчики и администраторы рассказали про отмычки и ноу-хау по работе с Jira.


Помимо неспешных бесед за кофе и круассанами, Гончик Цымжитов из ITIVITI поделился перцовыми пластырями от боли обновления Jira. После чего на сцену вышел Вадим Гаузяк из СберТеха с результатами своего исследования дедлока в agile-плагине Jira 7.


Но хватит интриг — под катом вы найдете оба доклада.

Практика с dapp. Часть 2. Деплой Docker-образов в Kubernetes с помощью Helm

Время на прочтение13 мин
Количество просмотров17K
dapp — наша Open Source-утилита, помогающая DevOps-инженерам сопровождать процессы CI/CD (Обновлено 13 августа 2019 г.: в настоящее время проект dapp переименован в werf, его код полностью переписан на Go, а документация значительно улучшена) (подробнее о ней читайте в анонсе). В документации к ней приведён пример сборки простого приложения, а подробнее этот процесс (с демонстрацией основных возможностей dapp) был представлен в первой части статьи. Теперь, на основе того же простого приложения, покажу, как dapp работает с кластером Kubernetes.

Читать дальше →

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

Эволюция DevOps

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

Эта статья посвящена эволюции разработки и администрирования, и определению собственной позиции во всеобщей картине всего. Статья вдохновлена слайдами Marc Hornbeek, но имеет к ним опосредованное отношение. Для широкого круга хаброжителей (опсов, девов и девопсов).

Читать дальше →

Nginx в работе DevOps/Администратора. Тёмная сторона силы

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

В работе DevOps/Администраторов зачастую возникают моменты, в которые необходимо куда-то кому-то срочно предоставить доступ. Будь то инстанс докера, один из многочисленных контейнеров или какой-то внутренний сервис.


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

Читать дальше →

Nodebackup — сохранение данных из контейнеров (докер) и так-же остальных

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



Это рассказ про самописнный велосипед, которым я постарался выполнить главный завет системного администратора — чтобы всё работало, но я ничего не делал. )

Читать дальше →

Истории успеха Kubernetes в production. Часть 3: GitHub

Время на прочтение6 мин
Количество просмотров15K
Продолжаем рассказывать об успешных примерах использования Kubernetes в production. Новый кейс — совсем свежий. Подробная информация о нём появилась только вчера. А что ещё более значимо, речь пойдёт про крупный онлайн-сервис, с которым наверняка так или иначе работает каждый читатель хабры, — GitHub.

Kubernetes на голом железе за 10 минут

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


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


По ходу этой статьи мы установим Kubernetes 1.6 на реальную (не виртуальную) машину под управлением Ubuntu 16.04 примерно за 10 минут. В результате у вас появится возможность начать изучать взаимодействие с Kubernetes посредством его CLI kubectl.
Читать дальше →

В разрезе: новостной агрегатор на Android с бэкендом. Система контроля конфигураций (Puppet)

Время на прочтение13 мин
Количество просмотров2.2K
Вводная часть (со ссылками на все статьи)

В ITIL (v3) среди описанных процессов есть 2 особенно интересных: «Процесс управления конфигурациями» и «Процесс управления изменениями», предназначенных для анализа и управления изменениями конфигураций систем. Для продолжения повествования нужно определиться, что такое «система». В это понятие входит огромное количество составляющих, влияющих (прямо или косвенно) на предоставление услуги:

  • серверы

    • настройки безопасности (пользователи, группы, права, межсетевые экраны);
    • установленные приложения и библиотеки;
    • настройки работы приложений (лимиты по дискрипторам, памяти, времени CPU и т.д.);
    • резервное копирование;

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

Пытаться минимизировать контур системы вашего проекта (тип, резервное копирование не относится к функционированию системы) – значит рыть себе яму, в которую рано или поздно вы провалитесь.
Читать дальше →

Как на самом деле работает планировщик Kubernetes?

Время на прочтение8 мин
Количество просмотров19K
Прим. перев.: Эта статья написана Julia Evans — инженером международной компании Stripe, специализирующейся на интернет-платежах. Разбираться во внутренностях работы планировщика Kubernetes её побудил периодически возникающий баг с «зависанием» пода, о котором около месяца назад также сообщили специалисты из Rancher Labs (issue 49314). Проблема была решена и позволила поделиться деталями о техническом устройстве одного из базовых механизмов Kubernetes, которые и представлены в этом статье с необходимыми выдержками из соответствующего кода проекта.



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

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