Обновить
256K+

DevOps *

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

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

Альтернативный оркестратор nomad на десктопе

Время на прочтение4 мин
Охват и читатели17K
В настоящее время оркестрация контейнеров ассоциируется в первую очередь с kubernetes. Но это не единственный возможный выбор. Есть и альтернативные средства оркестрации, например nomad, разработчик HashiCorp (хорошо известный как разработчик средства виртуализации Vagrant).

Осваивать работу с средствами оркестрации как правило сложно, т.к. не у всех имеется доступ к инфраструктуре из нескольких серверов с рутовым доступом, поэтому, в предыдущем посте
Разворачиваем Kubernetes на десктопе за несколько минут с MicroK8s был описан процесс разворачивания среды Kubernetes на десктопе на примере веб-приложения Django. Первоначально я планировал в продолжении описать разворачивание базы данных в среде MicroK8s. Но потом подумал, чтоб будет интересно продолжить работу с не менее удобным средством оркестрации nomad. Я не буду давать даже намека на сравнение разных систем оркестрации. Единственное замечу для тех кто сомневается, что nomad установить еще проще чем MicroK8s, т.к. для этого нужно просто скопировать два исполняемых файла (nomad и consul) с сервера разработчика.
Читать дальше →

Паттерны и анти-паттерны CI/CD. Часть 1

Время на прочтение4 мин
Охват и читатели16K
Всем привет! Друзья, в последний день зимы у нас запустится новый поток по курсу «DevOps практики и инструменты». В преддверии старта курса делимся с вами первой частью статьи: «Паттерны и анти-паттерны CI/CD».



Задача пайплайна развертывания состоит из трех частей:

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

Конференция DUMP-2019: приглашаем выступить в секциях DevOps и Mobile

Время на прочтение3 мин
Охват и читатели1.2K
Всем привет!

Девятая конференция DUMP пройдёт 19 апреля в Екатеринбурге. В этом году мы готовим 8 секций: Backend, Frontend, Mobile, Тестирование и QA, Devops, Design, Science и Management. Плюс мастер-классы, выделенные зоны для общения со спикерами и афтепати.

В предыдущих постах мы описали, какие темы ищем для секций Backend, Frontend и Science и для секций Design, Management, Тестирование. В этом посте — темы, которые мы хотим обсудить в секциях DevOps и Mobile и инструкция, как стать докладчиком.

Регистрация для участников открыта. Остался один день, чтобы купить билет на DUMP по минимальной цене — 5000 рублей. С 20 февраля цена вырастет до 6000 рублей. Ниже все подробности.


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

Второй митап по OpenStack в Mail.ru Group: 22 февраля

Время на прочтение2 мин
Охват и читатели2K


Привет, друзья. В эту пятницу мы собираем в Mail.ru наш второй @OpenStack Meetup, на котором:

  • Коллеги из Hystax на примере клиентского кейса покажут, какой нелёгкой бывает миграция виртуальных машин между облаками и гипервизорами;
  • Mail.Ru Cloud Solutions поделятся опытом работы с OpenStack и Linux Storage Stack: о чём часто забывают, планируя хранилище?
  • Canonical продолжат рассказывать про свой подход к моделированию инфраструктуры. В этот раз вы узнаете, каким образом MAAS и Juju позволяют в автоматизации упростить работу с серверами с большим количеством сетевых интерфейсов и L3-ориентированной сетевой топологией.

Встреча пройдёт 22 февраля (пятница) в 19:00 в московском офисе Mail.ru Group (Ленинградский проспект, д. 39, стр. 79).

Регистрация обязательна и закрывается 20 февраля в 23:59 (или раньше, если закончатся места).
Программа митапа

Представлен Talos — «современный Linux-дистрибутив для Kubernetes»

Время на прочтение5 мин
Охват и читатели35K


На днях американский инженер Andrew Rynhard представил интересный проект: компактный дистрибутив Linux, предназначенный специально для запуска Kubernetes-кластеров. Он получил название из древнегреческой мифологии — Talos.
Читать дальше →

Serverless CI/CD на AWS

Время на прочтение7 мин
Охват и читатели8.1K



Было бы круто, если бы развертывание в формате копи-пейст осталось в прошлом, но, увы, дела обстоят иначе. Бывает, разработчикам предпочтительней именно такой метод поставки. Хоть сейчас пиши статью о том, почему это не есть гуд, но вы и без меня все знаете. С тенденцией к бессерверной (serverless) архитектуре пайплайны CI/CD играют важную роль в поставке приложений. Я еще писал о них в статье "3 лучших совета для вашего следующего бессерверного проекта".


