SlideShare a Scribd company logo
1 of 44
Install&Update Processes
Dmitry Lazarenko,
Director of R&D, Russia
dl@jelastic.com
PaaS
• Глобальная автоматизация
• Простота управления
приложениями
• Масштабирование приложения в
зависимости от нагрузки
• Целостность и безопасность
данных приложения
PaaS значительно снижает
затраты времени и денег на
обслуживание
Jelastic is the next generation of cloud
hosting which can run and scale
ANY Java & PHP applications
with no code changes required
Easy to Create
 Set up your cloud
environment in seconds
 No extra installation or
configuration
 No APIs to code to
 Wide range of software
stacks that you need
Easy to Deploy
 One-click deployment
 Application version
control
 Git & SVN support
 Maven, Ant & Jenkins
support
Easy to Scale
 Vertical & Horizontal scaling
 Fast resource changes
Easy to Manage
 Managing application
lifecycle
 Control and analyze
Вычислительные Контейнеры
• Каждый элемент окружения – отдельный
контейнер(REC)
• Все контейнеры типизированы
• Для каждого метатипа определен свой протокол по
которому ядро взаимодействует с ним
• Взаимодействие ядра и конкретного контейнера
происходит по SSH
• Все контейнеры динамически оптимизируются для
оптимальной утилизации ресурсов
Окружения
Окружения
Системная архитектура
Архитектура развертывания
Platform
Install&Update
Сложная инфраструктура
Resolver
Database server
Jelastic Core
Hivext Core
Awaikener
Zabbix app server
Zabbix db server
Logging server
RPM repositoryAutotests server
Большое количество площадок
Проблемы
Исторически платформа устанавливалась и
обновлялась вручную:
• Разработчики патчили наживую продакшены
• Доработка напильником и «Уникальная»
конфигурация
• Состав патча/инсталлятора распределен
между головами 3-4 человек
Результат проблем
• Установка с 0 растягивается на неделю
• Более суток на непрерывное
обновление
• Очень большой Downtime
• Невозможность предсказать все
проблемы и затраченное время
• Про тиражирование можно забыть
Что было нужно?
• Управление разворачиванием сложной
конфигурации
• Полная автоматизация установки и
обновления
• Простая параметризация под конкретную
площадку
Чего пытались добиться?
• Дешевое тиражирование платформы
• Ускорение процессов установки и
обновления
• Минимизация Downtime
• Минимизация рисков от человеческого
фактора
Выбор системы автоматизации
• Puppet
• Chef
• Cfengine
• Self-made
Структура Puppet
Классы инфраструктурных
харднод
Классы инфраструктурных
приложений
Классы инфраструктурных
контейнеров
Классы общих
приложений
Конфиги хостера
Объявление объектов
Манифесты(Классы) РесурсыОбьекты
Артефакты
Динамические данные
(параметризированные
конфигурации и скрипты )
Статические данные
(файлы конфигураций и
скрипты)
Содержимое инсталлятора
• Инфраструктурные приложения
• Клиентские приложения
• Базы данных
• RPM-Пакеты
• Конфигурации
RPM
• Из них формируются шаблоны
контейнеров:
•Tomcat
•MySQL
•Nginx…
• Собираются с помощью maven
• Сохраняются с помощью Jenkins в
центральный RPM-репозиторий
Workflow установки
Puppet Master node
Jem managing application
GITGIT
RepositoryRepository
GITGIT
RepositoryRepository
R&D
Department
Operations
Department
Install config
Hosters config
Objects declaration
NexusNexus
JenkinsJenkins
RPM repoRPM repo
Установка платформы
1. Заранее подготавливается инфраструктура:
•Сеть
•Делегируется корневая Dns-зона
•SSL-сертификаты
2. Нужные параметры зашиваются в скрипт, который:
•Устанавливает систему виртуализации
•Создает и конфигурирует все инфраструктурные
контейнеры
3. Установка полностью автоматизирована ~ 3 часа
Обновление БД
• Икрементальные шаблонизированные SQL
скрипты
• Специальный менеджер обновления,
который обеспечивает правильный
порядок и правильность выполнения
скриптов
• Поддержка обратной совместимости
Проблема
• Во время обновление БД заблокирована
• Много Alter на больших таблицах занимает много
времени (на практике до 2х часов)
Следствие
• Downtime инфраструктурных приложений и БД
может достигать нескольких часов
Кластерный режим обновления
• Перекидывание виртуальных IP (VIP)
• Смена DNS - A записей
• Смена точки входа в платформу
• Поочередное обновление каждого экземпляра:
1. Active-Active
2. Active-Standby (Updating)
3. Standby (Updating)-Active
4. Active-Active
Обновление без Downtime
Обновление БД
Multi-Master Replication Manager for MySQL :
1.Останавливаем репликацию
2.Запоминаем номер транкзакции T1 (checkpoint)
3.Данные пишутся только на первый узел
4.Обновляем второй узел
5.Включаем репликацию
6.Новые данные копируются с узла 1 на узел 2
7.Меняем роли между 1м и 2м узлом
8.Обновляем первый узел, так же как и второй
9.В итоге кластер БД полностью синхронизирован
Проверка
1. CI на нескольких STAGED-площадках:
1. Установка с 0
2. Обновление с одной на другую версию
3. Автотесты
2. CI на нескольких SuperSTAGED-
площадках:
1. Обновление на следующую версию
2. Автотесты
3. Только потом обновление Production
Continuous Integration
Скачивание конфиговСкачивание конфигов
хостера с репозиторияхостера с репозитория
OPSOPS
Скачивание конфиговСкачивание конфигов
хостера с репозиторияхостера с репозитория
OPSOPS
Установка и запуск JemУстановка и запуск Jem
приложенияприложения
Установка и запуск JemУстановка и запуск Jem
приложенияприложения
Скачивание манифестовСкачивание манифестов
нужной версиинужной версии
с репозитория R&Dс репозитория R&D
Скачивание манифестовСкачивание манифестов
нужной версиинужной версии
с репозитория R&Dс репозитория R&D
Скачивание собраныхСкачивание собраных
артефактов нужнойартефактов нужной
версии с Nexusверсии с Nexus
Скачивание собраныхСкачивание собраных
артефактов нужнойартефактов нужной
версии с Nexusверсии с Nexus
Сборка элементовСборка элементов
инфраструктуры черезинфраструктуры через
jem + puppetjem + puppet
Сборка элементовСборка элементов
инфраструктуры черезинфраструктуры через
jem + puppetjem + puppet
Запуск тестов базовойЗапуск тестов базовой
проверки установкипроверки установки
Запуск тестов базовойЗапуск тестов базовой
проверки установкипроверки установки
Запуск тестов проверкиЗапуск тестов проверки
всего фунционала, уже навсего фунционала, уже на
уровне пользователяуровне пользователя
Запуск тестов проверкиЗапуск тестов проверки
всего фунционала, уже навсего фунционала, уже на
уровне пользователяуровне пользователя
Отправка результатовОтправка результатов
тестирования на почтутестирования на почту
Отправка результатовОтправка результатов
тестирования на почтутестирования на почту
Удаление виртуальныхУдаление виртуальных
серверов и приложениясерверов и приложения
JemJem
Удаление виртуальныхУдаление виртуальных
серверов и приложениясерверов и приложения
JemJem
Containers
patching
Задача
• Применять патчи безопасности на все окружения
всех пользователей
• Давать пользователям возможность
самостоятельно обновить компоненты их
окружений в случае выхода их новой версии
Реалии
• Каждый контейнер – отдельная монолитная ОС
• Применение 1 патча для одного контейнера
(yum update) занимает от 30 секунд до 10 минут:
1. Подключение ко всем репозиториям
2. Проверка зависимостей
3. Загрузка RPM-пакета и его зависимостей
4. Установка пакета
• Среднее количество виртуальных контейнеров на
сервер – 200
• Количество серверов 10-40
Проблемы
• Установка security-патча на все контейнеры
занимает очень много времени
• Многократная дупликация данных (70%
одинаковых данных)
• Создание и особенно восстановление из backup
достаточно затратны
• Пользователь не может влиять на процесс и
расписание обновлений
Решение
• Ушли от монолитной архитектуры контейнеров
• Разделили контейнеры на:
• Общие данные/движки: Java, Tomcat, MySQL…
• Приватные данные(специфичные конфигурации):
• Приложений(настройки, дистрибутивы)
• ОС
Решение
• Все версии движков находятся на каждом
физическом сервере в специальном каталоге
• На всех физических серверах всегда одинаковый
набор версий всех движков
• В контейнерах множественные mount points на
конкретные версии движков
• В контейнерах находятся только приватные
данные
Решение
SpaceWalk
Результат
• Обновление движкаприменение security path:
• Remount
• Мгновенно 
• Значительно сэкономили место и время
обновления
• Можно переключиться на любую версию движка
– процесс полностью безопасен
• Пользователи могут выбрать применять или нет
обновления движков
Обновление физического сервера
• Если требуется перезагрузка – применяем kexec
Обновление ОС в контейнерах
• Заливаем новый Virtuozzo template на сервер
• Меняем template у каждого контейнера
• Быстро, но с Downtime 
Спасибо!
Jelastic.com
dl@jelastic.com

