27
Инфраструктура в Java-проекте Игнатов Юрий Express 42

Инфраструктура в Java-проекте

Embed Size (px)

Citation preview

Page 1: Инфраструктура в Java-проекте

Инфраструктурав Java-проекте

Игнатов ЮрийExpress 42

Page 2: Инфраструктура в Java-проекте

О чем доклад?Continuous delivery с Java-спецификойОб инструментах для

– контроля качества кода– хранения артефактов– деплоя– сбора метрик

Надежные решения для сложной инфраструктуры

Page 3: Инфраструктура в Java-проекте

Continuous delivery

Надежные решения для сложной инфраструктуры

Develop Build & Test Deploy

Page 4: Инфраструктура в Java-проекте

Continuous delivery

Надежные решения для сложной инфраструктуры

Develop Build & Test Deploy

Не только.

Page 5: Инфраструктура в Java-проекте

Continuous delivery

Автоматизация на всех этапахОбратная связь на всех этапах

Надежные решения для сложной инфраструктуры

Page 6: Инфраструктура в Java-проекте

Continuous delivery

Надежные решения для сложной инфраструктуры

Develop Build & Test Deploy

Обратная связь

Page 7: Инфраструктура в Java-проекте

Жизненный циклJava-сервисаСреда разработчика CI-системаКонтроль качестваРепозиторий бинарных артефактовДеплойЭксплуатацияИногда добавляется отладка и хотфиксы

Надежные решения для сложной инфраструктуры

Page 8: Инфраструктура в Java-проекте

Обратная связьТестирование кодаТестирование инфраструктурыАнализ кода и тестовИзменения поведения и потребления ресурсов от релиза к релизу

Надежные решения для сложной инфраструктуры

Page 9: Инфраструктура в Java-проекте

SonarQubeНепрерывный контроль качества кодаПоддеживает распространненые языкиПроверка стандартов оформления, покрытие тестами, потенциальные багиИнтегрируется с Jenkins, Bamboo, Jira, …CWE (сommon weakness enumeration)

Надежные решения для сложной инфраструктуры

Page 10: Инфраструктура в Java-проекте

АртефактыGAV (Group, Artifact, Version)– org.example.corp:email-svc:ear:1.0.1

Имеют большой размер (например, >50МБ)Содержимое артефакта может изменится

Надежные решения для сложной инфраструктуры

Page 11: Инфраструктура в Java-проекте

Репозиторий бинарных артефактовПростая задача: принять-хранить-отдатьПопулярные: Nexus, Artifactory, Archiva

Интеграция, плагины

Надежные решения для сложной инфраструктуры

Page 12: Инфраструктура в Java-проекте

ArtifactoryЕсть бесплатная и платные версииВ платной версии умеет

PyPI, RubyGems, NPMDocker Registry API и Docker Hub APIDebian repo & yum repo

Надежные решения для сложной инфраструктуры

Page 13: Инфраструктура в Java-проекте

NexusЕсть бесплатная и платные версииГибкая система управления правамиБольшое количество плагинов

Надежные решения для сложной инфраструктуры

Page 14: Инфраструктура в Java-проекте

ArchivaЕсть проблемы с интерфейсомApache License

Надежные решения для сложной инфраструктуры

Page 15: Инфраструктура в Java-проекте

Repository proxy

Надежные решения для сложной инфраструктуры

QA QA QA

Vagrant Vagrant Vagrant

Office Productionproxy

Stagingproxy

VM VM VM

VM VM VM VM

VM

Page 16: Инфраструктура в Java-проекте

ДеплойВ терминах GAVС кнопки, деплоить может каждый!Каждая выкатка должна быть зафиксирована.

Надежные решения для сложной инфраструктуры

Page 17: Инфраструктура в Java-проекте

Метаданные

Надежные решения для сложной инфраструктуры

<artifact-resolution> <data>

<groupId>org.example.corp</groupId> <artifactId>email-svc</artifactId> <version>1.0.1-20150408.180542-39</version> <baseVersion>1.0.1-SNAPSHOT</baseVersion> <extension>ear</extension> <snapshot>true</snapshot> <snapshotBuildNumber>39</snapshotBuildNumber> <snapshotTimeStamp>1428516342000</snapshotTimeStamp> <sha1>cdd3fac8d72b1de5256d6c7ef1f18ea453ed4e0f</sha1> </data>

</artifact-resolution>

Page 18: Инфраструктура в Java-проекте

Rundeck“… the human interface to your operations.”

Сервис автоматизации и планировщик задачУправление доступом на основанное на роляхИнтеграция с репозиторием бинарных артефактовCallback о результатах деплоя

Надежные решения для сложной инфраструктуры

Page 19: Инфраструктура в Java-проекте

Мониторинг приложенияБазовые проверкиЗапущен ли процесс?Слушается ли порт?

Более продвинутые проверки следят за сбоями

Надежные решения для сложной инфраструктуры

Page 20: Инфраструктура в Java-проекте

JMXJMX - API для взаимодействия с Java-приложением

Работает из коробки в системах мониторингаПростота добавления новых метрик

Надежные решения для сложной инфраструктуры

Page 21: Инфраструктура в Java-проекте

JMXJVM: статистика GC, heap.Container: статистика запросов и исключенийPools: статистика по использованию ресурсов

Бизнес метрики

Надежные решения для сложной инфраструктуры

Page 22: Инфраструктура в Java-проекте

JMXДля эксплуатации:

Остановить приложение при деплоеИзменить конфигурацию работающего сервисаЗапустить внутренний процессHealthcheck

Надежные решения для сложной инфраструктуры

Page 23: Инфраструктура в Java-проекте

GraylogЦентрализованное хранилище логовОбработка входящего потока сообщенийПоискАлерты

Надежные решения для сложной инфраструктуры

Page 24: Инфраструктура в Java-проекте
Page 25: Инфраструктура в Java-проекте

Подарок

Page 26: Инфраструктура в Java-проекте

Контакты• github.com/express42-cookbooks• devopsdeflope.ru• devopsru.com• @express42_ru

Page 27: Инфраструктура в Java-проекте

Вопросы?• github.com/express42-cookbooks• devopsdeflope.ru• devopsru.com• @express42_ru