Proxmox Virtual Environment — это система, предоставляющая простой и удобный веб-интерфейс для управления виртуальными машинами (используется KVM) и контейнерами (LXC) на вашем кластере физических машин. Фактически, при помощи Proxmox вы можете создать свой маленький Amazon Web Services на собственном железе. В общем и целом, система очень похожа на Parallels Virtual Automation, с которым мы знакомились ранее, только распространяется бесплатно и с открытыми исходными кодами. Также предоставляется и платная техническая поддержка. Как мы скоро убедимся, со своей задачей Proxmox справляется не хуже PVA, а в чем-то, возможно, и лучше.

Мне лично проще всего думать о KVM (Kernel-based Virtual Machine), как о таком уровне абстракции над технологиями хардверной виртуализации Intel VT-x и AMD-V. Берем машину с процессором, поддерживающим одну из этих технологий, ставим на эту машину Linux, в Linux’е устанавливаем KVM, в результате получаем возможность создавать виртуалки. Так примерно и работают облачные хостинги, например, Amazon Web Services. Наряду с KVM иногда также используется и Xen, но обсуждение этой технологии уже выходит за рамки данного поста. В отличие от технологий контейнерной виртуализации, например, того же Docker, KVM позволяет запускать в качестве гостевой системы любую ОС, но при этом имеет и большие накладные расходы на виртуализацию.

По моим наблюдениям, в России компания Parallels больше всего известна, как разработчик популярной виртуальной машины для MacOS. Особо продвинутые также могли слышать, что компания имеет какое-то отношение к OpenVZ и CRIU. Но мало кто знает о других продуктах компании. Сегодня мы познакомимся с некоторыми такими продуктами, а именно Parallels Virtual Automation и Linux дистрибутивом Parallels Cloud Server. С их помощью мы за считанные минуты поднимем IaaS на собственном железе, который будет мало чем уступать Amazon Web Services или, скажем, Google Cloud, а в чем-то будет и превосходить.

Некоторое время назад мы научились создавать контейнеры в Linux, используя OpenVZ. Сегодня мы познакомимся с OpenVZ Web Panel. Это приложение, которое позволяет управлять OpenVZ-контейнерами на нескольких физических машинах через веб-интерфейс. Фактически, при помощи OpenVZ и OpenVZ Web Panel вы можете за час работы построить маленький AWS или Google Cloud на собственном железе.

В этой заметке я намерен поделиться с вами своим субъективным мнением касательно Amazon Web Services, которое сформировалось у меня после года использования этого облака на практике. Поскольку есть основания полагать, что те же рассуждения применимы не только к AWS, но и к Azure с Google Cloud, я рискну экстраполировать свои мысли также и на другие облака.

CloudSearch является сервисом полнотекстового поиска в облаке Amazon’а. То есть, что-то вроде ElasticSearch или Solr, который не обязательно понимать, главное любить и кормить вовремя не нужно настраивать и поддерживать, главное вовремя оплачивать. В этой заметке будет показан простой пример использования Amazon CloudSearch на языке Scala.

RabbitMQ — приложение, предоставляющее шину для обмена сообщениями по протоколу AMQP. Написан «кролик» на Erlang, а следовательно автоматически масштабируем, отказоустойчив и учится за две недели :) RabbitMQ используют в таких компаниях, как VMware, Mozilla и AT&T, а также в бесчисленном количестве веб-сайтов. В этой заметке мы попытаемся разобраться, для каких практических задач нужен RabbitMQ, а также как поднять RabbitMQ-кластер в облаке Amazon’а.

Созданная в 2008-м году ребятами из Facebook, на сегодняшний день Cassandra (название иногда сокращают до «C*») является одним из наиболее популярных NoSQL решений. Проект полностью написан на Java и успешно используется в IBM, Apple, Netflix, Twitter, Яндексе, CERN, SoundCloud, Rackspace, а также множестве других компаний. Сегодня мы поднимем наш собственный маленький Cassandra-кластер в облаке Амазона, но сначала, как обычно, немного теории.

Couchbase — это документо-ориентированная база данных (не путать с CouchDB и Membase!), интересная своей относительной простотой, исключительной легкостью в настройке и поддержке, высокой скоростью выполнения запросов за счет размещения «горячих» данных в памяти, масштабируемостью, а также автоматическим восстановлением кластера в случае падения машин и рядом других моментов. Например, поддержкой вторичных индексов, вьюх, репликации между дата-центрами (XDCR, как master-slave, так и master-master), обратной совместимостью с Memcached и не только. Написано все это на С/C++ и Erlang. Couchbase используется в AOL, Cisco, LinkedIn и множестве других компаний.

Клиенты нередко приходят в наш сервер сайд или вебчик через какие-то прокси, Nginx, HAProxy, Elastic Load Balancer и другие. Прокси эти очень полезны, так как обеспечивают сжатие и шифрование трафика, балансировку нагрузки и так далее. Проблема однако заключается в том, что прокси скрывают настоящий IP пользователя, из-за чего становится невозможно определить, например, из какой страны он пришел, и соответственно, интерфейс на каком языке ему отобразить. В случае с HTTP эта проблема давно решена путем проставления заголовков с IP пользователя. Но что делать при использовании других протоколов, вебсокетов там или просто чего-то самописного поверх TCP? Вот для решения именно этой проблемы разработчиками HAProxy и был придуман proxy protocol.