Vagrant — виртуализация рабочего окружения



Как и всем дотнетчикам, мне приходилось работать со стеком технологий, основанных на Windows. Но иногда я озирался вокруг и изучал то, что мне казалось интересным, пока не наткнулся я на Ruby On Rails. Все было отлично, вот только инструментарий на Windows оставлял желать лучшего.

Как вы, должно быть, знаете, Ruby On Rails предоставляет великолепные инструменты командной строки, облегчающий работу с фреймворком. Так повелось, что для Windows консоль никогда не была сильной стороной. К тому же все эти инструменты, портированные на Windows, были крайне задумчивыми. По ощущениям, на одной и той же машине, команды rails, выполненные в Windows и выполненные в Linux, но запущенной в виртуальной машине, различались в отклике в несколько раз, а порой и на порядок. А ведь при изучении, важна каждая секунда. Нужно и в rails console поиграться с написанным, и сервер запустить, увидеть свой результат, и миграцию провести, а ждать при этом не хочется.

Когда я только приступал к изучению, слышал множество мнений, что Windows плох для rails-разработчика. В основном это касалось проблем кодировок и прочей несовместимости. Все советовали либо Linux, либо Mac. Но так просто соскочить с Windows я не мог. Слишком много тут оставалось, чего не было там, поэтому решено было разобраться с виртуализацией.

Читать дальше →

Linux-vserver или каждому сервису по песочнице

Для целей размещения проектов я применяю такую схему: каждый сервис запускается в изолированной среде: боевой — отдельно, тестовый — отдельно, телефония — отдельно, веб — отдельно. Это снижает риски взлома систем, позволяет бакапить всё и вся одним rsync'ом на соседний сервер по крону, а в случае слёта железа просто поднять на соседнем железе.

Для создания изолированной среды есть два подхода, именуемые VDS (виртуализация аппаратуры) и VPS/jail (виртуализация процессного пространства).

Для создания VDS изоляций применяют XEN, VirtualBox, VMWare и прочие виртуальные машины.
Для создания VPS на linux используется либо linux-vserver либо openvz.

Плюсы VDS: система внутри может быть совершенно любой, можно держать разные версии ядер, можно ставить другую ОС.
Минусы VDS: высокие потери производительности на IO, избыточное потребление CPU и RAM на сервисы, дублирующие запущенные на серверной ОС.

Плюсы VPS: крайне низкая потеря производительности, только на изоляцию, запускаются только те сервисы, которые реально необходимы.
Минусы VPS: можно запустить только linux и ядро будет только той версии, что уже запущено.

Так как мне не нужны разные ОС, то всюду применяю linux-vserver (так уж сложилось исторически, применяю с 2004го года, а openvz вышел в открытый доступ в 2005м).

Ниже я опишу базовые операции по запуску LAMP сервера в изолированном окружении.

Читать дальше →