77
Автоматизация инфраструктуры. Зачем мы это делаем?

Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Embed Size (px)

Citation preview

Page 1: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Автоматизация инфраструктуры. Зачеммы это делаем?

Page 2: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

О себе

Page 3: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

В компании:

—  2 года

3

Page 4: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

В компании:

—  2 года

Команда:

—  Infrastructure & Operations

4

Page 5: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

В компании:

—  2 года

Команда:

—  Infrastructure & Operations

—  9 человек

5

Page 6: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Инфраструктура

Page 7: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Куда деплоить?

Page 8: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

8

Page 9: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

Pros

9

Page 10: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

Pros

—  Просто

10

Page 11: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

Pros

—  Просто

—  Зачем что то еще

11

Page 12: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

А что с Windows и OS X?

Page 13: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

Pros

—  Просто

—  Зачем что то еще

Cons

13

Page 14: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

Pros

—  Просто

—  Зачем что то еще

Cons

—  Разные операционные системы

14

Page 15: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

OK, Linux!

Page 16: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально

Pros

—  Просто

—  Зачем что то еще

Cons

—  Разные операционные системы

—  Проблемы с зависимостями

16

Page 17: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально, с изоляцией

17

Page 18: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально, с изоляцией

—  VirtualBox

18

Page 19: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально, с изоляцией

—  VirtualBox

—  KVM

19

Page 20: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально, с изоляцией

—  VirtualBox

—  KVM

—  LXC

20

Page 21: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Локально, с изоляцией

—  VirtualBox

—  KVM

—  LXC

—  Docker

21

Page 22: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Развиваемся

Page 23: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

New case

—  Интеграция

23

Page 24: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

New case

—  Интеграция

—  Демо стенды

24

Page 25: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

New case

—  Интеграция

—  Демо стенды

—  Continuous Integration

25

Page 26: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

New case

—  Интеграция

—  Демо стенды

—  Continuous Integration

—  Auxiliary Software

26

Page 27: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

2 ГИС

Page 28: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск
Page 29: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

2 ГИС

—  Справочник и карты

—  Web, Mobile, Desktop

—  35 команд

29

Page 30: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Проблемы

Конец 2013 ­ Proxmox Virtual Environment

30

Page 31: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Проблемы

Конец 2013 ­ Proxmox Virtual Environment

—  Виртуалка = тикет админам

31

Page 32: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Проблемы

Конец 2013 ­ Proxmox Virtual Environment

—  Виртуалка = тикет админам

—  Нет разделения по проектам

32

Page 33: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Проблемы

Конец 2013 ­ Proxmox Virtual Environment

—  Виртуалка = тикет админам

—  Нет разделения по проектам

—  Слабый API

33

Page 34: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Проблемы

Конец 2013 ­ Proxmox Virtual Environment

—  Виртуалка = тикет админам

—  Нет разделения по проектам

—  Слабый API

—  Платные плагины

34

Page 35: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Что у нас есть?

—  Свое железо

35

Page 36: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Что у нас есть?

—  Свое железо

—  Системный администраторы

36

Page 37: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Что у нас есть?

—  Свое железо

—  Системный администраторы

—  Опыт в виртуализации

37

Page 38: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Требования к решению

—  Эффективная утилизация железа

38

Page 39: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Требования к решению

—  Эффективная утилизация железа

—  Командные ресурсы

39

Page 40: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Требования к решению

—  Эффективная утилизация железа

—  Командные ресурсы

—  Модульность

40

Page 41: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Требования к решению

—  Эффективная утилизация железа

—  Командные ресурсы

—  Модульность

—  Легко дорабатывать

41

Page 42: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Требования к решению

—  Эффективная утилизация железа

—  Командные ресурсы

—  Модульность

—  Легко дорабатывать

—  API

42

Page 43: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Требования к решению

—  Эффективная утилизация железа

—  Командные ресурсы

—  Модульность

—  Легко дорабатывать

—  API

