Павел Пушкарев "Отказоустойчивость сервисов"

30
Павел Пушкарев Руководитель группы администрирования Отказоустойчивость сервисов Я.Субботник, Санкт-Петербург, 30 июня 2012 года

Upload: yandex

Post on 01-Jul-2015

1.154 views

Category:

Technology


5 download

DESCRIPTION

Возьмем абстрактный сервис в вакууме и сделаем его отказоустойчивым. Разберем сервис на составляющие и рассмотрим каждую в отдельности.

TRANSCRIPT

Page 1: Павел Пушкарев "Отказоустойчивость сервисов"

Павел ПушкаревРуководитель группы администрирования

Отказоустойчивость сервисов

Я.Субботник, Санкт-Петербург, 30 июня 2012 года

Page 2: Павел Пушкарев "Отказоустойчивость сервисов"

2

Зачем всё это нужно?

Page 3: Павел Пушкарев "Отказоустойчивость сервисов"

3

Зачем всё это?

● Деньги

Page 4: Павел Пушкарев "Отказоустойчивость сервисов"

4

Зачем всё это?

● Деньги● Имидж

* эта бутылка должна наталкивать на мысли про имидж и жажду

Page 5: Павел Пушкарев "Отказоустойчивость сервисов"

5

Зачем всё это?

● Деньги● Имидж● Тренировка ;-)

Page 6: Павел Пушкарев "Отказоустойчивость сервисов"

6

Конкретизируем сервис

Page 7: Павел Пушкарев "Отказоустойчивость сервисов"

7

Наша цель — сделать сервис совсем без точек отказа!

Page 8: Павел Пушкарев "Отказоустойчивость сервисов"

8

Отказоустойчивость регулярных узлов

Page 9: Павел Пушкарев "Отказоустойчивость сервисов"

9

Собрать балансировщик

● Добавим компьютеров

Page 10: Павел Пушкарев "Отказоустойчивость сервисов"

10

Собрать балансировщик

● Добавим компьютеров

● Соберем балансировщик нагрузки

Page 11: Павел Пушкарев "Отказоустойчивость сервисов"

11

Популярные балансировщики

nginx http://nginx.org

haproxy http://haproxy.1wt.eu

ipvs http://kernel.org

Page 12: Павел Пушкарев "Отказоустойчивость сервисов"

12

Точка отказа осталась

Page 13: Павел Пушкарев "Отказоустойчивость сервисов"

13

Точка отказа осталась

Page 14: Павел Пушкарев "Отказоустойчивость сервисов"

14

Точка отказа осталась

Нужен умный протокол● heartbeat ● ospf

Page 15: Павел Пушкарев "Отказоустойчивость сервисов"

15

Отказоустойчивость хранилищ

Page 16: Павел Пушкарев "Отказоустойчивость сервисов"

16

Что это и зачем это?

Храним большие объемы данных:● тексты ● картинки ● легальную ;-) музыку● ролики и лыжи

Page 17: Павел Пушкарев "Отказоустойчивость сервисов"

17

Как хранить?

● Самый простой способ — в файликах

● Добавить способ синхронизации

Page 18: Павел Пушкарев "Отказоустойчивость сервисов"

18

Как еще хранить?

Использовать отказоустойчивое хранилище:

● elliptics ● HDFS ● GPFS● mulca

Page 19: Павел Пушкарев "Отказоустойчивость сервисов"

19

Отказоустойчивостьбаз данных

Page 20: Павел Пушкарев "Отказоустойчивость сервисов"

20

Проблема баз данных

Не предназначены для обеспечения отказоустойчивости

Page 21: Павел Пушкарев "Отказоустойчивость сервисов"

21

Стандартная репликация MySQL

Page 22: Павел Пушкарев "Отказоустойчивость сервисов"

22

Переключаемый мастер

Page 23: Павел Пушкарев "Отказоустойчивость сервисов"

23

Как переключать?

● mmm — один датацентр● Собственные механизмы

переключения− DNS− OSPF− Метабаза

Page 24: Павел Пушкарев "Отказоустойчивость сервисов"

24

Другие базы данных?

Базы попроще: MongoDB● умеет сама переключать

мастера● зависит от клиентской

библиотеки

Page 25: Павел Пушкарев "Отказоустойчивость сервисов"

25

Кластерные базы

● MySQL cluster● Galera cluster● Oracle RAC

Page 26: Павел Пушкарев "Отказоустойчивость сервисов"

26

Отказоустойчивостьгенераторов

Page 27: Павел Пушкарев "Отказоустойчивость сервисов"

27

Почему не как фронтенды?

● Задача запускается один раз● Но при этом хочется, чтобы

компьютеры не простаивали :-)

Page 28: Павел Пушкарев "Отказоустойчивость сервисов"

28

Система синхронизации

Используем распределенную систему синхронизации

● dispofa ● zookeeper

Page 29: Павел Пушкарев "Отказоустойчивость сервисов"

29

Вопросы?

Page 30: Павел Пушкарев "Отказоустойчивость сервисов"

Руководитель группы администрирования

[email protected] @riarheos

Павел Пушкарев