SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Шаблон “Service Discovery” в
методологии DevOps
Алексей Алексеев
Кратко о DevOps
Паттерны в DevOps
Technical People Process
Continious Integration
Continious Deployment
Continiuos Testing
Automated Testing
etc….
Job Rotation
Full Stack Engineers
Integrated Teams
Join Meetings
etc….
Infrastructure as Code
Service Discovery
Monitoring
Developer Self Service
etc….
Service Discovery
- В понимании DevOps это общий
инфраструктурный паттерн
- направлен на обеспечении целостности
связей между приложениями и сервисами
- создает единую точку доступа к сервисам
Несколько слов об окружениях
DEV STAGE
DB
DB Application
Application
DB
И как нам это внедрить?
1. Что нужно для вредрения?
2. Куда бежать?
3. Что читать?
4. Если это у нас будет - у нас будет
DevOps?
5. Нам нужно все переделывать под
этот паттерн?
Инструментарий
Краткое сравнение
DNS Api REST Api Плюсы Минусы
Нет Да SSL, кластеризация Частая смена api
Да Да Кластеризация Отсутствие хранилища,
ограничение на размер ответа
Doozer Нет Нет Кластеризация Отсутствие поддержки
проекта, свой протокол.
ZooKeeper Нет Нет Устоявщийся проект,
большое комьюнити
Java, необходимость встраивать
клиента в приложение.
Service Discovery для QA
- Управление инфраструктурой
- Генерация тестовых данных
- Генерация конфигураций
- Автоматическая настройка CI
Генерация тестовых данных
ТестыService
Discovery
Запрос данных/шаблона
Ответ с готовыми
данными
Тестовые
данные
Генерация тестовых данных
class TestEtcdData(unittest.TestCase):
def setUp(self):
self.testUser=requests.get('http://localhost:2379/v2/keys/test-user')
def test_get_data(self):
self.assertEqual(self.testUser.json()['node']['value'], 'Ivan')
if __name__ == '__main__':
unittest.main()
Генерация конфигураций
ТестыService
Discovery
Запрос данных/шаблона
Ответ с готовыми
данными
Хост
Сервис Сервис
Генерация конфигураций
import socket
serversocket = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', 0))
port=serversocket.getsockname()[1]
print "Fake server running on port %s"%port
serversocket.listen(5)
while 1:
(clientsocket, address) = serversocket.accept()
Генерация конфигураций
OS
Сервис
Serf
Handler Handler
Генерация конфигураций
import sys
import subprocess
serf_payload=""
for line in sys.stdin:
serf_payload+=line
def exec(command):
return subprocess.Popen(command,shell=True, stdout=subprocess.PIPE).stdout.read()
pid=exec("ps aux | grep '%s' | grep -v 'grep' | tr -s ' ' | cut -d' ' -f2 "%serf_payload.rstrip())
port=exec("lsof -w -a -p%s -i4 | grep LISTEN | tr -s ' ' |cut -d' ' -f9 "%pid.rstrip())
print port.split(":")[1]
Применение для CI
Service
Discovery
Применение для CI
https://jenkins-sqadays18.rhcloud.com/
username: sqadays18
password: sqadays18
Плюсы
1. Избавились от десяти мест для хранения
конфигураций
2. Создали единый справочник по сервисам
доступным в окружении
3. Получили гибкое распределенное хранилище
Минусы
1. Сервис для поиска сервисов теперь
полностью на нас
2. Как теперь найти этот сервис?
3. Нет единственного подходящего решения
Контакты
http://linkedin.com/in/alexeyalexeev
voodoo1441
https://google.com/+АлексейАлексеев144

Weitere ähnliche Inhalte

Andere mochten auch

Functional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixFunctional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixIzzet Mustafaiev
 
Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"Vadym Muliavka
 
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...Atwix
 
#nostaging - Software Circus - Amsterdam, 2-9-2016
#nostaging - Software Circus - Amsterdam, 2-9-2016#nostaging - Software Circus - Amsterdam, 2-9-2016
#nostaging - Software Circus - Amsterdam, 2-9-2016Pavel Chunyayev
 
Monitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivMonitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivVsevolod Polyakov
 
Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Rostislav Achilov
 
Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Kristoffer Deinoff
 
Как проекты приходят к DevOps?
Как проекты приходят к DevOps?Как проекты приходят к DevOps?
Как проекты приходят к DevOps?SQALab
 
Continuous integration with Docker and Ansible
Continuous integration with Docker and AnsibleContinuous integration with Docker and Ansible
Continuous integration with Docker and AnsibleDmytro Slupytskyi
 
Implementing DevOps In Practice
Implementing DevOps In PracticeImplementing DevOps In Practice
Implementing DevOps In PracticeZoltán Németh
 
HP Discover Session BB2160: Agile DevOps Continuous Delivery
HP Discover Session BB2160:  Agile DevOps Continuous DeliveryHP Discover Session BB2160:  Agile DevOps Continuous Delivery
HP Discover Session BB2160: Agile DevOps Continuous DeliveryCapgemini
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsPeter Mounce
 
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016Pavel Chunyayev
 
DevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюцииDevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюцииAndrey Rebrov
 
DevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуDevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуAndrey Rebrov
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011Henri Gomez
 
Devops: от заката до рассвета
Devops: от заката до рассветаDevops: от заката до рассвета
Devops: от заката до рассветаAlexander Titov
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 

Andere mochten auch (20)

Functional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenixFunctional web with elixir and elm in phoenix
Functional web with elixir and elm in phoenix
 
Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"
 
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
 
Final melnyk 2
Final melnyk 2Final melnyk 2
Final melnyk 2
 
#nostaging - Software Circus - Amsterdam, 2-9-2016
#nostaging - Software Circus - Amsterdam, 2-9-2016#nostaging - Software Circus - Amsterdam, 2-9-2016
#nostaging - Software Circus - Amsterdam, 2-9-2016
 
Metrics: where and how
Metrics: where and howMetrics: where and how
Metrics: where and how
 
Monitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivMonitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyiv
 
Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)
 
Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013Automated release management with team city & octopusdeploy - NDC 2013
Automated release management with team city & octopusdeploy - NDC 2013
 
Как проекты приходят к DevOps?
Как проекты приходят к DevOps?Как проекты приходят к DevOps?
Как проекты приходят к DevOps?
 
Continuous integration with Docker and Ansible
Continuous integration with Docker and AnsibleContinuous integration with Docker and Ansible
Continuous integration with Docker and Ansible
 
Implementing DevOps In Practice
Implementing DevOps In PracticeImplementing DevOps In Practice
Implementing DevOps In Practice
 
HP Discover Session BB2160: Agile DevOps Continuous Delivery
HP Discover Session BB2160:  Agile DevOps Continuous DeliveryHP Discover Session BB2160:  Agile DevOps Continuous Delivery
HP Discover Session BB2160: Agile DevOps Continuous Delivery
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOps
 
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
 
DevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюцииDevOps модное слово или следующая ступень эволюции
DevOps модное слово или следующая ступень эволюции
 
DevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почемуDevOps от и до - что, зачем и почему
DevOps от и до - что, зачем и почему
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 
Devops: от заката до рассвета
Devops: от заката до рассветаDevops: от заката до рассвета
Devops: от заката до рассвета
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 

Mehr von SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Mehr von SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Шаблон "Service Discovery" в методологии DevOps