Обновить
256K+

DevOps *

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

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

[Питер] Встреча JUG.ru с Олегом Ненашевым из CloudBees — Groovy DSL в Jenkins и Pipeline. Реализации и подводные грабли

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


В понедельник, 4 декабря, в офисе компании Oracle состоится встреча с Олегом Ненашевым, разработчиком в компании CloudBees, которая является одним из основных контрибьюторов Jenkins. Тема встречи — Groovy DSL в Jenkins и Pipeline.

Несмотря на появление новых средств CI/CD, Jenkins остается одним из наиболее популярных серверов автоматизации. Он фактически является распределенным веб-сервисом и предоставляет различные DSL, в том числе с доступом к JVM и внутренним API. Давать такой доступ нужно аккуратно, а то в продакшне будет мучительно больно: security, UX, performance, и т.д. О предотвращении этой боли и пойдет разговор.

Олег расскажет:

  • как в Jenkins реализованы Groovy DSL и почему их так много;
  • как в Jenkins Pipeline реализованы Groovy Sandbox, доступ к API Java, Script Security и персистентность контекста при рестарте;
  • какие архитектурные проблемы это вызывает;
  • как можно при всем этом расширять и поддерживать DSL для частных задач.
Читать дальше →

Идеальный мавен. Часть 1

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

Знаю, он не идеальный, но по крайней мере я попытаюсь рассказать, как его к этому приблизить.


В одну заметку всё не войдёт, поэтому сначала план:


  1. Постановка задачи — описание той конфигурации проектов с которой мы будем работать, целей и проблем
  2. Как настроить мавен для разработки в рамках нашей задачи
  3. Как настроить CI/CD (билды, релизы, деплоймент)
  4. Нерешенные проблемы

Задача


Итак, начнем с постановки задачи. Предположим у нас есть группа людей (компания, фирма, кружок), которые разрабатывают проекты на Java. При этом у них есть как проекты с открытым кодом (OSS), так и проекты с закрытым кодом. Проекты, назовём их внутренние, разрабатываются независимо друг от друга, но между ними есть зависимости. Что хочется:


  • Централизованное управление зависимостями на внешние библиотеки
  • OSS проекты в центральном мавен репозитории
  • Закрытые проекты в своём мавен репозитории.
  • «Простой» релиз внутренних проектов с обновлением зависимости в зависимых проектах.
  • Максимальная автоматизация всех хотелок.
Читать дальше →

«Правильная» структура команд для DevOps

Время на прочтение10 мин
Охват и читатели27K
Привет, Хабр! Мы у себя в банке уже второй год обсуждаем в теории и на практике, как правильно организовывать наши Dev и Ops команды. Недавно дискуссия, подкрепившись новой порцией практического опыта, вышла на очередной виток, что сподвигло меня на очередной поиск идей и аргументов.

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

Ускоряем работу Ansible

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

Под капотом d2c.io мы используем Ansible. С его помощью мы создаем виртуальные машины у облачных провайдеров, устанавливаем программное обеспечение, а также управляем Docker-контейнерами с приложениями клиентов.


Ansible – удобный инструмент, который готов к работе почти без настройки. Это возможно благодаря отсутствию агентов (agentless system), поэтому не нужно ничего предустанавливать на обслуживаемые хосты.


Для подключения к хостам в большинстве случаев используется ssh. Однако оборотной стороной этой медали является определенная медлительность, так как вся логика находится на управляющем сервере и каждую задачу (task) Ansible формирует локально и отправляет на исполнение через SSH-подключение. Затем он принимает результат, анализирует его и переходит к следующему шагу. В статье мы рассмотрим, как можно ускорить работу Ansible.

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

Непрерывная интеграция, непрерывная доставка, непрерывное развертывание: просто матрешка

Время на прочтение4 мин
Охват и читатели59K
Привет всем!

Напоминаем, что в самом начале сентября у нас вышла интересная книга Эберхарда Вольфа «Continuous delivery. Практика непрерывных апдейтов»

