deflope

DevOps Дефлопе

Русскоязычный подкаст о DevOps

013 - Счастливый выпуск

Текстовая расшифровка подкаста

Новости

Обсуждение

У нас в гостях Константин Назаров и Михаил Жолобов

Расшифровка

И.Е.: Здравствуйте. в эфире 13-й выпуск подкаста DevOps Дефлопе и с вами его постоянные ведущие Никита Борзых…

Н.Б.: … и Иван Евтухович.

Практична ли неизменяемая инфраструктура

И.Е.: В блоге компании Chef 23 июня вышла статья Джулиана Данна, которая называется “Неизменяемая инфраструктура. Практично или нет”. В данной статье Джулиан рассказывает позицию кампании Chef по поводу того, что тема докера и контейнеров набирает популярность. Они пишут, что контейнеры будут использоваться как легкие виртуальные машины, а так же как способ изолировать процесс или наборы процессов. И они считают, что тему управления конфигураций не противостоит контейнерам, а скорее дополняет их, и приводит ссылку на выступление Эрика Виндиха из компании докера, которая разделяет их точку зрения. Дальше в статье рассказывается об истории появления контейнеров и о том какие проблемы с ними могут возникать. При неграмотном использовании контейнеры ничем не лучше war-файлов, разработчики будут перекидываться через забор не war-файлами, а контейнерами, и это будет противоречить самой идее DevOps о сотрудничестве operations и разработки. В статье говорится, что контейнеры будут развиваться, но сама идея чистой неизменной инфраструктуры, конечно же не совсем верна и зачастую может приводить к нежелательным последствиям.

Terraform и Terraform 0.2

Н.Б.: 28-го Июля вышла утилита Teraform, и 28-го августа вышла Teraform 0.2. Так как мы выпускаемся раз в месяц, то мы как раз расскажем о двух версиях утилиты сразу. Итак, Teraform это новая утилита от HashiCorp, которая позволяет, как написано на их сайте, полностью описать вашу архитектуру как код. Что это значит? Мы можем в коде описать настройку балансировщиков, создание DNS-записи, а так же запуск виртуальных машин. На мой взгляд, это как раз то, чего не хватало очень долгое время в нашей индустрии потому, что сейчас для всякие ruby и shell-скрипты для этого используются, а теперь это можно на едином DSL, это описать и записать в git.

Так ли надежен RabbitMQ

И.Е.:В очередной раз нас порадовал Aphyr статьей о том, насколько надежен rabbitmq. Как он называет это - серия статей “Call Me Maybe” и, кто еще не читал, мы часто ссылаемся на этот блог, рекомендую прочитать. В этот раз Aphyr потрошит rabbitmq, и смотрит насколько этот rabbitmq надежен с точки зрения КАП-теоремы. И действительно - не очень надежен. Rabbitmq может терять данные, и там есть рекомендации использовать rabbitmq, как lock-сервис, сервис блокировок, и для этого он также не подходит. Но при этом Aphyr пишет, что хотя rabbitmq не все делает, что мог бы делать для того чтобы данные хранить более безопасно, тем не менее все эти проблемы хорошо описаны в документации rabbitmq, и если вы внимательно ее читаете, то на эти грабли, конечно же не наступите. Для тех, кто не читал еще ни разу Aphyr, что он делает - он берет какую-то модель, по которой будет проверять новую систему относительно КАП-теоремы и с помощью докеров делает много контейнеров, а потом часть из них шлепает, что бы проверить как система устойчива к partition tolerance.

Вышел релиз-кандидат Шеф-сервера 12

Н.Б.: 7 сентября компания Chef анонсировала релиз кандидат 12 версии Chef-сервера. В новой версии ускорен поиск за счет использования новой версии Solr. Так же все энтерпрайз-функции доступны для установки через командную строку. Так же для этих функций есть триал период 30 дней, если вы используете Chef меньше чем 25 нод, то это бесплатно.

Записки о Logstash и Graylog2

И.Е.: Достаточно старая, но при этом достаточно интересная статья о том, что такое Graylog2 и Logstash. Автор статьи искал чем собирать логи, и рассматривал два варианта Logstash и Graylog2. И он достаточно интересно, понятно описывает, что это такое, какие есть куски у этих двух подсистем, какие у них есть интерфейсы, какие у них есть части, если вы не знакомы с тематикой центрального логирования, то это хорошая сточка старта.

Docker 1.2.0

Н.Б.: 22 августа был анонсирован Docker версии 1.2.0. В этом релизе появилась возможность задавать политику рестарта для вашего контейнера. В зависимости от заданной опции Docker может не рестартовать контейнер, рестартовать контейнер в случае ненулевого кода возврата при выходе из контейнера, или рестартовать всегда. Также теперь можно настраивать linux capabilities. Теперь эта настройка сделана в виде белого списка. Напомню, раньше можно было дать либо все привилегии, либо никаких. Ну остальные изменения можно посмотреть по ссылке в show notes.

MDD — metrics driven development

И.Е.: В блоге компании Librato написано об интересном подходе, который называется “metrics driven development” Идея какая - если что-то у вас крутится, то это желательно мерить. И они используют у себя при разработке достаточно простой способ добавлять метрику на любой параметр прямо в код их продукта. Но сейчас многие команды этим занимаются, собирают данные для различных систем мониторинга прямо изнутри своих программных продуктов. Почему это надо? Потому что многие вещи, которые намониторились не только технические, но и которые относятся к бизнес-логике, и, возможно, даже вторые вещи более важны, потому что их сложнее мониторить, и сложнее понять, как на это реагировать. Они пишут о разных вещах, что должны быть красивые удобные графики, должна быть возможность поставить allert на любой график, визуальный причем. Должны быть dashboard графиков, чтобы видеть корреляцию между разными вещами на разных подсистемах. Интересная статья, если вы используете, хотите использовать подход у себя - обратите на него внимание.

Шеф сервер на Go

Н.Б.: Недавно нами был найден один проект под названием “Goiardi”. Это реализация шеф сервера на Go. В качестве DataStore поддерживется запись в базу данных mysql или postgres, также сервис может писать данные просто в файлик бинарный или работать в режиме шеф-зеро. В проекте заявлена одна из функций которая есть в энтерпрайз-шефе - это репортинг. Автор предупреждает, что функция экспериментальная и просит вас написать багрепорт, если вы нашли какую-то проблему.

Rundeck и ограничение операций

И.Е.: Отличная статья про то как можно использовать Rundeck для ограничения операций на серверах. Проблема, которая стояла перед автором этой записи в блог - разрешить пользователям запускать какие-то определенные команды на серверах, но при этом не иметь полного доступа к серверам. И для этого отлично подходит Rundeck - система, которая предназначена для запуска команд на удаленных нодах и имеет развитую систему плагинов, также поддерживает разграничение доступа для различных пользователей. Я думаю, более подробно обсудим Rundeck в обсуждении.

Н.Б.: И последняя новость. Она касается нашего подкаста. Для прошлого эпизода мы сделали экспериментальную текстовую шифровку и нам она очень понравилось. Теперь мы будем делать такие расшифровки для каждого выпуска.

Posh-SSH

И.Е.: Еще один интересный проект называется “Posh-SSH”. Это модуль, который позволяет из powershell скриптов выполнять SSH-команды. То есть если вы например используете powershell как ваш основной инструмент, но у вас есть пара линукс машин в которых что-то делается, вы можете вызывать команды через powershell через ssh. Почему это актуально? Потому что я сейчас по работе много работаю с powershell и для меня этот проект показался интересным. А новостей не сегодня больше нет.

И.Е.: Никита, о чем бы мы хотели сегодня поговорить?

Н.Б.: Давай, для начала обсудим уход со сцены очень крутого коммитера Сета Варго (Seth Vargo).

И.Е.: Да давай, начнем. Такая троллирующая новость. Что случилось, расскажи мне.