More Related Content

What's hot

FUJITSU Integrated System Appliance for VMware EVO: RAIL™
FUJITSU Integrated System Appliance for VMware EVO: RAIL™FUJITSU Integrated System Appliance for VMware EVO: RAIL™
FUJITSU Integrated System Appliance for VMware EVO: RAIL™Fujitsu Russia
 
Нагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows AzureНагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows AzureNatalia Efimtseva
 
Как devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальшеКак devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальшеKirill Vechera
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandexaviatakz
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxDotNetConf
 
Процессоры Intel® Xeon® E5-2600 v3
Процессоры Intel® Xeon® E5-2600 v3Процессоры Intel® Xeon® E5-2600 v3
Процессоры Intel® Xeon® E5-2600 v3Cisco Russia
 
Сергей Орлов
Сергей ОрловСергей Орлов
Сергей ОрловCodeFest
 
Описание технологии защиты данных
Описание технологии защиты данныхОписание технологии защиты данных
Описание технологии защиты данныхEDISON Software Development Centre
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to productionAnton Turetsky
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...MskDotNet Community
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндексit-people
 
Kubernetes security best practice
Kubernetes security best practiceKubernetes security best practice
Kubernetes security best practiceDmitry Lazarenko
 
Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...CEE-SEC(R)
 
McAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud SecurityMcAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud SecurityVladyslav Radetsky
 
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...SQALab
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияSQALab
 

What's hot (20)

DevOps
DevOps DevOps
DevOps
 
FUJITSU Integrated System Appliance for VMware EVO: RAIL™
FUJITSU Integrated System Appliance for VMware EVO: RAIL™FUJITSU Integrated System Appliance for VMware EVO: RAIL™
FUJITSU Integrated System Appliance for VMware EVO: RAIL™
 
Нагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows AzureНагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows Azure
 
CD with Jenkins. Lessons Learned
CD with Jenkins. Lessons LearnedCD with Jenkins. Lessons Learned
CD with Jenkins. Lessons Learned
 
Как devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальшеКак devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальше
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под Linux
 
Процессоры Intel® Xeon® E5-2600 v3
Процессоры Intel® Xeon® E5-2600 v3Процессоры Intel® Xeon® E5-2600 v3
Процессоры Intel® Xeon® E5-2600 v3
 
Automation Compliance Checks
Automation Compliance ChecksAutomation Compliance Checks
Automation Compliance Checks
 
Сергей Орлов
Сергей ОрловСергей Орлов
Сергей Орлов
 
Описание технологии защиты данных
Описание технологии защиты данныхОписание технологии защиты данных
Описание технологии защиты данных
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
 
Kubernetes security best practice
Kubernetes security best practiceKubernetes security best practice
Kubernetes security best practice
 
Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...
 
McAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud SecurityMcAfee - Optimized Solutions for Cloud Security
McAfee - Optimized Solutions for Cloud Security
 
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
 
Microsoft Virtualization(Plex)
Microsoft Virtualization(Plex)Microsoft Virtualization(Plex)
Microsoft Virtualization(Plex)
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестирования
 

Viewers also liked