Темой CI и CD я интересуюсь давненько, а впервые столкнулся с ней несколько лет назад — благодаря TeamCity. В настоящее время TeamCity по-прежнему используется для большинства наших пайплайнов CI/CD. Работает TeamCity прекрасно, ничего против не имею, но я всегда стремлюсь улучшить работу. Например, было бы хорошо собирать пайплайны в виде кода — это одно из направлений, в которых TeamCity не так хорош.


Инструменты интеграции и поставки на AWS я изучил какое-то время назад, и, хотя мы используем CodeDeploy для другого проекта, который работает на EC2, бессерверный проект я с ними еще не развертывал. Ознакомившись с инструментами повторно, я обратил внимание вот на что: теперь есть встроенная функция интеграции для развертывания CloudFormation и Lambda, предположительно, на основе SAM AWS; мы используем serverless framework, — она генерирует шаблоны CloudFormation, но с инструментами AWS она “из коробки” не работает.

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

Docker и Kubernetes в требовательных к безопасности окружениях

Время на прочтение11 мин
Охват и читатели17K
Прим. перев.: Оригинальная статья была написана инженером из Швеции — Christian Abdelmassih, — который увлекается архитектурой уровня enterprise, ИТ-безопасностью и облачными вычислениями. Недавно он получил степень магистра в области Computer Science и спешит поделиться своим трудом — магистерской диссертацией, а точнее — её частью, посвящённой проблемам изоляции контейнеризированного [и запущенного в Kubernetes] приложения. В качестве «клиента», для которого была подготовлена эта исследовательская работа, выступает ни много ни мало полиция его родины.



Оркестровка контейнеров и облачные (cloud-native) вычисления стали очень популярными в последние годы. Их адаптация дошла до такого уровня, что интерес к ним проявляют даже финансовые предприятия, банки, госсектор. На фоне других компаний их выделяют обширные требования в области безопасности информации и ИТ.
Читать дальше →

Демонстрация AresDB: инструмент анализа в реальном времени с открытым исходным кодом на основе GPU от Uber

Время на прочтение20 мин
Охват и читатели4.1K

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



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


Выпущенный в ноябре 2018 года AresDB представляет собой инструмент анализа в реальном времени с открытым исходным кодом. Он использует нетрадиционный источник питания, графические процессоры (GPU), что позволяет увеличивать масштаб анализа. Технология GPU, перспективный инструмент анализа в реальном времени, за последние годы значительно продвинулась, что делает ее идеальной для параллельных вычисления в реальном времени и обработки данных.


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

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

Автоматический деплой serverless функций из Git

Время на прочтение3 мин
Охват и читатели4.7K
image

На примере gitlab бота я покажу, каким образом можно автоматизировать процесс релиза для serverless функций через автоматическое их обновление из git репозитория. Переходим от игр к практической разработке на serverless.
Читать дальше →

Ubuntu 18.04 Root on ZFS

Время на прочтение14 мин
Охват и читатели27K

В прошлом году потребовалось мне создать инструкцию по установке операционной системы Ubuntu 18.04. К слову, ничего сложного в установке Ubuntu нет, но есть нюанс: я хотел использовать файловую систему ZFS как базовую. С одной стороны, Ubuntu поддерживает ZFS на уровне ядра, но инсталятора под неё еще нет, но есть инструкция, да:


https://github.com/zfsonlinux/zfs/wiki/Ubuntu-18.04-Root-on-ZFS


Последовательность действий в этой инструкции в целом правильная, но некоторые моменты требуют корректировки. Так что далее не прямой перевод инструкции, а вольный с учетом исправлений, моего опыта работы с ZFS и прочего. Так же я не рассматриваю вопросы шифрования диска и используем MBR загрузчик. Мою же инструкцию по установке можно получить здесь.


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

Prometheus + Grafana + Node Exporter + Docker в Azure c уведомлениями в Telegram

Время на прочтение5 мин
Охват и читатели33K

Для начала подготовим виртуальную машину, для этого напишем небольшой скрипт, который разворачивает и автоматизирует некоторые рутинные операции, скрипт использует Azure Cli:


project.sh
#!/bin/bash
echo "AZURE VM Create"
echo "Azure Account:"
echo "Azure name:"
read AZ_NAME
read -sp "Azure password: " AZ_PASS && echo && az login -u $AZ_NAME -p $AZ_PASS
echo "Name Group  VM"
read GROUP_NAME
az group create --name $GROUP_NAME --location eastus
echo "VM name"
read VM
echo "Admin user name"
read ADMIN
az vm create --resource-group $GROUP_NAME --name $VM --image UbuntuLTS --admin-username $ADMIN --generate-ssh-keys --custom-data cloud-init.txt
az vm open-port --resource-group $GROUP_NAME --name $VM --port 8080 --priority 1001
az vm open-port --resource-group $GROUP_NAME --name $VM --port 8081 --priority 1002
az vm open-port --resource-group $GROUP_NAME --name $VM --port 9090 --priority 1003
az vm open-port --resource-group $GROUP_NAME --name $VM --port 9093 --priority 1004
az vm open-port --resource-group $GROUP_NAME --name $VM --port 9100 --priority 1005
az vm open-port --resource-group $GROUP_NAME --name $VM --port 3000 --priority 1006
RESULT=$(az vm show --resource-group $GROUP_NAME --name $VM -d --query [publicIps] --o tsv)
echo $RESULT
echo "Whait 5 min"
sleep 300
ssh $ADMIN@$RESULT -y << EOF
sudo usermod -aG docker $ADMIN
EOF
sleep 10
echo "Connect to Azure..."