Н.Б.: Сет Варго написал в своем блоге о том, что он уходит с кампании шеф, берет творческий отпуск, так было написано?

И.Е.: Sabbatical - творческий отпуск, да.

Н.Б.: Творческий отпуск, да. Ну и собственно все. Вторым абзацем он написал, что сподвигло его, кроме всего остального прочего и его личных заморочек. Он сказал что так как он активно коммитит во все community, начиная от berkshelf-а, cookbook-ов, заканчивая своими проектами. Он достаточно публичный человек и в каких-то вещах community с ним несколько не согласно, в лице некоторых людей. И последнее время получает угрозы жизни по e-mail, две штуки. Это достаточно странная..

И.Е.: Да нет, вполне нормальная. Если ты публичный человек, чтоб тебе не угрожали, такого просто не может быть, особенно в интернетах, где это никого ни к чему не обязывает.

Н.Б.: Одно дело в интернетах, другое дело по e-mail.

И.Е.: Не знаю, я таких угроз не получал, получал пару писем по e-mail, которые реально были очень неприятные.

Н.Б.: Я просто боюсь, что этот человек остановится в своей работе, в плане chef community, скорее всего так оно и будет, но не будем загадывать, но он не просто наверное ушел.

И.Е.: Понимаешь, он действительно был такой противоречивый персонаж, в том смысле, что он много чего и делал и многие вещи реально не всем нравились, они были с моей точки зрения не обдуманные очень часто. И почитав про его биографию, ему 22 год по-моему, или 21.

Н.Б.: Не помню, где-то так.

И.Е.: То есть он достаточно молодой парень, который еще не созрел как инженер до конца, при этом у него действительно огромное количество энергии у него и сил. И понятно почему так реагирует на критику опять же, я думаю, в силу возраста - неприятно когда тебя критикуют. При том я уверен, что он делает, искренне хочет сделать community, продукты, которым пользуются, лучше. Лучше, это тоже такой взгляд - для кого лучше, а для кого и хуже. Нет однозначного критерия, что лучше. И его реакция с одной стороны странная, а с другой стороны - понятна. Я бы больше хотел переключить внимание на рассмотрение этой ситуации как бы более обще. Всегда, когда что-то делаешь, появляются люди, которые недовольны. Довольны вами будут только тогда, когда вы вообще ничего не делаете - к вам никак не будут относиться и ничего не делать довольно безопасная позиция жизненная. Но один большой минус, когда ничего не делаешь - ничего и не сделаешь. Поэтому если у кого-то в жизни, кто занимается open source или еще чем-то, статьи в блоге пишет - обязательно будут люди, которым вы не понравитесь, и более того, по моему опыту, больше всего пишут именно они. Людям, которым вы понравились, ну понравилось, ну закрыл статью, воспользуется вашей библиотекой и забыл. А тот, кому не понравилось постарается, особенно если есть какой нибудь человек с характером, постарается вас достать, задеть и смешать с грязью. Первый раз это очень не приятно, а потом привыкаешь и начинаешь фильтровать. Это часть жизни, есть люди которые вас поддержат - это ваши друзья, не зависимо от того, что вы там сделали, есть люди которые в каком-то смысле ваши враги, они всегда будут вас травить как-то и мешать вам что-то делать. Если обращать внимание, на тех и на других… фидбека от тех и других не много, потому что они реагирую не на то что вы сделали, а просто на вас как на личность. Поэтому я рекомендую людям, которые хотят в жизни что-то сделать - поменьше обращать внимание на явный неконструктивный негатив. Быват конструктивный негатив - это нормально, что вы сделали это кому-то не нравиться, и он объясняет вам, почему именно это ему не нравится - эта информация воспринимается не как обида в вашу сторону, а как обратную связь.

Н.Б.: Аминь.

И.Е.: Да, да, Никита - аминь. Ну это то, к чему с годами начинаешь относиться проще. Я надеюсь, что Сет Варго переосмыслит ситуацию и будет более просто к этому относиться. С другой стороны, компания Шеф мне чем понравилась, в ней сразу написали в своем блоге статью, что друзья мои, это происходящее не очень хорошо, давайте более дружно жить все вместе и мы приведем так же эту статью в шоу-нотах наших.

Н.Б.: Еще интересно, кто подхватит его проекты. Я не знаю, что будет дальше: уйдет ли он совсем, а будут дальше коммитить что он сделал, в том числе меня беспокоит Serverspec, потому что я им активно пользуюсь и не понятно, что будет с ним дальше. Ну посмотрим.

И.Е.: О чем хотелось бы поговорить сегодня еще? Конечно же есть (мы сегодня в новостях его упоминали) сервис, который называется Rundeck.

Н.Б.: Я, кстати, о нем ничего не знаю, расскажи, что это такое.

И.Е.: Ну, помнишь, вечно была проблема в том, что бы к деплою приделать веб-морду у нас.

Н.Б.: По-моему там было несколько вариаций: Strano и какая-то штука на С не помню как называется.

И.Е.: Была Strano которую мы допилили, проект такой - очень узко применимый. Потом я смотрел еще пору штук, я уж даже не помню название, которые мне реально не понравились в силу разных причин. Совсем недавно появился.. Ты не помнишь присылал Антон Колдаев название, нет?

Н.Б.: Нет, к сожелению не помню. То ли “Симон”, то ли “Саймон”, или еще как-то.

И.Е.: Да, да, да . И то же как-то он…

Н.Б.: А ты смотрел?

И.Е.: Я глянул, он мне меньше понравился, чем Rundeck, который я к тому моменту неплохо знал. А Rundeck - это продукт, к которому…. он уже используется компанией Simplify Ops, и используется уже давно, то есть они только начали его активно публично разрабатывать в 2012 году. Но к тому моменту, я посмотрел последний коммит, это была уже работающая система. Он написан на Java, но при этом написан на Java как standalone сервис: jar-ник для которого нужна только JRE. Запускаешь, и у тебя внутри там база данных, можно конечно пользоваться внешней базой данных, но они по умолчанию… даже не знаю что использовать. Может тебе нравится sqlite какой-нибудь, не разбирался. И у тебя сразу появляется штука, для того чтобы запускать любые команды на удаленных серверах через веб-морду. Опять же, что там у них есть очень классное - это разграничение доступа, развито. То есть можно там одним пользователям то дать, другим сё, разные типы операций, все и всё. Интеграция с кучей систем, с chef-ом с jenkins-ом, с ansible-ом, по-моему. Есть плагин, который позволяет запускать удаленные команды на windows через WinRM протокол. И все это красивая система логов, возможность сделать сложные job-задания, которые как workflow работают: сделай то, сделай сё, сделай сё. И все это можно делать через веб-инетрфейс, но при этом у них есть возможность все артефакты, которые возникают, то есть описание заданий экспортировать в yaml или в xml, то есть вы это можете как бы хранить в системе контроля версии, это будет точно такой же код, которым можно удобно пользоваться и распространять его.

Н.Б.: Вань, слушай, я правильно понимаю, что он не относится никак к capistrano, ни к fabric это своя штука у них.

И.Е.: Конечно. Это не capistrano. Но там такой большой плюс, что можно тупо запускать capistrano через эту штуку.

Н.Б.: А смысл тогда в этом какой?

И.Е.: А смысл, как и в предыдущем нашем решении такой: у тебя появляется интерфейс к этому ко всему.

Н.Б.: А только в этом смысл?

И.Е.: Конечно, да. Во вторых, у тебя все логи появляются в нем, логи в смысле кто, когда, что делал и когда он сделал - какой вывод у каждой команды. Опять же все таски capistrano, как бы их руками долго водить, можно сделать задачи депллой, частичный деплой, еще чего-то. Человек, который не помнит задачи capistrano просто нажал на кнопочку и задеплоил или еще чего-то сделал. Варианты использования различные и зависят от того, что необходимо. использовать веб-морду поверх capistrano - минимально, что он может, в каком-то смысле из пушки по воробьям, но более лучшей пушки я пока не знаю. В целом мне очень понравился продукт, он работает, хороши красивый интерфейс у него, удобная морда очень. Прям вообще здорово.

