Нет времени и желания изучать километровые файлы WiX, чтобы собрать MSI инсталлер для своего проекта, погружаясь при этом в бездны MSDN? Хотите собирать инсталлер, описывая его простыми и понятными терминами, в несколько строк? Есть клиническая склонность к кроссплатформенности и сборкам под Linux & Docker? Ну тогда вам под кат!

DevOps *
Методология разработки программного обеспечения
Встреча с DevOps Deflope на конференции DevOpsConf 2018
Мы решили устроить гибридный выпуск DevOps Deflope в формате BoF (Birds of a Feather) прямо на конференции. Это будет встреча, на которой мы с прошлыми и нынешними ведущими DevOps Deflope обсудим новости индустрии и просто поговорим.
Я обсудил с Никитой Борзых, одним из идеологов и первых ведущих подкаста, эту идею и вот, что он мне рассказал.
29-31 октября: создаем production-ready кластер Kubernetes
Southbridge проводит живой и онлайн-интенсив по Кубернетес.
Материал рассчитан на тех, кто знает Linux, Docker, Kubernetes, Ansible, Helm и Git.
Интенсив — в первую очередь практика. Каждый участник создаст свой кластер в облаке Selectel.
Теоретическая часть — это не пересказ мануалов, а опыт и рекомендации спикеров.
Темы занятий:
Сокращение расходов на AWS при использовании Kubernetes Ingress с классическим балансировщиком ELB
Несколько месяцев назад я написал статью о контроллере Kubernetes Nginx Ingress, которая занимает второе место по популярности в этом блоге. Основная ее тема — использование Kubernetes Ingress для локальных развертываний. Впрочем, большинство пользователей использует Kubernetes в облаке AWS и общедоступных облачных сервисах других поставщиков. Однако проблема заключается в том, что для каждого сервиса типа LoadBalancer AWS создает новый балансировщик ELB (Elastic Load Balancer). Это может оказаться слишком дорогим удовольствием. Если взять на вооружение Kubernetes Ingress, потребуется лишь один ELB.
«Kubernetes во все поля!» – интервью с программным комитетом конференции DevOops
Что же теперь интересно DevOps-инженерам? Команда супергероев — программный комитет конференции DevOops — попалась в дьявольскую ловушку в Hangouts и целый час отвечала на вопросы. (Кто все эти люди — подробно написано по ссылке).
Под катом — интервью, раскрашенное цветными мелками. У каждого эксперта — свой цвет:

Приезжайте изучать классическое администрирование: регламенты, инструменты, скрипты Southbridge
За 10 лет Southbridge создал стандарт работы, который позволяет одному администратору поддерживать 150 серверов, быстро проводить первичную настройку, легко передавать проект между администраторами и группами, сразу видеть, что сделали ночные дежурные, быстро входить в курс дела после отпуска, и, естественно, обеспечить клиенту надежность и безопасность инфраструктуры.
C 22 по 24 октября Southbridge проводит интенсив для системных администраторов, где покажет свои подходы, регламенты, инструменты, инструкции и скрипты.
По сути РедСлёрм — это набор материалов для подготовки нового сотрудника Southbridge.
Осваивать подход к администрированию, основанный на унификации и стандартизации, полезно даже начинающему администратору.
Все, что можно, отрабатываем на практике.
Создание пакетов для Kubernetes с Helm: структура чарта и шаблонизация

Про Helm и работу с ним «в общем» мы рассказали в прошлой статье. Теперь подойдём к практике с другой стороны — с точки зрения создателя чартов (т.е. пакетов для Helm). И хотя эта статья пришла из мира эксплуатации, она получилась больше похожей на материалы о языках программирования — такова уж участь авторов чартов. Итак, чарт — это набор файлов…
Резервное копирование и восстановление ресурсов Kubernetes утилитой Heptio Ark
Вам наверняка приходилось восстанавливать кластер Kubernetes после сбоя. Была ли у вас толковая стратегия резервного копирования, не требующая пахать несколько дней? Да, можно делать резервные копии в etcd-кластер, но что если отвалилась только часть кластера или вы используете постоянные тома, вроде AWS EBS?
В таких случаях проще всего использовать утилиту Heptio Ark.
Анатомия инцидента, или как работать над уменьшением downtime