Алена Новоселова, Яндекс.Деньги
Алена Новоселова, Яндекс.ДеньгиАлена Новоселова, Яндекс.Деньги
Алена Новоселова, Яндекс.ДеньгиNata_Churda
 
Елизавета Штофф, iChar
Елизавета Штофф, iCharЕлизавета Штофф, iChar
Елизавета Штофф, iCharNata_Churda
 
Александр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС КонсалтингАлександр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС КонсалтингNata_Churda
 
Артем Кумпель, ITmozg
Артем Кумпель, ITmozgАртем Кумпель, ITmozg
Артем Кумпель, ITmozgNata_Churda
 
Шпунтенко Ольга, Mail.ru Group
Шпунтенко Ольга, Mail.ru GroupШпунтенко Ольга, Mail.ru Group
Шпунтенко Ольга, Mail.ru GroupNata_Churda
 
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"Nata_Churda
 
«Хайлоад в рассылке почты: как спать спокойно»
«Хайлоад в рассылке почты: как спать спокойно»«Хайлоад в рассылке почты: как спать спокойно»
«Хайлоад в рассылке почты: как спать спокойно»Nata_Churda
 
«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...
«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...
«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...Nata_Churda
 
Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"Nata_Churda
 

Viewers also liked (9)

Алена Новоселова, Яндекс.Деньги
Алена Новоселова, Яндекс.ДеньгиАлена Новоселова, Яндекс.Деньги
Алена Новоселова, Яндекс.Деньги
 
Елизавета Штофф, iChar
Елизавета Штофф, iCharЕлизавета Штофф, iChar
Елизавета Штофф, iChar
 
Александр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС КонсалтингАлександр Семенов, КОРУС Консалтинг
Александр Семенов, КОРУС Консалтинг
 
Артем Кумпель, ITmozg
Артем Кумпель, ITmozgАртем Кумпель, ITmozg
Артем Кумпель, ITmozg
 
Шпунтенко Ольга, Mail.ru Group
Шпунтенко Ольга, Mail.ru GroupШпунтенко Ольга, Mail.ru Group
Шпунтенко Ольга, Mail.ru Group
 
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
Александра Алябьева "Поиск IT-специалистов. Шагнем за рамки привычного?"
 
«Хайлоад в рассылке почты: как спать спокойно»
«Хайлоад в рассылке почты: как спать спокойно»«Хайлоад в рассылке почты: как спать спокойно»
«Хайлоад в рассылке почты: как спать спокойно»
 
«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...
«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...
«Лучшие предложения aviasales.ru, или как не упустить важное среди 150 миллио...
 
Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"Алексей Аболмасов "Критерии сильного HR-решения"
Алексей Аболмасов "Критерии сильного HR-решения"
 

Similar to «Механизмы обновления платформы и окружений пользователей в Jelastic»

SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...ebuc
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПОDmitry Lazarenko
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Использование технологий виртуализации Vmware
Использование технологий виртуализации VmwareИспользование технологий виртуализации Vmware
Использование технологий виртуализации VmwareКРОК
 
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продуктаМодуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продуктаYana Brodetski
 
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Cisco Russia
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияCOMAQA.BY
 
станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...
станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...
станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...DataArt
 
Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...
Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...
Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...DataArt
 
Cis critical security controls. контроль 3 безопасная конфигурация устройств
Cis critical security controls. контроль 3   безопасная конфигурация устройствCis critical security controls. контроль 3   безопасная конфигурация устройств
Cis critical security controls. контроль 3 безопасная конфигурация устройствTeymur Kheirkhabarov
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 

Similar to «Механизмы обновления платформы и окружений пользователей в Jelastic» (20)

SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
It meetup cd
It meetup cdIt meetup cd
It meetup cd
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Sivko
SivkoSivko
Sivko
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Использование технологий виртуализации Vmware
Использование технологий виртуализации VmwareИспользование технологий виртуализации Vmware
Использование технологий виртуализации Vmware
 
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продуктаМодуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
 
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации Тестирования
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...
станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...
станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant д...
 
Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...
Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...
Станислав Мехоношин «Инфраструктура для разработки в один клик, или Vagrant д...
 
Cis critical security controls. контроль 3 безопасная конфигурация устройств
Cis critical security controls. контроль 3   безопасная конфигурация устройствCis critical security controls. контроль 3   безопасная конфигурация устройств
Cis critical security controls. контроль 3 безопасная конфигурация устройств
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 