Н.Б.: Слушай, я вспомнил Антона Колдаева, продукт: “Самсон” называется, компания ZenDesk.

И.Е.: Да, да, да. Во первых, там сразу rails stack и у него начинаются приключения, как все это запустить, какая версия ruby и еще чего-то.

Н.Б.: А Rundeck как ставится?

И.Е.: Просто jar-ник запускаешь и все.

Н.Б.: То есть java минус еще что-то такое…

И.Е.: java -jar и название джарник и все

Н.Б.: Отлично.

И.Е.: То есть конечно он может доконфигурить до любого состояния, что была внешняя база данных и более того авторизовался по LDAP, для людей которые любят windows - это особенно актуально.

Н.Б.: А ты уже пробовал это?

И.Е.: Нет, не пробовал, потому что для нас это не актуально, но возможность такая есть. И в целом там много что есть, и он умеет список нод брать из шефа, а еще у него есть HTTP JSON API, и можно любую подсистему с ним интегрировать так или иначе. И еще у него есть набор консольных утилит, которые позволяют многие операции делать прям с консолей. То есть он такой профессиональный, взрослый…

Н.Б.: Комбайн получается.

И.Е.: Такой комбайн, да причем удобный и видно, что люди с нашей проблематикой хорошо знакомы не сферического коня в вакуме сделали, а прям видать под себя пилили и сделали open source. Ну я не знаю, чем занимается Simplify Ops, сейчас я кстати гляну ради интереса… А, они предоставляют Rundeck-pro :) Они вокруг этого продукта просто сделали консалтинговую компанию. Обалденно. То есть у них есть Rundeck-pro - это энтерпрайс-продукт поверх Rundeck, и опять же тренинги и еще чего-то…

Н.Б.: Ну слушай, в отличае все таки Rundeck, от Rundeck-pro - это Professional Support, Enterprise Tested Configuration, траляля (куча иностранных слов)

И.Е.: На самом деле только support важен, все остальное - просто …

Н.Б.: Ну, тут есть несколько галочек, но все это не про код.

И.Е.: Конечно не про код, это именно про то как этим пользоваться. Конечно у них есть огромный опыт внедрения, и они могут рассказать как этим удобнее то или другое сделать, это реально круто. Это называется как раз экспертизой.

Н.Б.: Я предлагаю с тобой по мимо того, что у нас будет в интервью, я предлагаю с тобой еще обсудить продукт Terraform. Мы о них в новостях рассказали, но понимаешь ли ты насколько это крутая, крутейшая просто вещь*

И.Е.: Я так понимаю, Terraform это работающий Chef Metal да? И даже немножко больше.

Н.Б.: Я не считаю, что Chef Metal - это отдельный какой-то продукт. Chef Metal - скорее такой нибудь хак, позволяет запустить машинки в облаке, и что-то там поделать. А это именно отдельная вещь, которая позволяет настраивать твою инфраструктуру, как тебе хочется…

И.Е.: Слушай, это то о чем давно все мечтали, мне кажется? И не понятно пока насколько этим можно пользоваться, пока мы не потрогали это руками.

Н.Б.: Смотри, то что я прочитал: Terraform версии 0.2, которая вышла 28-го числа позволяет тебе использовать кастомные провайдеры и поставляет для него api, чтоб писать их. Фактически, если ты даже используешь приватное облако или просто kvm запускаешь на машинах, ты можешь уже под это сделать код, который будет запускать твою виртуальную машину. У меня есть проблема, которую решает этот Terraform с минимальным допиливанием. Мне нужно разворачивать машину kvm и иметь какое-то описание конфигураций. Мне не нужна система развертывания большая, мне нужна просто штука, которой я в код напишу, что у меня машинок там 5 штук, и чтоб через месяц я все снес - заново поставил, и чтоб тоже было 5 штук такой же конфигурации. Но не отказываться от шефа, потому что шеф должен быть поверх этих машин. Это мой простой кейс, а бывают сложные кейсы, когда тебе нужно еще запись в DNS поправить, балансировщик пойти перенастроить, облачный балансировщик типа Амазон.

И.Е.: Я считаю, что это круто. Во-первых, то что HashiCorp они делают реально, пока еще не совсем готово, у них есть full stack для управления инфраструктурой, у них есть ясное понимание, того что они хотят добиться, они вот consul сделали, мы его обсуждали, по-моему, да?

Н.Б.: Да, обсуждали когда-то давно.

И.Е.: То есть consul, serf, и у них есть все инструменты для того, чтобы подымать инфраструктуру именно как код, и там на облаках и еще где-то, и по-моему это очень круто.

Н.Б.: Сейчас, если у вас Амазон-стек или Google Cloud стек, он полостью покрывает…

И.Е.: Я думаю, что Digital Ocean в том числе.

Н.Б.: В том числе - да.

И.Е.: Очень круто, что то о чем говорили большевики, началось сбываться.

Интервью. В гостях Константин Назаров и Михаил Жолобов

И.Е.: Здравствуйте. А сегодня у нас в студии два сотрудника компании Parallels: Константин Назаров и Михаил Жолобов. Привет ребята. К.Н.: Привет, привет. М.Ж.: Привет.

И.Е.:Традиционно начнем. Расскажите немножечко о себе. Лучше по очереди, а не вместе. К.Н.: ОК, я начну а потом Миша продолжит. Я работаю в компании Parallels, я руковожу отделом внутренней разработке наших кросс-платформенных продуктов. Этот отдел занимается внутренней разработкой. Мы отвечаем за тулзы, за continuous integration, за всякие devops-ы, ну и немножко за поддержку всяких разных сервисов. Интересно то, что у меня background не ops-овый, а программистский - я долгое время проработал системным программистом. Большую часть свое карьеры, это где-то около 10 лет, я программировал на Си на плюсах, писал серверный soft, а потом, в один какой-то день меня что-то ударило и я решил переквалифицироваться. Я понял, что мне гораздо интереснее поддерживать сервисы, чем их писать. В этом плане devops пришелся кстати, и мне удалось сохранить возможность и пописать код, и возможность администрировать - все вместе. Это если очень вкратце.

И.Е.: Ага. Михаил?

М.Ж.: До прихода в Parallels, у меня был весьма не большой опыт работы системным администратором, у меня такой сисадминский background, просто на предыдущем месте работы, в какой-то определенный момент я захотел поискать что-то новое, наткнулся на вакансии в Parallels, столкнулся с таким таинственным словом “devops”. Я почитал, что это такое, что требуется, меня это заинтересовало и я начал готовиться, и просто откликнулся на вакансию, и таким образом через Константина, через собеседование я попал в Parallels. И сейчас мы занимаемся внутренней автоматизацией, разработкой внутренних сервисов. В частности я занимаюсь написанием рецептов для шефа, так же разработкой провайдера для Vagrant, об этом сегодня как раз поговорим. Ну и прочими задачами, смежными с функциями devops.

К.Н.: Да, Миша у нас, можно сказать, главный человек по open source в нашей команде он больше всего контрибьютит. Собственно провайдер - это большая часть Vagrant Parallels. Большей частью его рук дело.

И.Е.: Давайте, раз уж мы этой темы коснулись. С чего начнем? С чего бы вы хотели начать? Я знаю, что у вас есть несколько тем.