Рано или поздно в любом проекте настает время работать над стабильность/доступностью вашего сервиса. Для каких-то сервисов на начальном этапе важнее скорость разработки фич, в этот момент и команда не сформирована полностью, и технологии выбираются не особо тщательно. Для других сервисов (чаще технологические b2b) для завоевания доверия клиентов необходимость обеспечения высокого uptime возникает с первым публичным релизом. Но допустим, что момент X все-таки настал и вас начало волновать, сколько времени в отчетный период "лежит" ваш сервис. Под катом я предлагаю посмотреть, из чего складывается время простоя, и как эффективнее всего работать над его уменьшением.
Нужно поднимать Kubernetes кластер, но я всего лишь программист кода. Выход есть

Доброго времени суток. Очередная заметка из моего опыта. В этот раз поверхностно о базовой инфраструктуре, которую использую, если надо что-то выгрузить, а рядом нет devOps ребят. Но текущий уровень абстракции, в технологиях, позволяет уже около года жить с этой инфраструктурой, поднятой за ночь, используя интернет и готовые вещи.
Ключевые слова — AWS + Terraform + kops . Если это полезно мне — возможно будет полезно кому-нибудь еще. Добро пожаловать в комментарии.
Как подружить PHPstorm, xDebug и удаленные ветки, собранные через Docker? Слишком просто…
Еще год назад мой процесс отладки кода в PHP заключался в двух строчках:
var_dump($variable);
die();
Периодически, конечно, приходилось использовать более «сложные» конструкции:
console.log(data);
echo json_encode($variable, JSON_UNESCAPED_UNICODE);
exit();
Нет, что вы! Я знал — в наше время не подобает культурному программисту заниматься этим
Но, честно говоря, я всегда боялся того, что не понимаю. В том числе и
Если Вы так же, как и я, испытываете трудности с настройкой разных штук, добро пожаловать под кат, я расскажу о своем опыте настройки окружения отладки с такими страшными словами, как Docker, xDebug, CI.
Новая статистика CNCF о контейнерах, cloud native и Kubernetes

Некоммерческая организация CNCF (Cloud Native Computing Foundation), стоящая за Kubernetes и другими инфраструктурными Open Source-проектами для современных облачных приложений, представила результаты своего очередного опроса, который проводится дважды в год. На вопросы, посвящённые адаптации cloud native-технологий, ответили 2400 человек, более половины из которых используют Kubernetes в production.
А чтобы статистика от CNCF была шире и интереснее, я дополнил её результаты данными от других организаций…
Октябрьский Слерм: интенсив по Кубернетес
Для тех, кто хочет освоить Кубернетес или углубить свои знания, в конце октября проходит Слёрм. На Слёрме каждый теоретический блок отрабатывается на практике: участники разворачивают кластер Kubernetes в облаке, настраивают и траблшутят его, обеспечивают его надежность и безопасность.
Слёрм-2 (25–27 октября) — для тех, кто только осваивает Кубернетес: создаем кластер и запускаем на нем приложение.
МегаСлёрм (29–31 октября) — для тех, кто уже работает с Кубернетес или был на Слёрм-1: создаем production-ready кластер.
Темы Слерм-2 и МегаСлерм включают все темы экзамена на Certified Kubernetes Administrator.
Ближайшие события
Управление микросервисами с помощью Kubernetes и Istio

В основе статьи — доклад Крейга Бокса на нашей прошлогодней конференции DevOops 2017. Видео и перевод доклада — под катом.
Присматриваемся к инструментам для мониторинга распределенных приложений

