SlideShare a Scribd company logo
Инфраструктура
в Java-проекте
Игнатов Юрий

Express 42
О чем доклад?
Continuous delivery с Java-спецификой
Об инструментах для
– контроля качества кода
– хранения артефактов
– деплоя
– сбора метрик
Надежные решения для сложной инфраструктуры
Continuous delivery
Надежные решения для сложной инфраструктуры
Develop Build & Test Deploy
Continuous delivery
Надежные решения для сложной инфраструктуры
Develop Build & Test Deploy
Не только.
Continuous delivery
Автоматизация на всех этапах
Обратная связь на всех этапах
Надежные решения для сложной инфраструктуры
Continuous delivery
Надежные решения для сложной инфраструктуры
Develop Build & Test Deploy
Обратная связь
Жизненный цикл
Java-сервиса
Среда разработчика
CI-система
Контроль качества
Репозиторий бинарных артефактов
Деплой
Эксплуатация
Иногда добавляется отладка и хотфиксы
Надежные решения для сложной инфраструктуры
Обратная связь
Тестирование кода
Тестирование инфраструктуры
Анализ кода и тестов
Изменения поведения и потребления ресурсов
от релиза к релизу
Надежные решения для сложной инфраструктуры
SonarQube
Непрерывный контроль качества кода
Поддеживает распространненые языки
Проверка стандартов оформления,
покрытие тестами, потенциальные баги
Интегрируется с Jenkins, Bamboo, Jira, …
CWE (сommon weakness enumeration)
Надежные решения для сложной инфраструктуры
Артефакты
GAV (Group, Artifact, Version)
– org.example.corp:email-svc:ear:1.0.1
Имеют большой размер (например, >50МБ)
Содержимое артефакта может изменится
Надежные решения для сложной инфраструктуры
Репозиторий
бинарных артефактов
Простая задача: принять-хранить-отдать
Популярные: Nexus, Artifactory, Archiva
Интеграция, плагины
Надежные решения для сложной инфраструктуры
Artifactory
Есть бесплатная и платные версии
В платной версии умеет
PyPI, RubyGems, NPM
Docker Registry API и Docker Hub API
Debian repo & yum repo
Надежные решения для сложной инфраструктуры
Nexus
Есть бесплатная и платные версии
Гибкая система управления правами
Большое количество плагинов
Надежные решения для сложной инфраструктуры
Archiva
Есть проблемы с интерфейсом
Apache License
Надежные решения для сложной инфраструктуры
Repository proxy
Надежные решения для сложной инфраструктуры
QA QA QA
Vagrant Vagrant Vagrant
Office Production
proxy
Staging
proxy
VM VM VM
VM VM VM VM
VM
Деплой
В терминах GAV
С кнопки, деплоить может каждый!
Каждая выкатка должна быть зафиксирована.
Надежные решения для сложной инфраструктуры
Метаданные
Надежные решения для сложной инфраструктуры
<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>
Rundeck
“… the human interface to your operations.”
Сервис автоматизации и планировщик задач
Управление доступом на основанное на ролях
Интеграция с репозиторием бинарных артефактов
Callback о результатах деплоя
Надежные решения для сложной инфраструктуры
Мониторинг приложения
Базовые проверки
Запущен ли процесс?
Слушается ли порт?
Более продвинутые проверки следят за сбоями
Надежные решения для сложной инфраструктуры
JMX
JMX - API для взаимодействия с Java-приложением
Работает из коробки в системах мониторинга
Простота добавления новых метрик
Надежные решения для сложной инфраструктуры
JMX
JVM: статистика GC, heap.

Container: статистика запросов и исключений

Pools: статистика по использованию ресурсов

Бизнес метрики
Надежные решения для сложной инфраструктуры
JMX
Для эксплуатации: 

Остановить приложение при деплое

Изменить конфигурацию работающего сервиса

Запустить внутренний процесс

Healthcheck
Надежные решения для сложной инфраструктуры
Graylog
Централизованное хранилище логов
Обработка входящего потока сообщений
Поиск
Алерты
Надежные решения для сложной инфраструктуры
Подарок
Контакты
• github.com/express42-cookbooks
• devopsdeflope.ru
• devopsru.com
• @express42_ru
Вопросы?
• github.com/express42-cookbooks
• devopsdeflope.ru
• devopsru.com
• @express42_ru

More Related Content

What's hot

Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системы
SQALab
 
Настраиваемое тестирование производительности
Настраиваемое тестирование производительностиНастраиваемое тестирование производительности
Настраиваемое тестирование производительности
SQALab
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
SQALab
 
Kubernetes
KubernetesKubernetes
Kubernetes
SQALab
 
SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017
Adam Sandman
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
SQALab
 
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной Шине
SQALab
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
SQALab
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
CEE-SEC(R)
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
yalegko
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
SQALab
 
CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестирования
SQALab
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
SQALab
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demand
SQALab
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
SQALab
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
SQALab
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
WrikeTechClub
 
Let's Talk About Junit 5
Let's Talk About Junit 5Let's Talk About Junit 5
Let's Talk About Junit 5
SQALab
 
UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестами
SQALab
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 

What's hot (20)

Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системы
 
Настраиваемое тестирование производительности
Настраиваемое тестирование производительностиНастраиваемое тестирование производительности
Настраиваемое тестирование производительности
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной Шине
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестирования
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demand
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Let's Talk About Junit 5
Let's Talk About Junit 5Let's Talk About Junit 5
Let's Talk About Junit 5
 
UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестами
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 

Viewers also liked

Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
Andrey Tokarchuk
 
Практика DevOps в крупных организациях
Практика DevOps в крупных организацияхПрактика DevOps в крупных организациях
Практика DevOps в крупных организациях
Softmart
 
Продуктовая vs cервисная компания
Продуктовая vs cервисная компанияПродуктовая vs cервисная компания
Продуктовая vs cервисная компания
DataArt
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 

Viewers also liked (6)

Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
 
Практика DevOps в крупных организациях
Практика DevOps в крупных организацияхПрактика DevOps в крупных организациях
Практика DevOps в крупных организациях
 
Продуктовая vs cервисная компания
Продуктовая vs cервисная компанияПродуктовая vs cервисная компания
Продуктовая vs cервисная компания
 
Introduction to Vagrant
Introduction to VagrantIntroduction to Vagrant
Introduction to Vagrant
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 

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

Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetestingLiloSEA
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
COMAQA.BY
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
Александр Шамрай
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудство
SQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
COMAQA.BY
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
COMAQA.BY
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
SQALab
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
Aliaksandr Ikhelis
 
McAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud SecurityMcAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud Security
Vladyslav Radetsky
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)
Dmitry Lobasev
 
«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»
Nata_Churda
 
Project under control
Project under controlProject under control
Project under control
Alex Simanovich
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
Александр Шамрай
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testing
Ievgenii Katsan
 

Similar to Инфраструктура в Java-проекте (20)

Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудство
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
McAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud SecurityMcAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud Security
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)
 
«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»
 
Project under control
Project under controlProject under control
Project under control
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testing
 

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