Виртуализация как инструмент разработчика

22
Виртуализация как инструмент разработчика Подготовлена специально для #openitpro Кириллов Александр, Web developer in UNDEV 1

Upload: open-it

Post on 22-Jun-2015

180 views

Category:

Engineering


2 download

DESCRIPTION

Vagrant - поднимаем проект на рабочей машине Vagrant может быть еще проще (Vagrant plugins) Как Ansible упрощает разворачивание проекта в Vagrant А вы пробовали Docker?

TRANSCRIPT

Page 1: Виртуализация как инструмент разработчика

Виртуализация как инструментразработчикаПодготовлена специально для #openitpro

Кириллов Александр,

Web developer in UNDEV

1

Page 2: Виртуализация как инструмент разработчика

Кому нужна виртуализация?• Датацентры и гибридные облака

• Внутренняя инфраструктура

• Просто инструмент

• DevOps Engineer

• Test Engineer

• Developers

2

Page 3: Виртуализация как инструмент разработчика

Зачем виртуализация разработчику?Если вы разработчик и...

Несколько проектов

+

Зависимость от разных типов програмного обеспечения

=

Ваша машина просто напичкана мусором

3

Page 4: Виртуализация как инструмент разработчика

Зачем виртуализация разработчику?Если вы разработчик и...

Несколько проектов

+

Зависимость от разных версий програмного обеспечения

=

Ваша машина все еще напичкана мусором

4

Page 5: Виртуализация как инструмент разработчика

Зачем виртуализация разработчику?Текущий разработчик (с частичной но не актуальной) информацией

как воссоздать среду разработки

+

Новый разработчик в команде (с чистой машиной, или другой

операционной системой)

=

Проблемы c установкой среды разработки, вплоть до невозможности

работы на этой ОС

5

Page 6: Виртуализация как инструмент разработчика

Зачем виртуализация разработчику?Development environment

Production/Staging/CI environment

=

Синдром "Странно, а на моей машине работает!"

6

Page 7: Виртуализация как инструмент разработчика

Идеальный вариант$> git clone [email protected]/user/project

$> cd project

$> $run_magic_command$

$> run_server -args

01.

02.

03.

04.

7

Page 8: Виртуализация как инструмент разработчика

Идеальный вариант$> git clone [email protected]/user/project

$> cd project

$> vagrant up

$> run_server -args

01.

02.

03.

04.

8

Page 9: Виртуализация как инструмент разработчика

Vagrant

Development environments made easy.

http://vagrantup.com

Page 10: Виртуализация как инструмент разработчика

Vagrant - это не только VirtualBoxVagrant providers:

• VirtualBox

• VMware

• Hyper-V (Windows 8.1 only)

• Parallels

• Libvirt

• AWS

• DigitalOcean

10

Page 11: Виртуализация как инструмент разработчика

Vagrant - это не только ChefProvisioning:

• File, Shell

• Ansible

• Chef

• Docker

• Puppet

• Salt

• OpenShift

11

Page 12: Виртуализация как инструмент разработчика

Vagrant. Дополнения, которые облегчатвам жизнь

• vagrant-vbguest

• vagrant-omnibus

• vagrant-exec

• vagrant-cachier

• vagrant-hostmanager

• vagrant-dns

• vagrant-snap

12

Page 13: Виртуализация как инструмент разработчика

Vagrant. Стало гораздо проще!...

# for vagrant-exec plugin

config.exec.root = "/vagrant"

config.exec.prepend_with "bundle exec", \

only: %w(rails rake unicorn sidekiq middleman)

config.exec.prepend_with "USER=Kirillov bundle exec",\

only: %w(cap)

...

01.

02.

03.

04.

05.

06.

07.

08.

13

Page 14: Виртуализация как инструмент разработчика

Vagrant. Стало гораздо проще!$> git clone [email protected]/user/project

$> cd project

$> vagrant up

$> vagrant exec middleman server

$> vagrant exec cap production deploy

01.

02.

03.

04.

05.

14

Page 15: Виртуализация как инструмент разработчика
Page 16: Виртуализация как инструмент разработчика

Vagrant. AnsibleОсновные архитектурные принципы

1. SIMPLY CLEAR

2. SIMPLY FAST

3. SIMPLY COMPLETE

4. SIMPLY EFFICIENT

5. SIMPLY SECURE

16

Page 17: Виртуализация как инструмент разработчика

Vagrant. Ansible. Playbook:

17

Page 18: Виртуализация как инструмент разработчика

Vagrant. Не все так безоблачно :-/• Требователен к ресурсам машины

• Довольно сложно дебажить из редактора/IDE

• Shared folders (жить можно только через nfs)

• ...

18

Page 19: Виртуализация как инструмент разработчика

А вы пробовали Docker?

19

Page 20: Виртуализация как инструмент разработчика

А вы пробовали Docker?• Application-centric

• Automatic build

• Versioning

• Component re-use

• Sharing

• Tool ecosystem

20

Page 21: Виртуализация как инструмент разработчика

И тут тоже проблемы• "Работает только в *nix

• Общие ресурсы машины (сеть, диски, библиотеки, фс)

• Работа через VirtualBox не тривиальна

21

Page 22: Виртуализация как инструмент разработчика