26
Puppet под нагрузкой Антон Турецкий

Puppet под нагрузкой.(Антон Турецкий)

  • Upload
    ontico

  • View
    820

  • Download
    13

Embed Size (px)

Citation preview

Page 1: Puppet под нагрузкой.(Антон Турецкий)

Puppet под нагрузкой,

!Антон Турецкий!

!

Page 2: Puppet под нагрузкой.(Антон Турецкий)

О чем этот доклад?!•  Puppet, общая информация!•  Кластеризация, масштабирование!•  Асинхронный Storeconfigs!•  Сборка Report’ов (оно нам надо)!•  Анализ полученных данных!!

Page 3: Puppet под нагрузкой.(Антон Турецкий)

 Puppet у нас действительно под

большой нагрузкой!Badoo это:!

•  Более 160 000 000 пользователей!•  6 админов!•  7 000 000 MAU на админа!•  Более 2000 серверов!•  2000/6 ~ 330 серверов на админа!

Page 4: Puppet под нагрузкой.(Антон Турецкий)

Как работает Puppet!

PuppetMasterNode

Page 5: Puppet под нагрузкой.(Антон Турецкий)

Как работает Puppet!

Puppet

MasterNodeFacts

(http POST)

Page 6: Puppet под нагрузкой.(Антон Турецкий)

Как работает Puppet!

PuppetMasterNode Send

Catalog

Page 7: Puppet под нагрузкой.(Антон Турецкий)

Как работает Puppet!

Puppet

MasterNode

Report

(http POST)

Page 8: Puppet под нагрузкой.(Антон Турецкий)

Как работает Puppet!

PuppetMasterNode

Collect Reports

Report Collector

Page 9: Puppet под нагрузкой.(Антон Турецкий)

Что и зачем нам улучшать?!

PuppetMaster

Node Node Node Node NodeNode

From Scratch

Page 10: Puppet под нагрузкой.(Антон Турецкий)

Добавим еще клиентов…!

PuppetMaster

Node Node Node Node NodeNode

Node Node Node Node NodeNode Node

Page 11: Puppet под нагрузкой.(Антон Турецкий)

… ещё немного…!

PuppetMaster

Node Node Node Node NodeNode

Node Node Node Node NodeNode Node

Node Node Node Node NodeNode Node

Page 12: Puppet под нагрузкой.(Антон Турецкий)

Проблема №1!

PuppetMaster

Node Node Node Node NodeNode

Node Node Node Node NodeNode Node

Node Node Node Node NodeNode Node408 Request Timeout

Page 13: Puppet под нагрузкой.(Антон Турецкий)

Знакомьтесь: Unicorn!

ü Балансируем на уровне ядра Linux!ü Все процессы запускаются в своем окружении!ü Обновляем, не теряя коннекты “nginx-style”!ü Может слушать на нескольких интерфейсах!

PuppetMaster

Node Node Node Node NodeNode

PuppetMaster

PuppetMaster

PuppetMaster

PuppetMaster

PuppetMaster

Unicorn

Page 14: Puppet под нагрузкой.(Антон Турецкий)

In God we Trust!ü  Следит за состояниемпроцессов!

ü  Обслуживает несколько окружений!

ü  Прост в настройке!

Unicorn

CAUnicorn

Testing

Unicorn

Prod

START/ST OP START/ST OP

START/ST OP

GOD

Page 15: Puppet под нагрузкой.(Антон Турецкий)

http-балансировка? Слышали!!

upstreamPuppet

CAupstreamPuppetTesting

upstreamPuppetProd

Nginx~ /production/

~ /testing/~ /certificate/

Page 16: Puppet под нагрузкой.(Антон Турецкий)

Вспомним теорию?!

PuppetMasterNode

StoreDB

Report Collector

Page 17: Puppet под нагрузкой.(Антон Турецкий)

Что такое Storeconfigs?!

PuppetMaster

StoreDB

Store DB = MySQL!  

Page 18: Puppet под нагрузкой.(Антон Турецкий)

Пишем асинхронно!

Puppet

Master

STOMP Server puppet queue Store

DB

Page 19: Puppet под нагрузкой.(Антон Турецкий)

Следим за процессом!

ü  http ü  tagmail ü  log ü  rrdgraph ü  store

Page 20: Puppet под нагрузкой.(Антон Турецкий)

Следим за процессом!

ü  http ü  tagmail ü  log ü  rrdgraph ü  store

Page 21: Puppet под нагрузкой.(Антон Турецкий)

The Foreman – наш выбор!

Page 22: Puppet под нагрузкой.(Антон Турецкий)

А что у нас там внутри?!

by type by Events

Page 23: Puppet под нагрузкой.(Антон Турецкий)

Timeline!

Puppet 2.6.17 Puppet 3.0.0

code fix

Page 24: Puppet под нагрузкой.(Антон Турецкий)

Puppet + HighLoad!

ü Используй несколько процессов!ü Балансируй нагрузку!ü Будь уверен в том, что сможешь масштабировать!

ü Собирай (и читай) отчеты!ü Собирай их асинхронно!

Page 25: Puppet под нагрузкой.(Антон Турецкий)

Спасибо!

Page 26: Puppet под нагрузкой.(Антон Турецкий)

Ваши вопросы?,!!

[email protected]!Twitter: @tyrchenok!