В любой бурно развивающейся отрасли порой бывает полезно определиться с терминами. Для тех, кто пока не успел познакомиться с книгой Вольфа, мы решили перевести небольшую статью Марко Анастасова, где доступно и внятно описаны отличия между Continuous Integration, Continuous Delivery и Continuous Deployment. Добро пожаловать под кат!

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

Что происходит в Kubernetes при запуске kubectl run? Часть 2

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


Прим. перев.: Вторая и заключительная часть перевода материала, озаглавленного в оригинале как «What happens when… Kubernetes edition!» и рассказывающего о том, какие процессы (каких компонентов и в какой последовательности) происходят в Kubernetes на примере выполнения команды, разворачивающей в кластере 3 пода с nginx.

Если первая часть была посвящена работе kubectl, kube-apiserver, etcd и инициализаторам, то теперь речь пойдёт про контроллеры Deployments и ReplicaSets, информаторы, планировщик и kubelet. Напомню, что мы остановились на моменте, когда переданный пользователем (через kubectl) запрос был авторизован и выполнен в Kubernetes, новые объекты (ресурсы) — созданы и сохранены в базу данных (etcd), после чего — инициализированы (т.е. стали видимыми для apiserver).
Читать дальше →

Управлять сложной IT-инфраструктурой приложения из веб-интерфейса? Легко

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

Если вы работаете с быстрорастущим проектом, то знаете, что он требует управляемой ИТ-инфраструктуры. Все время приходится поднимать тестовые хосты, постоянно что-то разворачивать, обновлять исходники, добавлять ресурсы и распределять нагрузку. Все это — рутинные задачи DevOps-специалиста, а если не повезло, то самого разработчика.


В общем, работа с IT-инфраструктурой приложения отнимает кучу времени специалистов. Нас это не радовало, и мы придумали свою платформу, которая сложные операции сводит к паре кликов мыши.


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

Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine

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


Привет, Хабр! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в Одноклассниках. Основные сферы моей компетенции — Zabbix, CFEngine и оптимизация Linux. У нас более 8 тыс. серверов и 200 приложений, которые в различной конфигурации формируют 700 различных кластеров. Тема этой статьи исчерпывающе описана в заголовке.


Сразу хочу оговориться:


  • Я буду предвзят, потому что участвовал во внедрении CFEngine в Одноклассниках.
  • Я пользовался CFEngine только версий 3.3—3.4.
  • Я не питаю никаких иллюзий по поводу CFEngine, это значимый игрок, но не лидер рынка и не его аутсайдер. В статье не будет сравнений работы CFEngine с другими системами.
  • Из систем конфигурации у меня есть опыт использования только CFEngine и Ansible.
Читать дальше →

Что происходит в Kubernetes при запуске kubectl run? Часть 1

Время на прочтение11 мин
Охват и читатели25K
Прим. перев.: Этот материал, озаглавленный в оригинале как «What happens when… Kubernetes edition!» и написанный Jamie Hannaford из компании Rackspace, является отличной иллюстрацией работы многих механизмов Kubernetes, которые зачастую скрыты от нашего глаза, но весьма полезны для лучшего понимания устройства этой Open Source-системы, алгоритма работы и взаимосвязей её компонентов. Поскольку вся статья весьма объёмна, её перевод разбит на две части. В первой речь идёт про работу kubectl, kube-apiserver, etcd и initializers.

P.S. Некоторые оригинальные ссылки на код в master-ветках были заменены на последние к моменту перевода коммиты, чтобы актуальность номеров строк, к которым отсылает автор, сохранялась долгое время.




Представим, что я хочу задеплоить nginx в кластере Kubernetes. Я введу в терминале нечто такое:

kubectl run --image=nginx --replicas=3

… и нажму на Enter. Через несколько секунд увижу 3 пода с nginx, распределённые по всем рабочим узлам. Работает — словно по волшебству, и это здорово! Но что на самом деле происходит под капотом?
Читать дальше →