К.Н.: Я бы хотел поступить таким образом: мы сегодня собрались, чтобы рассказать про Parallels Desktop 10, как мы его используем, фичи его какие-то новые. Поскольку он вышел совсем недавно, о нем практически никто ничего не знает, кроме обзоров. Мы хотим рассказать, как можно его использовать разработчикам в devops-среде. Начну я, наверное, с того, что просто расскажу по фичам, пройдемся мы по всем новым фичам поверхностно, которые мы там понаписали. И более подробно мы будем останавливаться на фичах, которые интересны конкретным сообществам. А потом в конце расскажем про Vagrant Parallels, подробно у нас будет возможность там более свободно пообщаться, позадавать вопросы, и так далее.

И.Е.: ОК. Поехали.

К.Н.: Я начну с того, что расскажу, что такое Parallels Desktop вообще, потому что есть люди, как оказалось, которые вообще про это ничего не знают. Parallels Desktop - это система виртуализации для мака. Основная наша целевая аудитория - это конечно же windows-пользователи, продукт больше всего продается именно им. Но в принципе мы можем запускать любые виртуальные машины: и с маком в госте, и с Linux в госте. И совсем недавно, буквально около 2х недель назад мы выпустили уже 10 версию нашего продукта. Продукт довольно популярный, кстати, мы наверное … Я не покривлю душой если скажу, что мы более популярны, чем, скажем, VmWare на маке. Мы выпустили довольно много интересных фич, основные фичи мы как-то их по категориям бьем:

Первая - это самая, что наши windows-пользователи очень любят - интеграция, добавилась всякое разное с виндой в основном. Мы очень сильно улучшили производительность, поддержали новые фичи новой MacOS-и, о котором чуть позже расскажем, добавили функционала для бизнес-кастомеров, и, собственно, самое вкусное - мы расширили функционал для ITшников и для разработчиков. По интеграции, как я говорил, я очень поверхностно пройдусь, что в десятке нового: мы умеем расшаривать из гостей, если в винде пользователи нажимают “поделиться” - можно делиться через маковые аккаунты. Стартовый экран windows 8 выглядит, как launchpad, то есть если пользователь тыкает на кнопку “пуск” в винде, мы в маке показываем её, как launchpad. Приложения все достатоно просто интегрируются в то же самый launchpad - если пользователь поставил себе какой-нибудь word, он появится в маковом launchpad-е, будет доступен для запуска. Всякие сохранения в офисах, в iCloud, Google Drive и так далее, которые на маке установлены. Там более упрощенное открывание файлов при помощи перетаскивания на иконку виртуальной машины, уведомления о том, что винда обновляется. Кстати, это было очень сложно сделать, оказалось, что Microsoft очень плохо документировал все, что связано с системными обновлениями, наши пользователи очень ругались, на то, что там мак начинает тормозить, система начинает тормозить, а мы не можем даже предупредить, что обновления в системе пошли. А сейчас уже можем. И то, что очень нравиться пользователям outlook-а, мы показываем в трее маковом количество непрочитанных сообщений. Это очень прикольно в том плане, что это очень близко к тому, как работает Mail App.

М.Ж.: Да, очень привычно пользователям Макоси. В целом, самое главное, что волнует пользователей Parallels Desktop: те, кто его использовал, начиная с предыдущих версий: с 8ки, 9ки. Первое, когда они узнают о Parallels Desktop 10, они спрашивают, что же такого существенного для нас-то поменялось. Самое главное, что волнует пользователей - это конечно же батарейка, потому что в маке это в большинстве своем великолепные ноутбуки, и производительность…экономия энергии - это самое главное для пользователей макоси. Так вот по сравнению с 9кой, у нас в Parallels Desktop 10 работает от батарейки на 30 процентов дольш. Если говорить о работе со Snapshot-ами, там вообще самолет - там на 60 % ускорили действия со Snapshot-ами.

К.Н.: Да, там на самом деле над батарейкой пришлось поработать. Дело в том, что мы там в VmWare постоянно соревнуемся и каждый раз это соревнование по батарейке, просто нос к носу следуем.

М.Ж.: меряемся батарейками, короче.

К.Н.: Да, пытаемся выжать всеми возможными и невозможными способами.

М.Ж.: В общем, windows-пользователи очень любят работать со всякими документами виндовыми, так вот в Parallels Desktop 10 у них открывание файлов, word-вских документов, excel-ев для разных целей и всего прочего по нашим данным на 50% стало быстрее происходить. И еще одна интересная фича, что в 10ке добавилась.

К.Н.: Это самая, по мимо экономии батареи и snapshot-ов, она такая, из производительности самая основная.

М.Ж.: Да, самая основная - это компрессия диска на лету. То, что пользователи раньше переживали, что их виртуальная машина на глазах начинается раздуваться, занимать все больше и больше места. Потом для них придумали замечательную кнопочку “сжать диск” - освободить не нужное пространство на жёстком диске виртуальной машины. Так вот теперь все это происходит еще и на лету - вы совершенно не паритесь на счет места, которое занимает у вас виртуальная машина, компрессия диска происходит прямо во время работы виртуалки.

Н.Б.: Миш, а я правильно понимаю, что это работает только с NTFS файловой системы? Компрессия дисков?

К.Н.: Это не совсем так. Линуксовые гости тоже поддерживаются.

М.Ж.: Самые распространенные фаил-системы как NTFS на винде, так и ext4 в линуксе и, я думаю, HFS в маке тоже должна.

К.Н.: Но кстати вы посмеётесь, но там это не зависит от файловой системы. На сколько я понимаю, (я могу понимать не правильно), в моем понимании это сделано через trim-команду. Диск видится в госте как SSD и хост умеет обрабатывать трим-команды и выкидывать сектора. Точно так же, как очисnка SSD-дисков делается. Принцип похожий.

Н.Б.: То есть сейчас в современных файловых системах это будет работать само?

К.Н.: Ну да, это должна быть поддерка файловой системы и операционки, Но в принципе она должна работать. Причем насколько я знаю, в Линукс за счет архитектуры линукс удалось даже большие гарантии дать чем в винде. Мне вот компрессия диска очень нравится, это одна из самых моих лично любимых.

Н.Б.: Но только раньше приходилось его руками нажимать - довольно неприятно было, то есть должен был помнить…

К.Н.: Да. Ну и плюс я не совсем понимаю - для меня темный лес, как раньше работало, потому что дисковые утилиты дам довольно сложные, сейчас хоть мне понятно, что происходит, сейчас прозрачненько.

М.Ж.: И последняя фича, на которую хотелось бы обратить внимание на счет производительности - это то, что у нас виртуальные машины стали использовать на 10% меньше памяти, мак-памяти. При тех же самых задачах дополнительные 10% памяти в вашем маке освобождаются.

Н.Б.: Это overhead? За счет того, что overhead меньше? Или что?

К.Н.: Overhead-а меньше, я честно говоря тоже не вдавался в подробности - как это сделано, потому что я полагаю, что это не из одного места эта память расходуется. Мне лично сложно прокомментировать откуда, но факт фактом - на 10% уменьшили. Дальше.

М.Ж.: Самое сладкое.

К.Н.: На самом деле, уже последние пару лет точно, мы выходим один в один, это уже не секрет, с выходом новой версии макоси. И поэтому мы стараемся каждой новой версией макоси поддержать что-нибудь из всяких вкусных фич, которые сам Apple делает. Год от года получается по-разному, в этом году вышло несколько простых функций, и опять же я скажу про свою любимую. Первая функция - это поддержка, проброс всяких Dropbox-ов, iCloud-ов. В основном, это iCloud и photo library, которые теперь появились в яблочных сервисах облачных. Гостевые машины могут теперь с ними общаться. Можно позвонить при помощи айфона с гостевой машины, то есть если тыкнуть в телефонный номер, прямо айфон начнет звонить тому человеку, чей номер появился.

Н.Б.: Это новая фича, которая..?

К.Н.: Эта фича самого Yosemite, и фича новой iOS 8.

М.Ж.: Да, только теперь это можно уже делать из гостевой windows.

Н.Б.: Круто.

