Top Banner
Спикер Тема Стас Мехоношин Или для разработчиков Инфраструктура для разработки в один клик
17

станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Jul 27, 2015

Download

Documents

DataArt
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Спикер

Тема

Стас Мехоношин

Или для разработчиков

Инфраструктура для разработки в один клик

Page 2: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Современное приложение

• Множество сервисов

• Множество компонентов

• Множество серверов

Page 3: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Множество сервисов

• Database

• Key-Value Storage

• Message Queue

• Logs Storage

Page 4: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Множество компонентов

• WebService1

• WebService2

• Background Processer1

• Background Processer2

Page 5: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Множество серверов

● app1.myapp.com

● app2.myapp.com

● db.myapp.com

● log.myapp.com

Page 6: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Проблемы?

● Запуск проекта новым

девелопером

● Управление конфигурацией

инфраструктуры

Page 7: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Новый девелопер

Ставит все сервисы локально

Или использует сервисы со Staging

Page 8: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Vagrant

Появился как Ruby Gem в 2010 году

Теперь есть инсталлер для всех ОС

www.vagrantup.com

Абстракция над гипервизорами VM

По-дефолту без UI

Page 9: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Как пользоваться?

Vagrantfile в корне проекта

git clone myproject

vagrant up

Page 10: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Vagrantfile

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box_url = "http://some/url"

config.vm.define "core", primary: true do |dev| dev.vm.network :forwarded_port, guest: 6379, host: 6379 # redis dev.vm.provision :shell, inline: script end

config.vm.define "web1" do |node| node.vm.network :private_network, ip: "#{SUBNET}.12" endend

Page 11: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

2 подхода

Запускаем проект у себя, а зависимости в VM:1. пробрасываем порты2. приложение запускаем в хостовой системе

Запускаем проект также в VM:1. шарим папку с кодом2. код в хостовой системе3. приложение в гостевой

Page 12: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Провайдеры

● Virtualbox(Default)

● VMWare

● Docker

● Hyper-V

● Amazom EC2

Page 13: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Provision

● Shell(*sh, PowerShell)

● Chef

● Puppet

● Ansible

● Salt

Page 14: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Как не надо делать

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box_url = "http://url-to-super-ready-box"

config.vm.define "myVM" do |node| endend

Page 15: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Управление конфигурацией

Конфигурация - это код

Конфигурация должна быть воспроизводимой

Не нужно ходить на сервера по SSH

Централизованное управление

Page 16: станислав мехоношин «инфраструктура для разработки в один клик, или Vagrant для разработчиков»

Какие бонусы?

Локальный запуск проекта за 5 минут

Быстрый подъем нового сервера

Автоматическая выкатка на N серверов

Спокойствие

Просветление