Используйте DevOps, чтобы превратить ИТ в стратегическое оружие

Время на прочтение8 мин
Охват и читатели6K
Как обычно работая над материалами для курсов, часто встречаются вещи, которые вроде как и не нужны, потому что и так понятно, но написаны уж очень хорошо и ими сложно не поделиться. Вот и данная статья интересна тем, что в очередной раз показывает спектр задач охватываемых в DevOps

Поехали…

Работая вместе с соавторами над DevOps Cookbook, я начал лучше понимать, что является основным акцентом DevOps сообщества. Много внимания уделяется влиянию DevOps в рамках ИТ-подразделения. Гораздо меньше внимания уделяется влиянию DevOps в рамках всей компании. И практически никакого внимания не уделяется влиянию DevOps вне рамок компании, в частности взаимоотношению с другими компаниями и рынками, на которых они конкурируют.

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

Но если ограничить DevOps евангелизм только ИТ организациями, будет упущена ценная польза от инвестиций в DevOps. Почему? Потому что уроки и принципы DevOps открывают нечто редкое для современных компаний. DevOps может превратить ИТ-процессы в устойчивое конкурентное преимущество компании. Это DevOps-послание необходимо распространить по всему бизнес отделу компании, вплоть до Генерального Директора и Совета Директоров.

Чтобы понять, как DevOps может превратить ИТ-процессы в конкурентное преимущество, сначала нужно взглянуть на текущий контекст, в котором работают компании.
Читать дальше →

Давайте поговорим о Plesk с расширением Docker

Время на прочтение6 мин
Охват и читатели5.8K
Let's speak about Docker

Недавно вышла статья Iron_Butterfly, где в числе прочего, рассказывается, каким образом можно запустить мощнейший поисковый движок ElasticSearch внутри Docker-контейнера. Я хочу продолжить этот вектор и рассказать, какие еще задачи можно решить с помощью Docker-контейнеров, используя для этого Plesk и расширение Docker.

Краткий план


В статье мы рассмотрим, как с помощью помощью Docker extension можно решить задачи, которые тяжело или даже невозможно решить с Plesk без Docker-контейнеров. Данный список задач сформирован на основе популярных вопросов наших пользователей; в качестве пользователей мы рассмотрим владельцев хостинга, разработчиков web-приложений, администраторов WordPress.

Задачи:


— Одновременное использование различных версий баз данных;
— Разворачивание Memcached для WordPress;
— Использование собственного облачного Nextcloud хранилища;
— Запуск собственного приложения на Go. Запуск собственного git-репозитория;
— Тестирование новых версий Plesk не мешая работать боевому серверу.

Хочу уточнить, что все примеры в статье выполнены с использованием бесплатной версии расширения Docker; платная версия позволяет управлять сервисом Docker на удаленных серверах.
Читать дальше →

LVM + lilo > GPT + EFI (или почему GRUB такой неуклюжий)

Время на прочтение5 мин
Охват и читатели22K
TL;DR: автор сокрушается о том, что GRUB не может жить полноценно с LVM и с удивлением открывает, что это отлично умеет заброшенный в 2015 году загрузчик lilo.

MBR?


Мало кто знает и понимает, что MBR по сути своей есть величайшая ошибка человечества. Ну послушайте, ну серьезно, кому в голову пришло смешивать в одном блоке данные, необходимые для загрузки системы и сведения о разделах?

Я еще раз повторю, не надо сейчас мне говорить «так сложилось», а включите логику. MBR ужасна.
Читать дальше →

Истории успеха Kubernetes в production. Часть 5: цифровой банк Monzo

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