К.Н.: В расшаривании тоже самое, по тому же, наверно, принципу решили сделать расшаривание текста. Из той же самой винды в iMessage по смс-ке чтоб послать. Очень прикольно следали для spotlight-а, там же в Yosemite улучшили Spotlight. Он теперь выглядит, теперь по центру, красивенький такой, более функциональный - можно больше контекста видеть по крайней мере. Сделали поддержку самого Parallels Desktop-а, возможность найти какую-то виртуальную машину и посмотреть ее состояние, выключить - включить.

М.Ж.: Да, просто начинаете вбивать в spotlight имя виртуальной машины и сразу же вылазит ее иконка, можно ее запустить, открыть настройки и все прочее.

К.Н.: Да, и вот, собственно,мое самое любимое, что вышло - это notifications центр. Это справа вверху еще кнопка на лептопе с вайпом справа это делаю. В общем, открывается новый notifications-центр там видно…

М.Ж.: Потребление ресурсов.

К.Н.: Да. Там можно посмотреть потребление ресурсов в Parallels Desktop, увидеть, что сейчас там происходит, увидеть сам Parallels Desktop. Я так понимаю, что собственно поддержка того, что там будет доступно, будет обновляться. Но, в общем, способ быстро посмотреть утилизацию ресурсов по ВМ-кам, мне очень понравился. То есть прям свайпаешь и не нужно лезть никуда в диспетчер задач, можно сразу посмотреть, какая ВМка отъедает.

М.Ж.: Расскажи еще про PDE. Про бизнес, что у нас…

К.Н.: Ну, PDE, кстати говоря, часто спрашивают у нас, к слову о PDE, специфичен ли он, например…

М.Ж.: Про Parallels Desktop Enterprise.

К.Н.: Про Parallels Desktop Enterprise у нас есть специальная версия для всяких компаний, которые любят централизованно устанавливать Parallels Desktop, у нас есть ряд американских университетов, которые ставят его…, централизовано раскатывают его под своим компьютером. Им конечно нужно, поскольку Parallels Desktop запускается с достаточно высокими привилегиями. Пользователи, которые приходят в класс, они запускаю word, но они могут взять и удалить машины, поменять настройки, по-другому ее как-то за-screw-up-ить.

М.Ж.: Поставить героев там, например.

К.Н.: Ну, да. Хотя это уже странно. Эпоха уже не та немного. Что сейчас популярно ставить?

М.Ж., Н.Б.: Доту.

К.Н.: Дота должна работать в PD, а у нас не плохая поддержка игр. Люди, по крайней мере, играют. Я сам не играю - на маке у меня Mac Book Air, там особенно не поиграешь. А люди с машинами помощнее играют. Так вот, собственно, бизнес мне лично вот этот вот Parallels Desktop для энетрпрайза не особенно интересен, да и нашим пользователям основным не особенно интересен. Просто позволяет за-constrain-ить определенное количества вещей и установить тотальный контроль из одного центра, чтоб следить за лицензиями.

Н.Б.: Кость, а это отдельный продукт или это вместе все поставляется?

К.Н.: Вообще это просто специальный статус лицензии, на сколько я понимаю. Просто покупается специальная лицензия и становятся доступны дополнительные фичи. Плюс у нас есть какие-то пакеты расширений, например у нас есть deployment package, который позволяет деплоить сразу на кучу машин. Бизнесс-фичи… по бизнес-фичам добавилось не много, добавили с USB-устройствами, способ запретить их использовать, поддержку загрузки по сети машин виртуальных с удобным управлением, поддержка firewall, и настраиваемый control center, что б там убрать или еще как-то там за-constrain-ить. Вот, это все собственно про PDE, и про энтерпрайз . И самое интересное, мы сейчас подошли, это то о чем мы будем рассказывать, все оставшееся время - это решение для разработчиков.

М.Ж.: Такие нововведения, которые актуальны для разработчиков, IT-специалистов, в частности то, что юзаем мы сами. Первое, что мы узнали, когда готовилась Parallels Desktop 10- это то что будут у нас linked clone, так называемые, т.е. возможность использовать уже существующий диск виртуальной машины для новой - так я понимаю.

К.Н.: Идея там в том, что когда создается новая машина на базе template-а, ее диск не полностью копируется, а только то что с template используется, оно остается в единственном экземпляре. Такой себе copy-on-write.

М.Ж.: И все, что новое идет, оно записываются уже в другой слой, в другой диск.

К.Н.: Ну, да. Собственно диск… основной template у нас остается общим и не перезаписывается, а вот те данные, которые перезаписались, они записываются уже в диск конкретной машины.

М.Ж.: Это позволяет тем, кто делает много копий одной и той же ВМ-ки, экономить место, по сути, то есть этот template, общий для все получается.

К.Н.: Ну, да. Или если ты эксперементирушь как то с софтом, можно не тратить слишком много места, потому что например windows-машины, даже многие линуксы или маки, есть у нас маковые разработчики, тестируют софт под маком. Им нужна маковая машина и например 10 ее разных вариантов с разным установленным софтом. А маковые маши могут весить 10ки гигабайт.

Н.Б.: Слушайте а у меня сразу вопрос возникает: поддерживается ли эта фича в Vagrant, в Vagrant Parallels, я имею ввиду.

К.Н.: Это такой ключевой вопрос, это очень будет пригодно и это…

М.Н.: Мы собираемся попробовать, потому что преимущества очевидны, мы их озвучили, но есть и подводные камни, их хотелось бы…

Н.Б.: Вы понимаете, что у все почти, если мак, то это ноутбук, и на ноутбуке мало места, а ты запускаешь 5-6 виртуалок, то место заканчивается довольно быстро. Такая штука была б в Vagrant Parallels, было б очень удобно, хоть в каком-то виде.

К.Н.: Мы об этом говорили, да, с Мишей об этом говорили уже. Пока мы собираемся поэкспериментировать. Там же знаете как бывает. У Vagrant у самого, про которого мы говорили, довольно странное внутреннее устройство, могут быть проблемы за использованием linked clone, Vagrant любит шарахать по rm-ом по виртуальным машинам.

М.Ж.: Не то чтоб любят шарахать, дело в том, что когда мы используем такой linked clone, мы по сути завязываемся на источнике, этого самого изначального template-а. А в Vagrant это обычный template, бокс так называемый в Vagrant-те, и если мы его решим удалить, то все ВМки, которые когда либо были созданы от него, они становятся неработоспособными.

К.Н.: Надо просто подумать как правильно это обвязать.

М.Ж.: Ка сделать надежнее.

К.Н.: Как правильно преподать пользователям: сообщениями, warning-ами, что-то еще придумать. Как-то его там переспросить 20 раз при удалении - как обычно бывает в таком софте.

М.Ж.: Ну да, собственно еще следующее, (тут бы я сыграл звук фанфар, но у меня его нет к сожалению), Parallels Desktop Provider для Vagrant. Это то, о чем и вы в своем подкасте упоминали, и мы уже даже на наших замечательных devops-этапах рассказывали, где только уже не говорили о нем, таком замечательно маленьком плагине, такого замечательного продукта как Vagrant, который позволяет запускать виртуалки собственным…

К.Н.: Про Vagrant мы еще позже расскажем, сейчас пока оговоримся, что это из все фич, которые мы сделали в Parallels Desktop 10, для нашей команды это наверное самая такая любимая. Если из всех выбирать, ее больше всего любим, так что мы вложили в нее очень много времени и сил.

М.Ж.: За год работы в Parallels я, наверное процентов 60 времени потратил на работу с провайдерами и смежными с ними проектами.

К.Н.: Давай уж закончим с тем, что сделано для developers и перейдем к вагранту.

М.Ж.: Да, а то мы тут затянули, скажут, больше ребят с Parallels не позовем, он что то тут про свой продукт все время рассказывают без умолку.

К.Н.: На самом деле, ну а что продукт, мы ж на самом деле про него и собрались поговорить.

