31
Highload++ 2015 highlight Ansible + Docker © Pavel Alexeev, 2016 1

Ansible+docker (highload++2015)

Embed Size (px)

Citation preview

Page 1: Ansible+docker (highload++2015)

Highload++ 2015

highlightAnsible + Docker

© Pavel Alexeev, 20161

Page 2: Ansible+docker (highload++2015)

DevOPSDocker в работе: взгляд на его использование в Badoo через год

Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте)

2

Page 3: Ansible+docker (highload++2015)

Disclaimer

Информация и часть слайдов позаимствованы из оригинальных презентаций:● Docker в работе: взгляд на его использование в Badoo через год / Турецкий

Антон Михайлович● Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном

проекте) / Чистяков Александр Анатольевич

3

Page 4: Ansible+docker (highload++2015)

DOCKER

4

Page 5: Ansible+docker (highload++2015)

5

Page 6: Ansible+docker (highload++2015)

Ansible?

6

Page 7: Ansible+docker (highload++2015)

7

Page 8: Ansible+docker (highload++2015)

8

Page 9: Ansible+docker (highload++2015)

9

Page 10: Ansible+docker (highload++2015)

10

Page 11: Ansible+docker (highload++2015)

11

Page 12: Ansible+docker (highload++2015)

12

Page 13: Ansible+docker (highload++2015)

13

Page 14: Ansible+docker (highload++2015)

14

Page 15: Ansible+docker (highload++2015)

15

Page 16: Ansible+docker (highload++2015)

16

Page 17: Ansible+docker (highload++2015)

17

Page 18: Ansible+docker (highload++2015)

18

Page 19: Ansible+docker (highload++2015)

19

Page 20: Ansible+docker (highload++2015)

20

Page 21: Ansible+docker (highload++2015)

21

Page 22: Ansible+docker (highload++2015)

Решение Badoo.Есть свободные, например Docker

Swarm

22

Page 23: Ansible+docker (highload++2015)

23

Docker registryThe Registry is a stateless, highly scalable server

side application that stores and lets you distribute Docker images.

tightly control where your images are being stored

integrate image storage and distribution tightly

into your in-house development workflow

Git-based

Start your registry:$ docker run -d -p 5000:5000 --name registry registry:2Pull (or build) some image from the hub:$ docker pull ubuntuTag the image so that it points to your registry:$ docker tag ubuntu localhost:5000/myfirstimagePush it:$ docker push localhost:5000/myfirstimagePull it back:$ docker pull localhost:5000/myfirstimageNow stop your registry and remove all data:$ docker stop registry && docker rm -v registry

Page 24: Ansible+docker (highload++2015)

Ansible

24

Page 25: Ansible+docker (highload++2015)

25

Page 26: Ansible+docker (highload++2015)

26

Page 27: Ansible+docker (highload++2015)

27

Page 28: Ansible+docker (highload++2015)

WHAT IS ANSIBLE?● cloud provisioning

● configuration management

● application deployment

● intra-service orchestration

● Multi-tier deployment

● No agents and no additional custom security infrastructure

● Very simple language (YAML, in the form of Ansible Playbooks)

28

Page 29: Ansible+docker (highload++2015)

MANAGE YOUR INVENTORY IN SIMPLE TEXT FILES

● By default, used a very simple INI inventory file

● Many services also supported

● Plugins like EC2, Rackspace, OpenStack, and more.

Here's what a plain text inventory file like:

[webservers]

www1.example.com

www2.example.com

[dbservers]

db0.example.com

db1.example.com

29

Page 30: Ansible+docker (highload++2015)

---- hosts: webserversserial: 5 # update 5 machines at a timeroles: - common - webapp

- hosts: content_serversroles: - common - content

---- yum: name={{contact.item}} state=installedwith_items: - app_server - acme_software

- service: name=app_server state=running enabled=yes

- template: src=/opt/code/templates/foo.j2 dest=/etc/foo.confnotify: - restart app server

Playbook looks like

30