Когда приложение было монолитным и вдруг, раз, стало распределённым, в формулу вычисления доступности добавляется ещё одна неизвестная — сетевая. Из-за проблем с вызовами между компонентами, приложения часто валятся и начинают дрыгать ножками. А выяснение причин нестабильной работы распределённого приложения — та ещё задачка. Дополнительную неразбериху в структуру приложения вносит условный kubernetes, который по своему внутреннему усмотрению может произвольно распределять условные поды по условным нодам. Пишу «условный», потому что на месте kubernetes может быть и Swarm и Openshift и прочие и прочие.
Я к тому, что без нормальной визуализации разобраться где температурит, может быть очень непросто. Под катом моё представление о потенциальных возможностях инструментов, которые умеют рисовать карту приложения и подсвечивать места для прикладывания подорожника, а также список этих самых инструментов со скриншотами.
Клуб анонимных любителей DevOps
С июля мы работаем над DevOpsConf Russia, профессиональной конференцией по интеграции процессов разработки, тестирования и эксплуатации, которая выросла из RootConf и пройдет 1 и 2 октября в Москве, в Инфопространстве.
Сегодня я расскажу вам, как мы это делаем, какие доклады стараемся отбирать, о чем просим докладчиков.

Понимаем RBAC в Kubernetes

Слайд из презентации, сделанной сотрудником Google по случаю релиза Kubernetes 1.6
Многие опытные пользователи Kubernetes могут вспомнить релиз Kubernetes 1.6, когда авторизация на основе Role-Based Access Control (RBAC) получила статус бета-версии. Так появился альтернативный механизм аутентификации, который дополнил уже существующий, но трудный в управлении и понимании, — Attribute-Based Access Control (ABAC). Все с восторгом приветствовали новую фичу, однако в то же время бесчисленное число пользователей были разочарованы. StackOverflow и GitHub изобиловали сообщениями об ограничениях RBAC, потому что большая часть документации и примеров не учитывали RBAC (но сейчас уже всё в порядке). Эталонным примером стал Helm: простой запуск
helm init
+ helm install
больше не работал. Внезапно нам потребовалось добавлять «странные» элементы вроде ServiceAccounts
или RoleBindings
ещё до того, как разворачивать чарт с WordPress или Redis (подробнее об этом см. в инструкции).Kubernetes (k8s) + Helm + GitLab CI/CD. Деплоим правильно
Для деплоя приложений я использую HELM. Он позволяет гибко управлять конфигурациями. В чем вы сможете убедится ниже. Предполагается, что у вас уже есть настроенный runner с helm-ом и вы знаете и умеете работать с HELM-ом.
Пример файла: .gitlab-ci.yml
.base_deploy: &base_deploy
stage: deploy
script:
- PROJECT_NAME="${CI_PROJECT_NAME}-${CI_ENVIRONMENT_SLUG}"
- helm --namespace ${CI_ENVIRONMENT_SLUG} upgrade -i ${PROJECT_NAME} helm --set "global.env=${CI_ENVIRONMENT_SLUG}";
stages:
- deploy
Deploy to Test:
<<: *base_deploy
environment:
name: test
Deploy to Production:
<<: *base_deploy
environment:
name: production
when: manual
Здесь стоит обратить внимание на то, что в зависимости от среды мы передаем переменную: «test» или «production».
Имя проекта мы тоже формируем с учетом имени переменной, для того, чтобы helm понимал, что это разные проекты (helm ls).
Далее, мы передаем эту переменную (среду) в HELM как: «global.env».
Для выше указанного примера helm должен находиться в одноименной папке в вашем репозиторие.
TiKV — распределённая база данных key-value для cloud native

28 августа организация CNCF (Cloud Native Computing Foundation), стоящая за Kubernetes, Prometheus и другими Open Source-проектами для современных облачных приложений, объявила о принятии нового продукта в свою «песочницу» — TiKV.
Эта распределённая, транзакционная база данных типа ключ-значение зародилась как дополнение к TiDB — распределённой СУБД, которая предлагает возможности OLTP и OLAP и обеспечивает совместимость с протоколом MySQL… Но давайте обо всём по порядку.