Н.Б.: Ну конечно, причем продукт хороший, почему бы про него и не рассказать.

К.Н.: Почему бы лишний раз и не прорекламировать. Значит еще по улучшениям сделали поддержку 16ти процессорных ядер, просто вышли же эти же - ведра.

М.Ж.: Счастливые обладатели Ведер мак про могут все свои ядра и 10ки гигабайт своей бесконечной памяти передать на благо windows-виртуалок, ну или…

И.Е.: Я думаю, один слушатель нашего подкаста.

К.Н.: Едва ли

И.Е.: 0,5, да.

М.Ж.: А вы, кстати, видели живого обладателя Mac Pro?

И.Е.: Я видел старый Mac Pro.

К.Н.: Нет, я имею в виду старый все видели, а новый у нас тоже… Мы поскольку тестируем на новых - тоже есть, но я имею ввиду такого живого, не корпоративного обладателя, у которого дома на каком-нибудь хипcтерском деревянном столе стоит.

И.Е.: Не, нет.

К.Н.: Вот мы тоже не видели ни одного пока.

М.Ж.: Но для него сделали 16 процессоров и 64 Гб памяти -пожалуйста

К.Н.: Можно всю свою память отдать на виртуалки.

М.Ж.: Он же для этого брал Mac Pro, а зачем еще? Винду пускать. Собственно линукс-разработчики, те, кто любит всякие прикольные штуки в виде KVM-ок, Zen-а и всякой прочей виртуализации в линуксе, но про этом очень любят мак и использовать линукс под виртуалкой в Parallels Desktop, теперь “Nested”, так называемая nested виртуализация - виртуалка в виртуалке поддерживается для гостевых систем Линукс, да.

К.Н.: Не все понимают зачем это, но я объясню: просто бывают случаи, когда вы используете виртуализацию в продакшн где-то, именно не контейнеры, а виртуализацию, и вам нужно повторить ту же самую среду. И тогда эта nested виртуализация очень кстати, потому что вы хоть как-то сможете прогнать ее в том же самом Vagrant-е, без этого будет сложно.

Н.Б.: Пока мы не ушли далеко от виртуализации, как и системных тем. Вот раньше была проблема, что нельзя было запустить Parallels Desktop и Virtual Box одновременно. Ну они несовместимы видимо были и что-то не работало. В 10ке пофиксили эту штуку или так же не запускается?

М.Ж.: Да, наконец-то, да, это решено.

К.Н.: Неужели, а я про это не знал.

М.Ж.: Я знал, я проверял, я отвечал уже несколько раз людям. Да, это теперь так, теперь можно спокойненько. Любителям виртуалбоксов начитавшихся обычных дефолтных статей по Vagrant-ту, или просто по каким-нибудь причинам использующих виртуалбокс - пожалуйста, запускайте виртуалбокс, рядом Parallels Desktop, если ресурсы вашего Mac Pro или что у вас позволяет без проблем. Ничего не умрет, не выключится, не попросит послать репорт в Parallels.

К.Н.: Это, конечно, хорошо, но раньше я таких пользователей в Twitter находил и рекомендовал им vagrant-parallels и они будут счастливы использовать свой виртуалбокс.

Н.Б.: Ну просто есть случаи, когда нельзя все на Parallels запустить.

К.Н.: Понятно, это понятно

М.Ж.: Справедливости ради, конечно, такие вещи, когда две системы виртуализации не работают одновременно. В душе-то мы понимаем почему, но объяснить не можем. Человек все равно, для него не аргумент. Эти проблемы на уровне виртуализации и гипервизоров.

К.Н.: Да, ну, давайте по остальным фичам для девелоперов. Это уже, кстати говоря, важно, нам иногда задавали вопросы.

М.Ж.: “Как мигрироваться. Я купил Parallels Desktop. Все, у меня только куча ВМ-ок, на Virtual Box-е, на Microsoft HyperV, в общем, как же мигрироваться в великолепный Parallels Desktop?”

К.Н.: Даже на митапе чуваки подходили, говорили “помогите мне переделать диск”.

М.Ж.: Сейчас в Parallels Desktop 10 доступно создание виртуальных машин из уже существующих, так называемый “импорт виртуалок” в формате vhd и vmdk. Т.е. виртуалки из других гипервизоров, с других виртуализационных продуктов можно импортировать в PD.

К.Н.: Ну, и последнее, я сам, честно говоря, с этими людьми не сталкивался. У нас был запрос сделать Drag-Drop в гостевые MacOS-и. Это нужно было, насколько я понимаю, девелоперам, которые девелопили макосевый софт, в котором было тяжко постоянно пользоваться какими-то другими средствами для открытия файлов. Но я, честно говоря, не совсем понимаю. Вот.

Теперь мы переходим к самой интересной для нас вещи, которую мы больше всего любим в Parallels Desktop 10 - это, собственно, Vagrant Provider для Parallels Desktop.

М.Ж.: Да, мы о нем тут уже начали говорить, сейчас просто …

К.Н.: Просто расскажем, что он делает. Кстати говоря, для тех людей, кто хочет что-то поподробнее услышать, я думаю, просто положим в show notes ссылку на devops meetup по этому поводу, там видео есть, слайды, как мы его используем, довольно подробные. Ну, что?

М.Ж.: Да, пожалуй, стоит рассказать, ребят, что такое Vagrant?

К.Н.: Да, есть люди, они постоянно появляются, которые не знают про Vagrant вообще, про то, что это такое.

Н.Б.: У нас, конечно, таких не очень много, но давайте все равно расскажем.

К.Н.: Ну, не знаю, ты помнишь, сколько рук было? Я помню, когда устраивали meetup, в марте, там процентов 30, наверное, людей, вообще не знали, что это такое, пришли послушать. Ну, и судя по опросу, там либо те, кто не знал, либо слышал просто очень мало, и не понимают, как вообще это дело использовать. Я надеюсь, что ситуация изменилась в лучшую сторону, но все же, давай, Миш, буквально пару минут расскажи.

М.Ж.: Ну, да, если кто еще не успел прочитать или потрогать Vagrant, кратенько поясним, что это очень продвинутое средство для управления виртуалками. В разных средах, начиная от Desktop-виртуализации, как в нашем случае, как в VirtualBox-е VMWare, так и с облачными провайдерами: DigitalOcean, Amazon, Rackspace, все что угодно. Vagrant - это некая такая обертка над системой виртуализации, которая предоставляет единый интерфейс для автоматического создания и управления виртуалками.

К.Н.: Ну, да, а используют его для девелоперов, для того, чтобы среды разработки… Ну, основной такой юзкейс - это девелоперы среды разработки себе поднимают, одинаковые, чтобы они совпадали с продакшеном, чтобы быстро их тиражировать. И для тестирования кукбуков, ну или рецептов, в зависимости от того, какими средствами автоматической конфигурации вы пользуйтесь. Чтобы была возможность проверять не на каких-то там серверах развернутых на предприятии, а прямо на своем локальном ноутбуке поднимается виртуальная машина, и на нее накатывается софт в соответствии с каким-то кукбуком или рецептом, или там

М.Ж.: Обычные shell-скрипты, все что угодно.

К.Н.: Да, скриптами там. В общем, дает вам возможность потестировать.

М.Ж.: Удобно как девелоперам, так и администраторам, operations так называемым. Vagrant позволяет также создать несколько виртуалок, сэмулировать инфраструктуру.

К.Н.: Я слышал, что вагрантом делают еще и более сложные вещи, типа поднимают сложные конфигурации из нескольких виртуальных машин, но это уже гораздо реже. Основные мои, то, что я знаю, что люди используют - это вот среды разработки и тестирования кукбуков.

М.Ж.: Если говорить про нас, то у нас скорее и то, и другое. Все важное, и именно по этой причине, мы, когда узнали про vagrant, начали думать про то, как его использовать с нашим продуктом, с Parallels Desktop. Это было примерно год назад.