В скрипте мы используем файл cloud-init.txt который автоматически установит Docker и Docker-Compose на виртуальную машину.


cloud-init.txt
#cloud-config
package_upgrade: true
write_files:
  - path: /etc/systemd/system/docker.service.d/docker.conf
    content: |
      [Service]
        ExecStart=
        ExecStart=/usr/bin/dockerd
  - path: /etc/docker/daemon.json
    content: |
      {
        "hosts": ["fd://","tcp://127.0.0.1:2375"]
      }
runcmd:
- apt-get update && apt-get install mc -y
- curl -sSL https://get.docker.com/ | sh
- curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
Читать дальше →

Разворачиваем Kubernetes на десктопе за несколько минут с MicroK8s

Время на прочтение5 мин
Охват и читатели50K
Начать работать с Kubernetes не всегда бывает просто. Не у всех есть необходимая для разворачивания полноценного кластера Kubernetes инфраструктура. Для локальной работы Kubernetes предлагет утилиту Minikube. Minikube — достаточно простое и удобное средство, и есть несколько обучающих курсов по работете с Minikube. Но, все же, о Minikube нельзя сказать, что с помощью этой утилиты можно за несколько минут развернуть среду Kubernetes.

Сегодня я хочу рассказать о пакете MicroK8s, который без преувеличения позволяет развернуть Kubernetes локально за несколько минут, и начать разработку. Не требуется даже предустановленных Docker и Kubernetes, т.к. все включено. В предлагаемом Вам уроке будет рассмотрен деплой приложения Django в локальной среде Kubernetes.

В качестве источника я шел вслед за серией статей Mark Gituma, в которых описана аналогичная работа, но только с Minikube, а не с MicroK8s.

Все же есть одно требование, которое необходимо удовлетворить до начала работы. У Вас должен быть установлен Snap, что в свою очередь означает, что у Вас должен быть установлен Linux.
Читать дальше →

Buildbot: сказ с примерами еще об одной системе непрерывной интеграции

Время на прочтение15 мин
Охват и читатели13K

(картинка с официального сайта)

Buildbot, как несложно догадаться из названия, является инструментом для непрерывной интеграции (continuous integration system, ci). Про него уже было несколько статей на хабре, но, с моей точки зрения, из них не очень понятны преимущества сего инструмента. Кроме того, в них почти нет примеров, из-за чего трудно увидеть всю мощь программы. В своей статье я постараюсь восполнить эти недостатки, расскажу про внутренне устройство Buildbot'a и приведу примеры нескольких нестандартных сценариев.
Читать дальше →

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

Настройка НА-кластера Kubernetes на «голом железе» с kubeadm. Часть 1/3

Время на прочтение18 мин
Охват и читатели68K

Часть 2/3 тут
Часть 3/3 тут


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


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


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


Kubernetes — это масштабируемая технология оркестровки, которая может начинаться с установки на одной ноде и достигать размеров огромных НА-кластеров на основе нескольких сотен нод внутри. Большинство популярных облачных провайдеров представляют разные виды реализации Kubernetes — бери и пользуйся. Но ситуации бывают разные, и есть компании, которые облака не используют, а получить все преимущества современных технологий оркестровки хотят. И тут на сцену выходит инсталляция Kubernetes на «голое железо».


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

Почему важна SRE документация. Ч. 3

Время на прочтение9 мин
Охват и читатели2.7K
Всем добрый вечер! Спешим поделиться новостью о том, что уже в феврале у нас запускается новый поток по курсу «Devops — практики и инструменты», а это значит, что пора закончить начатое и опубликовать третью часть статьи: «Почему важна SRE документация». Поехали!

Документы для управления командами SRE

Командам SRE для эффективной работы необходима надежная и доступная документация.

Сайт команды

Примечание: Вместо сайта можно использовать отдельный спейс или раздел в Confluence/Wiki.

Сайт команды важен тем, что обеспечивает координацию информации и документации, связанной с командой SRE и ее проектами. Например в Google, многие команды SRE используют g3doc (внутренняя платформа документирования Google, где доки живут в исходном коде вместе со связанным кодом), а некоторые команды используют g3doc и Google Sites: в таком случае страницы g3doc тесно связаны с кодом/деталями реализации.