—  Изоляция

43

Page 44: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Варианты

—  Публичное облако (AWS, Digital Ocean, Rackspace)

44

Page 45: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Варианты

—  Публичное облако (AWS, Digital Ocean, Rackspace)

—  Приватное облако (VMware, HP)

45

Page 46: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Варианты

—  Публичное облако (AWS, Digital Ocean, Rackspace)

—  Приватное облако (VMware, HP)

—  Приватное облако open­source (Apache Cloudstack, OpenStack)

46

Page 47: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

47

Page 48: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

OpenStack

Набор сервисов для построения публичного или приватного

облака

48

Page 49: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

49

Page 50: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

OpenStack

—  Релиз раз в полгода ­ status.openstack.org

—  Базовые компоненты ­ github.com/openstack

—  Инкубатор ­ github.com/stackforge

—  Конференции, встречи, maillists ­ openstack.org/community

50

Page 51: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Контрибьюторы OpenStack

openstack.org/foundation/companies

—  Red Hat

—  Rackspace

—  IBM

—  Intel

—  Cisco

51

Page 52: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Решение проблем инфраструктуры

—  Эффективная утилизация железа

—  Командные ресурсы

—  Модульность

—  Легко дорабатывать

—  API

—  Изоляция

52

Page 53: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Инфраструктура потребованию

Page 54: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Инфраструктура по требованию

server:

depends_on: [ ip_address, dns_record ]

type: OS::Nova::Server

properties:

name: { get_param: name }

flavor: { get_param: flavor }

image: { get_param: image }

key_name: { get_param: key_name }

01.

02.

03.

04.

05.

06.

07.

08.

54

Page 55: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Инфраструктура по требованию

heat stack-create API -f api.yml \

-P key_name="id_rsa" \

-P name=api-all-in-one \

-P flavor=medium \

-P image="ubuntu-14.04-x64"

01.

02.

03.

04.

05.

55

Page 56: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Статус

Page 57: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Control Plane

3 Infra Nodes

—  RAM: 30 GB

—  CPU: 8

—  Storage: 100 GB

57

Page 58: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Network Nodes

2 KVM

—  RAM: 8 GB

—  CPU: 8

—  Storage: 100 GB

58

Page 59: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Командные ресурсы

8 Compute Nodes

—  RAM: 250 GB

—  CPU: 32

—  Storage: 900 GB

59

Page 60: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Командные ресурсы

8 Compute Nodes

—  RAM: 250 GB

—  CPU: 32

—  Storage: 900 GB

~ 350 VM

60

Page 61: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Уроки

Page 62: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

62

Page 63: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

63

Page 64: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

—  Network

64

Page 65: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

—  Network

—  MySQL Galera, Rabbit MQ

65

Page 66: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

—  Network

—  MySQL Galera, Rabbit MQ

—  DNS

66

Page 67: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

—  Network

—  MySQL Galera, Rabbit MQ

—  DNS

—  Python

67

Page 68: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

—  Network

—  MySQL Galera, Rabbit MQ

—  DNS

—  Python

—  Infrastructure as a Code

68

Page 69: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Команда

—  Ansible

—  Virtualization

—  Network

—  MySQL Galera, Rabbit MQ

—  DNS

—  Python

—  Infrastructure as a Code

—  Continuous Integration

69

Page 70: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

70

Page 71: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

71

Page 72: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Внедрение

—  Documentation

72

Page 73: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Внедрение

—  Documentation

—  TechTalks

73

Page 74: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Внедрение

—  Documentation

—  TechTalks

—  Работа с командами

74

Page 75: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Итог

Page 76: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Итог

—  Быстрый deploy продуктов

—  CI в командах

—  Развитие автоматизации

—  Разгрузили админов

76

Page 77: Автоматизация инфраструктуры. Зачем мы это делаем? Денис Яковлев, 2ГИС, Новосибирск

Яковлев Денис

Вопросы? 

[email protected] 

Спасибо!