К.Н.: Мы его сделали, начали его делать для себя, как фича.

М.Ж.: Да, начали разрабатывать для себя, а поскольку сами по себе такие провайдеры для вагранта, как встроенные, так и разработанные сторонними разработчиками, они работают довольно просто. Это, по сути, обертка над некоторыми консольными утилитами, которые предоставляют виртуализационные среды, т.е. VirtualBox, VMWare, и наш Parallels Desktop. Провайдер просто использует консольные утилиты.

К.Н.: Короче, да, просто вызывает консольные команды, но, конечно, в реальности все не так просто. Потому что мы тоже в начале, когда только начали девелопить, думали, вроде просто, создать ВМ-ку,

М.Ж.: Да, создать, удалить, скопировать, и, мол, всве, пойдет дальше.

К.Н.: А на деле оказалось, что, конечно, нюансов гораздо больше. В чем состояла основная фича поддержки Parallels Desktop 10 - добиться того, чтобы это все работало нормально. Потому что, когда мы первый раз выкатились - проблемы были.

М.Ж.: Да, да, к слову. Vagrant, помимо простых опций, которые я только что перечислил, он позволяет также использовать такие инструменты, как shared folders, проброс портов, тонкая настройка сети. Это все то, что другие инструменты, кроме Vagrant-а, обычные shell-скрипты, не позволят сделать с виртуалками. И, в частности, тот самый проброс портов, именно эта долгожданная фича появилась как раз в Vagrant Parallels Provider, совместимой с версией Parallels Desktop 10. Т.е. теперь уже, когда мы зарелизили Parallels Desktop 10 мы можем сказать, что наш провайдер практически все основные функции вагранта реализует.

И можно сказать даже, что наш провайдер - единственный из сторонних плагинов для вагранта (сторонний - те, которые разработаны не самой командой разработчиков вагранта).

К.Н.: Ну, да, не Митчелом собственно. Они же разрабатывают как для VMWare официальный провайдер и для HyperV, и для VirtualBox. Соответственно, они все основные фичи сами реализовали. Но ввиду того, что вот эти мелкие сложности, которые постоянно возникают на границе системы виртуализации и вагранта, их никто практически не хочет… Этим практически никто не хочет заниматься, поэтому в Linux-е kvm-ный провайдер, LXC-шный, никто, конечно полноценно не реализует.

М.Ж.: Так что среди сторонних плагинов, наш провайдер можно считать наиболее функциональным, пожалуй. Наиболее приближенным к его встроенным аналогам. Мы в Vagrant Parallels воспроизвели все фичи, которые есть с провайдером VirtualBox.

Н.Б.: Слушайте, у меня вот вопрос, пока я не забыл. А в вашей конкурирующей платной системе виртуализации есть такая фича, когда у вас, допустим, запущена Windows машина, и вы делаете Vagrant up, при этом. Новые машины возникают сразу на экране, модальными окнами получаются. И там есть такая опция “Go to background”, чтобы машина исчезла и где-то в бэкграунде работала. У вас есть такая фишка? Или планируете, или как?

К.Н.: У нас есть такая фишка. В смысле, она есть в продукте Parallels Desktop, но она есть в PDE, так называемый headless режим.

М.Ж.: Да, так называемый headless режим, он доступен для обладателей лицензии Enterprise. Мы, к сожалению, как люди, которые разрабатывают провайдер, с этим поделать ничего не можем.

Н.Б.: Т.е. вы согласны, что это достаточно полезно было бы иметь такую штуку?

К.Н.: Да, это было бы полезно, и мы думаем, как можно сделать аналогичную вещь, не используя headless режим. Мы пытались, честно… Мы же встречались, когда говорили об этом несколько месяцев назад на одной из встреч. Но, на самом деле, не одни вы об этом сказали, что было бы хорошо, чтобы окна не появлялись при запущеном Parallels Desktop, а просто уходили в background.

Мы попытались это сделать, но сделать это оказалось непросто. По политическим режимам, в основном.

М.Ж.: Ну, да, headless режим - это одна из особенностей enterprise лицензий. К.Н.: Поэтому, ты понимаешь, если это заявлено в enterprise лицензии, если мы возьмем и зарелизим это в обычной лицензии, нас неправильно поймут.

Н.Б.: Ну, понятно.

М.Ж.: Ну, это получится, да, отдали бесплатно фичу. Собственно, почему мы это начали делать. Мы это делали для себя, для своих нужд. И мы с успехом это применили. У нас уже на сегодняшний день, могу честно сказать, прекрасно работает автоматическое тестирование наших web-проектов. При помощи CI-Jenkins, и Vagrant с плагином Vagrant Parallels. То есть у нас, если в двух словах, имеется сервер Mac Mini, на котором установлен Parallels Desktop с плагином Vagrant Parallels, и там у нас по коммитам происходит вызов задачи на сборку, на автоматический тест, где прогоняется…

К.Н.: Ну, да, Provisioning, и запуск сайта.

М.Ж.: Там полный цикл, на самом деле, можно даже с нуля, если машинки не существует, выполнится команда Vagrant Up, машинка полностью создастся, пробежится provisioner, и прогонит там ряд тестов, валидаций, и все необходимое. Ну и дальше будет просто поднимать ВМ-ку и прогонять тесты без создания машины. Полностью воспроизводимая тестовая среда, в итоге. Вот таким вот незатейливым образом можно использовать Vagrant.

К.Н.: Кстати, нас еще спрашивали периодически, хочется тоже на этот вопрос ответить. Нас спрашивают, почему вы говорите, что вагрант поддерживается только в 10-ке, хотя он в 9-ке тоже замечательно работает.

М.Ж.: Он и в 8-ке замечательно работает, на самом деле.

К.Н.: Не, я, конечно, скажу, что он замечательно работает в 10-ке. В 9-ке там есть свои проблемы. Как мы уже говорили, пилили мы это довольно долго, практически весь прошедший год с переменным успехом. Силами, правда, одного человека, но тем не менее, эта работа довольно большая. Полный набор фич реализован только в 10-ке. Основная фича, ради которой, собственно, пришлось ждать - это port forwarding - возможность открывать, допустим, запустить web-server на виртуальной машине, и открывать локальный localhost:8080 на маке, и попадать на свой тестируемый сайтик. Или бложик.

Н.Б.: Т.е. сейчас, если использовать Parallels и Vagrant Parallels, это будет ничуть не хуже, чем использовать VirtualBox и VMWare, а где-то и лучше, потому что вы его хорошо оптимизировали, я так понимаю.

М.Ж.: А еще лучше потому, что, я вам маленький секрет открою, можно даже форвардить порты меньше 1024, по одной там хитрой причине, что процесс, который отвечает за открытие портов, он бежит на маке под рутом, и есть возможность пробрасывать порты < 1024. Т.е. localhost:80 будет пробрасывать напрямую ваш сайтик на виртуальную машину.

Н.Б.: Это хорошо, я не знал о такой фиче.

М.Ж.: Но это, конечно, надо аккуратнее, можно себе прострелить что-нибудь.

К.Н.: По поводу VirtualBox, я честно считаю, я давно это говорил уже, и говорю, что, конечно, VirtualBox, в технологическом плане, Parallels Desktop-у не конкурент. В плане производительности, диска, и т.д. Т.е. в реальности если стоит сравнивать, то не VirtualBox, а стоит сравнивать Desktop и Fusion. И выбирать, что вам больше нравится. Нам больше нравится по понятным причинам Desktop. Было бы странно …

М.Ж.: Потому что он нам достался бесплатно!

К.Н.: Ты думаешь?

М.Ж.: А, ценой прожитой жизни!

К.Н.: А я купил, кстати, думаешь, я что-то не то сделал? А что, можно бесплатно достать? Ок.