Цикл историй успеха Kubernetes продолжается рассказом о британском банке-стартапе Monzo. Эту молодую компанию относят к категории «challenger banks» (да, это уже термин из Oxford Dictionary), т.е. таких небольших банков, которые бросают вызов крупной и давно сложившейся финансовой индустрии. Это становится возможным благодаря активному и повсеместному использованию современных информационных технологий в самой своей основе, т.е. отказу от операций в традиционном формате в пользу электронных аналогов, позволяющих качественно снизить расходы (банки с таким подходом ещё называют «digital-only»). Пример Monzo, созданного всего 2 года назад, интересен тем, что в достижении великих целей ему помогают платформа Kubernetes, язык Go и другие современные Open Source-продукты, хорошо знакомые DevOps-инженерам и не только.
Читать дальше →

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

Обзор плагинов SparrowHub

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

image


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


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

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

Как мы настраивали процесс CI/CD для наших SOA-проектов

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

Хотел бы поделиться опытом настройки CI/CD в нашей компании, плюс, послушать советы, если у вас похожая структура проектов.

Кому, как мне кажется, данная статья может оказаться полезной:

  • ваши проекты содержат несколько отдельных репозиториев с приложениями;
  • вы хотите быть уверены, что каждый репозиторий проходит тесты;
  • вы хотите быть уверены в совместимости версий между репозиториями;
  • вы ещё не успели, но планируете, перевести свои проекты на докер;
  • хотите посмотреть пару playbook'ов Ansible.
Читать дальше →

Установка Kubernetes 1.8 Bare Metal

Время на прочтение12 мин
Охват и читатели21K
В интернете написано довольно много статей по установке Kubernetes, но большинство из них базируются на kubeadm и minikube. Это, конечно, здорово, что можно легко и за пару кликов развернуть кластер, но хотелось бы иметь больше понимания из чего состоит Kubernetes. Попробую исправить эту ситуацию данным руководством.
Читать дальше →

Централизованный сontinuous deployment за год

Время на прочтение6 мин
Охват и читатели11K
В одном из предыдущих постов про DevOps мы обещали рассказать про технологическую составляющую нашего CI/CD-конвейера.

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


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

Базовая установка и настройка Puppet 4 с хранением манифестов в SVN

Время на прочтение5 мин
Охват и читатели8.5K
Доброго времени суток!

Сегодня будем готовить Puppet 4 на Ubuntu Server 16.04 c хранением манифестов в SVN. Так же статье будет рассмотрен пример создания простого собственного модуля для установки и конфигурирования агента сбора логов в Graylog2 через Graylog Collector Sidecar и использованием Filebeat в качестве бэкэнда. Данный пример не претендует на изящное решение, но описывает ключевые аспекты с примером.

Исходная машина для Puppet Server — VPS Ubuntu 16.04 — 4Gb Memory, 2 CPU cores.
Читать дальше →

Инфраструктура с Kubernetes как доступная услуга

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


Kubernetes стал для нас той технологией, которая в полной мере позволяет соответствовать строгим требованиям к отказоустойчивости, масштабируемости и качественному обслуживанию проекта. Несмотря на то, что сегодня K8s больше распространен в крупных организациях и проектах, мы научились применять его и в небольших приложениях. Снижение себестоимости обслуживания стало возможным для нас благодаря унификации и обобщению всех компонентов, которые встречаются практически у каждого клиента. Эта статья — взгляд на полученный опыт со стороны бизнес-потребностей и их технической реализации, которая позволяет нам предлагать клиентам качественное решение и поддержку за разумные деньги.
Читать дальше →

Приручаем «динозавра», или CI/CD и IBM System i

Время на прочтение6 мин
Охват и читатели7.2K
Я хочу поделиться с вами историей, как мы строили CI/CD-процессы для ПО, написанного для нестандартной платформы, которую многие считают «динозавром» — IBM System i aka AS/400.


AS/400 используется многими крупными российскими банками, и все они потихоньку движутся в направлении CI/CD. Райффайзенбанк стал одними из первых (если не первым), кто применил эти практики для установки ПО на платформе AS/400 в промышленной эксплуатации.
Читать дальше →