Устав команды



Команды SRE должны должны поддерживать опубликованный устав, в котором описываются мотивы работы и документируется текущая вовлеченность. Устав необходим для установления идентичности, основных целей и значения команды в рамках всей компании.
Читать дальше →

Использование Ansible, Terraform, Docker, Consul, Nomad в облаках (Алексей Вахов, Учи.ру)

Время на прочтение10 мин
Охват и читатели16K

Эта статья расшифровка видеодоклада Алексея Вахова из Учи.ру «Облака в облаках»


Учи.ру — онлайн-платформа для школьного образования, более 2 миллионов школьников, регулярно решают у нас интерактивные занятия. Все наши проекты хостятся полностью в публичных облаках, 100% приложений работают в контейнерах, начиная от самых маленьких, для внутреннего пользования, и заканчивая крупными продакшенами на 1k+ запросов в секунду. Так получилось, что у нас 15 изолированных докер-кластеров (не Kubernetes, sic!) в пяти облачных провайдерах. Полторы сотни пользовательских приложений, количество которых постоянно растет.


Я буду рассказывать очень конкретные вещи: как мы переходили на контейнеры, как управляемся с инфраструктурой, проблемы с которыми столкнулись, что заработало, а что нет.


В процессе доклада мы обсудим:


  • Мотивацию выбора технологий и особенности бизнеса
  • Инструменты: Ansible, Terraform, Docker, Github Flow, Consul, Nomad, Prometheus, Shaman — web-интерфейс для Nomad.
  • Использовании федерации кластеров для управления распределенной инфраструктурой
  • NoOps выкатки, тестовые окружения, схемы приложения (практически все изменения девелоперы делают самостоятельно)
  • Занимательные истории из практики


Кому интересно, прошу под кат.

Управление секретами при помощи HashiCorp Vault

Время на прочтение21 мин
Охват и читатели90K
Как правильно хранить секреты? В репозитории, в системе деплоя или в системе управления конфигурациями? На личном компьютере, на серверах, а может в коробке под кроватью? А как управлять секретами, чтобы не допускать утечек?

Сергей Носков (Albibek) — руководитель группы информационной безопасности платформы из Авито, знает ответ на эти вопросы и поделится с нами. В Авито два года активно используют HashiCorp Vault, за это время набили шишки, и прокачали опыт до уровня «Мастер».

В статье всесторонне поговорим про Vault: что это такое, где и как используется в компании, как в Авито управляют секретами с помощью HashiCorp Vault, как используют Puppet и Kubernetes, варианты использования с Puppet и другими SCM, какие возникают проблемы, что болит у безопасников и разработчиков, и, конечно, поделимся идеями, как все исправить.


Деплоим код напрямую в docker-контейнер. Или как не прокрастинировать после каждого коммита

Время на прочтение6 мин
Охват и читатели13K
Пришла задача WEB-12982
Создаешь ветку web-12982 в репозитории
Пока ветка собирается, читаешь тз и пьешь кофе
Приступаешь непосредственно к разработке

git commit, git push
Пока ветка пересобирается листаешь хабр
git commit, git push
Пока ветка пересобирается листаешь твиттер
git commit, git push

Сдаешь на ревью ветку с 50 коммитами

Понимаешь, что 50 коммитов — это ровно 50 минут чистого времени, которое собрано урывками, потому что отрезки по 1 минуте слишком малы, чтобы заниматься чем-то, кроме прокрастинации и элементарных потребностей.


Знакома ситуация? В моей компании инфраструктура разработки организована таким образом:


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

Но, медленно... Если тебе близка эта ситуация, добро пожаловать под кат.

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

Трезвый взгляд на Helm 2: «Вот такой, какой есть...»

Время на прочтение8 мин
Охват и читатели9.4K
Как и любое другое решение, Helm — пакетный менеджер для Kubernetes — имеет плюсы, минусы и область применения, поэтому при его использовании стоит правильно оценивать свои ожидания…


Мы используем Helm в своём арсенале инструментов непрерывного выката. На момент написания статьи в наших кластерах более тысячи приложений и примерно 4000 инсталляций этих приложений в различных вариациях. Периодически мы сталкиваемся с проблемами, но в целом довольны решением, не имеем простоев и потерь данных.

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

История блужданий по документации Haproxy, или на что стоит обратить внимание при его конфигурации

Время на прочтение8 мин
Охват и читатели47K
И снова здравствуйте!

В прошлый раз мы рассказывали о выборе инструмента в Ostrovok.ru для решения задачи проксирования большого количества запросов к внешним сервисам, никого при этом не положив. Статья закончилась выбором Haproxy. Сегодня я поделюсь нюансами, с которыми мне пришлось столкнуться при использовании этого решения.


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