More from Nata_Churda

«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»Nata_Churda
 
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...Nata_Churda
 
«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...Nata_Churda
 
«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»Nata_Churda
 
Белогрудов Владислав, EMC
Белогрудов Владислав, EMCБелогрудов Владислав, EMC
Белогрудов Владислав, EMCNata_Churda
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, OracleNata_Churda
 
Анатолий Кондратьев, Exigen Services
Анатолий Кондратьев, Exigen ServicesАнатолий Кондратьев, Exigen Services
Анатолий Кондратьев, Exigen ServicesNata_Churda
 
Алексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsАлексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsNata_Churda
 
Анна Ященко, Google
Анна Ященко, GoogleАнна Ященко, Google
Анна Ященко, GoogleNata_Churda
 
Акулов Егор, Mail.ru Group
Акулов Егор, Mail.ru GroupАкулов Егор, Mail.ru Group
Акулов Егор, Mail.ru GroupNata_Churda
 
Екатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozgЕкатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozgNata_Churda
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, OracleNata_Churda
 
Павел Савинкин, Sell Solutions
Павел Савинкин, Sell SolutionsПавел Савинкин, Sell Solutions
Павел Савинкин, Sell SolutionsNata_Churda
 

More from Nata_Churda (13)

«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»«PRFLR - OpenSource инструмент для анализа производительности кода»
«PRFLR - OpenSource инструмент для анализа производительности кода»
 
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
«Делимся опытом разработки высоконагруженных мобильных приложений на примере ...
 
«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...«Как ради производительности высоконагруженного приложения мы разработали соб...
«Как ради производительности высоконагруженного приложения мы разработали соб...
 
«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»«Облачная платформа Windows Azure для высоконагруженных проектов»
«Облачная платформа Windows Azure для высоконагруженных проектов»
 
Белогрудов Владислав, EMC
Белогрудов Владислав, EMCБелогрудов Владислав, EMC
Белогрудов Владислав, EMC
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, Oracle
 
Анатолий Кондратьев, Exigen Services
Анатолий Кондратьев, Exigen ServicesАнатолий Кондратьев, Exigen Services
Анатолий Кондратьев, Exigen Services
 
Алексей Николаенков, Devexperts
Алексей Николаенков, DevexpertsАлексей Николаенков, Devexperts
Алексей Николаенков, Devexperts
 
Анна Ященко, Google
Анна Ященко, GoogleАнна Ященко, Google
Анна Ященко, Google
 
Акулов Егор, Mail.ru Group
Акулов Егор, Mail.ru GroupАкулов Егор, Mail.ru Group
Акулов Егор, Mail.ru Group
 
Екатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozgЕкатерина Евсеева, ITmozg
Екатерина Евсеева, ITmozg
 
Александр Ильин, Oracle
Александр Ильин, OracleАлександр Ильин, Oracle
Александр Ильин, Oracle
 
Павел Савинкин, Sell Solutions
Павел Савинкин, Sell SolutionsПавел Савинкин, Sell Solutions
Павел Савинкин, Sell Solutions
 