М.Ж.: Приходите работать в Parallels, и получите Parallels Desktop бесплатно.

Н.Б.: Отличный мотиватор, кстати.

К.Н.: Я, кстати говоря, успел купить Parallels Desktop еще до того, как пришел в Parallels. Мне было очень обидно, и я не смог объяснить, за что мне нужно зарефандить.

И.Е.: У меня такой вопрос, может быть немножко не в контексте Vagrant-а. У вас же, получается, нужно тестить PD10 на куче разных машин. Вот эта схема как-то оптимизирована? Что-то использовано для этого? Т.е. вам надо проверить, что нет регрессий на таких машинках, на сяких машинках. Как вы этот процесс вообще делаете? Ну что, запускается винда, такие-то версии винды, такие-то, такие-то?

Н.Б.: Это про продукт спрашивают, как я понимаю.

И.Е.: Да, про продукт, конечно. Но это же тоже к DevOps-у относится, у них действительно сложный продукт, который необходимо во многих конфигурациях протестировать.

К.Н.: Тестирование у нас сделано довольно сложно. Vagrant к этому, конечно, не имеет прямого отношения, потому что тестирование само разрабатывалось еще до того, как начался Chef, Vagrant. Это был две тысячи какой-то год, таки слов еще в помине не было. Кроме CFEngine, наверное, никаких средств автоматических конфигураций не было, если я правильно понимаю. Не знаю, я в те времена особенно об этом не задумывался.

И сделали, реализовали такую… Я бы сказал, что это похоже чем-то на OpenStack, только самописный. Он, конечно, сделан по более упрощенной схеме, но, в принципе, он умеет примерно то же самое. Т.е. он умеет по определенному заданию, сформированному в конфиге, развернуть на bare metal некоторую конфигурацию, на этом же bare metal установить какой-то требуемый софт, зафигачить туда агента, запустить некий набор тестов, собрать результаты, пометить эту машину в инвентаре, если, например, тесты не прошли, он помечает ее. Есть специальный инвентарь, база данных с Web GUI, в котором машина помечается как “исследуемая”, заводятся автоматические баги, человек, если идентифицирован, кто занимается такой подсистемой, на него переводится баг, открывается эта машина в инвентаре, можно посмотреть, пощупать ее, отдать обратно в пул, вернуть.

На мой взгляд, система довольно крутая. То, что ее сделали, я когда пришел - был в шоке.

И.Е.: Жаль, что она была как вещь в себе, т.е. никаких open-source остатков от нее нигде не появилось.

М.Ж.: Она очень кастомная.

К.Н.: Она очень кастомная.

И.Е.: Но любой продукт, мне кажется, как генерализация, когда делают что-то универсальное из чего-то кастомного, получается современные продукты. OpenStack, я уверен, что так же начинался, были какие-то куски, решили из этого сделать…

Н.Б.: У RackSpace-а

И.Е.: Да, у RackSpace-а, и решили сделать из этого платформу, появился OpenStack.

К.Н.: Да, наверное, так и было. Кстати, вы знаете, как Амазон появился?

И.Е.: Да.

К.Н.: Это была примерно такая же история, как-то раз, кто у них там CEO? Jeff? Там поговаривают, что пришел их CEO, и сказал, что начиная с этого дня у нас Service Oriented Architecture. Все, кто не согласен, прошу, вон, дверь, провалиайте.

Н.Б.: Там какая-то была еще история, что разработчики должны были использовать только публичные API.

К.Н.: Да, да, запрещалось линковаться напрямую, только API, только хардкор. И потом Амазон смекнул, что может начать продавать это дело. Что они настолько хорошо это наладили, что могут продавать сервисы. И теперь имеем, что имеем.

И.Е.: Книжный магазин продает компы. Компьютерные ресурсы.

К.Н.: Очень смешно.

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

Н.Б.: Погоди, ты сказал, у вас Jenkins там уже стоит.

М.Ж.: Это для другого.

К.Н.: Сложно так сразу сказать. И да, и нет. Jenkins, конечно, стоит. Jenkins мы используем для CI, в плане входной точки. У нас там билды там запускаются, разные компоненты, которые должно сложно собираться, вот они там собираются Jenkins-ом. И да, это, наверное, из того, что мы реально перевели на open-source качественные компоненты, - это принесло больше всего benefit-а. Мы ускорили сборку просто в разы, и упростили ее. Если есть кто-нибудь из слушателей, кто не использует Jenkins, это очень хороший повод задуматься. Реально, очень хорошо помогает.

И.Е.: А до этого, подожди, что использовалось у вас? Тоже что-то кастомное было?

К.Н.: У нас своя, кастомная билд-система. Просто когда это начиналось, когда начиналась разработка Parallels Desktop-а, никаких толковых средств Continous Integration не существовало. Там был дикий запад и перекати-поле каталось по этим всем системам. Соответственно, оно как-то потихоньку ехало-ехало, и в результате, тоже написали какой-то фреймворк, какую-то неплохую билд-систему состряпали, но единственный недостаток, который у нее был - это то, что она была написана. Это как всегда, собственно, с любыми внутренними системами, единственный их недостаток - что они написаны самостоятельно, поддерживать их приходится своими силами.

И.Е.: Понятно. Ребят, у нас кончается время, давайте вы какие-то заключительные слова, пожелания слушателям подкаста.

К.Н.: Пожелание слушателям … Мое на самом деле главное пожелание слушателям, по крайней мере, тем, кто занимается Web-программирование - попробовать использовать Mac-и. Если вы все еще этого не делаете, вы очень много чего упускаете. Я почему говорю, у нас недавно начался наш web-проект, и они пользовались Windows-ом. И мы их, так сказать, сконвертили в использование Mac, и Parallels Desktop. Они сейчас самые ярые фанаты Mac-а, они не могут представить, как они жили без этого. Самое главное заключительное слово даже не про Parallels Desktop, а про Mac. Parallels Desktop он там сам придет, если уж так захочется, если захочется использовать Vagrant, основная вещь, это Mac. Mac - это очень здорово, очень сильно упрощает жизнь. А тем, кто уже пользуется Parallels Desktop-ом, чуваки, обновляйтесь, точно лишним не будет. Vagrant - очень хорошая вещь. Мы лично ее на себе протестировали, брат жив, как говорится.

М.Ж.: Если кто-то сомневается, боится денег зря потратить - пожалуйста, триалка по-моему всегда действовала, и действует. Можно попробовать, убедиться в том, что больше ничего не нужно.

К.Н.: Да. И, кстати, что может быть еще самым важным. Поскольку, весь этот девелопмент находится у нас здесь, в Москве, нам всегда можно писать на почту, в скайпик, в твиттер. И сейчас весь саппорт достаточно хорошо осведомлен про вагрант, и про то, что его используют девелоперы. Мы очень охотно отвечаем на вопросы и помогаем людям решать проблемы. Для вас это тоже может быть большим плюсом.

М.Ж.: Мы таким успехом и народ себе еще захайрим из слушателей.

И.Е.: Все, ребята, давайте, Миша, Костя, спасибо большое.

К.Н.: Все, всем до свидания, мы со всеми прощаемся, увидимся, всем пока!

М.Ж.: Пока!

Н.Б.: Хотелось бы добавить, что Vagrant Parallels - это Open Source бесплатный плагин, а Vagrant Fusion плагин - он все таки closed source, платный. Это просто к тому, что если вы будете выбирать, куда уходить с VirtualBox, чтобы вы это имели ввиду. Потому что когда я выбирал, это стало практически ключевым решением, почему я ушел в Parallels.

И.Е.: На этом, дорогие друзья, мы прощаемся с вами. С вами был 13-ый выпуск подкаста Devops Deflope и его постоянные ведущие Никита Борзых…

Н.Б.: И Иван Евтухович.

И.Е.: До новых встреч!

comments powered by Disqus