«Механизмы обновления платформы и окружений пользователей в Jelastic»

  • 2. PaaS • Глобальная автоматизация • Простота управления приложениями • Масштабирование приложения в зависимости от нагрузки • Целостность и безопасность данных приложения PaaS значительно снижает затраты времени и денег на обслуживание
  • 3. Jelastic is the next generation of cloud hosting which can run and scale ANY Java & PHP applications with no code changes required
  • 4. Easy to Create  Set up your cloud environment in seconds  No extra installation or configuration  No APIs to code to  Wide range of software stacks that you need
  • 5. Easy to Deploy  One-click deployment  Application version control  Git & SVN support  Maven, Ant & Jenkins support
  • 6. Easy to Scale  Vertical & Horizontal scaling  Fast resource changes Easy to Manage  Managing application lifecycle  Control and analyze
  • 7.
  • 8.
  • 9. Вычислительные Контейнеры • Каждый элемент окружения – отдельный контейнер(REC) • Все контейнеры типизированы • Для каждого метатипа определен свой протокол по которому ядро взаимодействует с ним • Взаимодействие ядра и конкретного контейнера происходит по SSH • Все контейнеры динамически оптимизируются для оптимальной утилизации ресурсов
  • 15. Сложная инфраструктура Resolver Database server Jelastic Core Hivext Core Awaikener Zabbix app server Zabbix db server Logging server RPM repositoryAutotests server
  • 17. Проблемы Исторически платформа устанавливалась и обновлялась вручную: • Разработчики патчили наживую продакшены • Доработка напильником и «Уникальная» конфигурация • Состав патча/инсталлятора распределен между головами 3-4 человек
  • 18. Результат проблем • Установка с 0 растягивается на неделю • Более суток на непрерывное обновление • Очень большой Downtime • Невозможность предсказать все проблемы и затраченное время • Про тиражирование можно забыть
  • 19. Что было нужно? • Управление разворачиванием сложной конфигурации • Полная автоматизация установки и обновления • Простая параметризация под конкретную площадку
  • 20. Чего пытались добиться? • Дешевое тиражирование платформы • Ускорение процессов установки и обновления • Минимизация Downtime • Минимизация рисков от человеческого фактора
  • 21. Выбор системы автоматизации • Puppet • Chef • Cfengine • Self-made
  • 22. Структура Puppet Классы инфраструктурных харднод Классы инфраструктурных приложений Классы инфраструктурных контейнеров Классы общих приложений Конфиги хостера Объявление объектов Манифесты(Классы) РесурсыОбьекты Артефакты Динамические данные (параметризированные конфигурации и скрипты ) Статические данные (файлы конфигураций и скрипты)
  • 23. Содержимое инсталлятора • Инфраструктурные приложения • Клиентские приложения • Базы данных • RPM-Пакеты • Конфигурации
  • 24. RPM • Из них формируются шаблоны контейнеров: •Tomcat •MySQL •Nginx… • Собираются с помощью maven • Сохраняются с помощью Jenkins в центральный RPM-репозиторий
  • 25. Workflow установки Puppet Master node Jem managing application GITGIT RepositoryRepository GITGIT RepositoryRepository R&D Department Operations Department Install config Hosters config Objects declaration NexusNexus JenkinsJenkins RPM repoRPM repo
  • 26. Установка платформы 1. Заранее подготавливается инфраструктура: •Сеть •Делегируется корневая Dns-зона •SSL-сертификаты 2. Нужные параметры зашиваются в скрипт, который: •Устанавливает систему виртуализации •Создает и конфигурирует все инфраструктурные контейнеры 3. Установка полностью автоматизирована ~ 3 часа
  • 27. Обновление БД • Икрементальные шаблонизированные SQL скрипты • Специальный менеджер обновления, который обеспечивает правильный порядок и правильность выполнения скриптов • Поддержка обратной совместимости
  • 28. Проблема • Во время обновление БД заблокирована • Много Alter на больших таблицах занимает много времени (на практике до 2х часов) Следствие • Downtime инфраструктурных приложений и БД может достигать нескольких часов
  • 29. Кластерный режим обновления • Перекидывание виртуальных IP (VIP) • Смена DNS - A записей • Смена точки входа в платформу • Поочередное обновление каждого экземпляра: 1. Active-Active 2. Active-Standby (Updating) 3. Standby (Updating)-Active 4. Active-Active
  • 31. Обновление БД Multi-Master Replication Manager for MySQL : 1.Останавливаем репликацию 2.Запоминаем номер транкзакции T1 (checkpoint) 3.Данные пишутся только на первый узел 4.Обновляем второй узел 5.Включаем репликацию 6.Новые данные копируются с узла 1 на узел 2 7.Меняем роли между 1м и 2м узлом 8.Обновляем первый узел, так же как и второй 9.В итоге кластер БД полностью синхронизирован
  • 32. Проверка 1. CI на нескольких STAGED-площадках: 1. Установка с 0 2. Обновление с одной на другую версию 3. Автотесты 2. CI на нескольких SuperSTAGED- площадках: 1. Обновление на следующую версию 2. Автотесты 3. Только потом обновление Production
  • 33. Continuous Integration Скачивание конфиговСкачивание конфигов хостера с репозиторияхостера с репозитория OPSOPS Скачивание конфиговСкачивание конфигов хостера с репозиторияхостера с репозитория OPSOPS Установка и запуск JemУстановка и запуск Jem приложенияприложения Установка и запуск JemУстановка и запуск Jem приложенияприложения Скачивание манифестовСкачивание манифестов нужной версиинужной версии с репозитория R&Dс репозитория R&D Скачивание манифестовСкачивание манифестов нужной версиинужной версии с репозитория R&Dс репозитория R&D Скачивание собраныхСкачивание собраных артефактов нужнойартефактов нужной версии с Nexusверсии с Nexus Скачивание собраныхСкачивание собраных артефактов нужнойартефактов нужной версии с Nexusверсии с Nexus Сборка элементовСборка элементов инфраструктуры черезинфраструктуры через jem + puppetjem + puppet Сборка элементовСборка элементов инфраструктуры черезинфраструктуры через jem + puppetjem + puppet Запуск тестов базовойЗапуск тестов базовой проверки установкипроверки установки Запуск тестов базовойЗапуск тестов базовой проверки установкипроверки установки Запуск тестов проверкиЗапуск тестов проверки всего фунционала, уже навсего фунционала, уже на уровне пользователяуровне пользователя Запуск тестов проверкиЗапуск тестов проверки всего фунционала, уже навсего фунционала, уже на уровне пользователяуровне пользователя Отправка результатовОтправка результатов тестирования на почтутестирования на почту Отправка результатовОтправка результатов тестирования на почтутестирования на почту Удаление виртуальныхУдаление виртуальных серверов и приложениясерверов и приложения JemJem Удаление виртуальныхУдаление виртуальных серверов и приложениясерверов и приложения JemJem
  • 35. Задача • Применять патчи безопасности на все окружения всех пользователей • Давать пользователям возможность самостоятельно обновить компоненты их окружений в случае выхода их новой версии
  • 36. Реалии • Каждый контейнер – отдельная монолитная ОС • Применение 1 патча для одного контейнера (yum update) занимает от 30 секунд до 10 минут: 1. Подключение ко всем репозиториям 2. Проверка зависимостей 3. Загрузка RPM-пакета и его зависимостей 4. Установка пакета • Среднее количество виртуальных контейнеров на сервер – 200 • Количество серверов 10-40
  • 37. Проблемы • Установка security-патча на все контейнеры занимает очень много времени • Многократная дупликация данных (70% одинаковых данных) • Создание и особенно восстановление из backup достаточно затратны • Пользователь не может влиять на процесс и расписание обновлений
  • 38. Решение • Ушли от монолитной архитектуры контейнеров • Разделили контейнеры на: • Общие данные/движки: Java, Tomcat, MySQL… • Приватные данные(специфичные конфигурации): • Приложений(настройки, дистрибутивы) • ОС
  • 39. Решение • Все версии движков находятся на каждом физическом сервере в специальном каталоге • На всех физических серверах всегда одинаковый набор версий всех движков • В контейнерах множественные mount points на конкретные версии движков • В контейнерах находятся только приватные данные
  • 42. Результат • Обновление движкаприменение security path: • Remount • Мгновенно  • Значительно сэкономили место и время обновления • Можно переключиться на любую версию движка – процесс полностью безопасен • Пользователи могут выбрать применять или нет обновления движков
  • 43. Обновление физического сервера • Если требуется перезагрузка – применяем kexec Обновление ОС в контейнерах • Заливаем новый Virtuozzo template на сервер • Меняем template у каждого контейнера • Быстро, но с Downtime 

Editor's Notes

  1. В двух словах Platform as a Service - это множество серверов с программной оболочкой, заточенной для обслуживания приложений своих пользователей. Пользователями PaaS могут быть как разработчики SaaS -приложений, так и предприятия со своими корпоративными приложениями. При этом PaaS берет на себя такие задачи как простоту администрирования приложений, выделение приложениям требуемых вычислительных ресурсов (память, процессор, биски и т.п.) и обеспечение целостности и безопасности данных. Тем самым использование PaaS позволяет владельцам существенно сэкономить время и деньги на обслуживании своих приложений.