Мне лично проще всего думать о KVM (Kernel-based Virtual Machine), как о таком уровне абстракции над технологиями хардверной виртуализации Intel VT-x и AMD-V. Берем машину с процессором, поддерживающим одну из этих технологий, ставим на эту машину Linux, в Linux’е устанавливаем KVM, в результате получаем возможность создавать виртуалки. Так примерно и работают облачные хостинги, например, Amazon Web Services. Наряду с KVM иногда также используется и Xen, но обсуждение этой технологии уже выходит за рамки данного поста. В отличие от технологий контейнерной виртуализации, например, того же Docker, KVM позволяет запускать в качестве гостевой системы любую ОС, но при этом имеет и большие накладные расходы на виртуализацию.
Сегодня существует великое множество VoIP решений — вспомним хотя бы Skype, Hangouts, TeamSpeak. Большая проблема с ними заключается в том, что решения эти закрыты и часто предоставляются исключительно в виде SaaS. Сама по себе закрытость исходного кода не обязательно означает, что продукт плохой. Многие закрытые продукты я использую каждый день. Но при наличии достойной открытой альтернативы я склонен отдавать предпочтение именно ей. Поэтому сегодня мы познакомимся с совершенно замечательным открытым приложением для голосовых звонков Mumble.
Рассмотрим типичную ситуацию — приходит пользователь и говорит «я делаю в приложении то-то и то-то и у меня все сильно тормозит». Как понять, в чем проблема, и исправить ее? Вот об этом мы и поговорим в данной заметке. Приведенный список методов не претендует на полноту, однако это то, что в настоящее время я чаще всего использую на практике. Несмотря на то, что пишу я сейчас в основном на C, описанные методы будут также применимы в проектах, использующих С++, и, возможно, другие языки программирования.
Вот некоторые «специалисты» авторитетно заявляют, что самая большая проблема в Linux — это большое количество дистрибутивов, которые прям так сильно отличаются пакетными менеджерами, путями до конфигов и прочим. На самом деле, в 99% случаев используется либо что-то на базе Debian, либо на базе RedHat. Всякие Arch и Gentoo, конечно, тоже существуют, но в основном они существуют на десктопах энтузиастов, а не в продакшене. И сегодня мы с вами убедимся, что отличий CentOS от Debian, с которым мы уже неплохо знакомы, не так уж много. По крайней мере, в вопросах, касающихся управления пакетами.
Пришло время научиться работать с Linux Containers, более известными под названием LXC. Далее мы будем рассматривать LXC в контексте Debian и Ubuntu, но написанное во многом будет применимо и для других дистрибутивов Linux. Мы коснемся не только основ использования LXC, но и узнаем, как настроить bridged сеть, ограничить количество ресурсов, используемых контейнером, и даже осилим unprivileged containers.
Многие слышали, что есть такая штука под названием Consul, созданная в HashiCorp, компании, подарившей миру Vagrant, Packer и целый ряд других замечательных вещей. Кто-то даже знает, что Consul предназначен для service discovery, как и, например, etcd или ZooKeeper. Но далеко не всем известно, что помимо service discovery также Consul имеет огромное количество других возможностей. Например, встроенный мониторинг сервисов, распределенные локи, и другие. В этой заметке мы познакомимся с Consul, а также научимся пользоваться хоть и не всем, но существенной частью его функционала.
По-видимому, в прошлом году я был хорошим котиком, так как Дедушка Мороз положил мне под елку коробочку с Raspberry Pi. В этой заметке я поделюсь своими первыми впечатлениями от использования данного одноплатного компьютера, расскажу, как мне удалось запустить на нем FreeBSD, а также как я отважно рисковал здоровьем в процессе написания поста.
Samba — это открытый пакет программ для nix-систем, в которых реализованы некоторые фичи, предоставляемые Windows Server. Samba может выступать в качестве контроллера домена, сервиса Active Directory, может шарить принтеры и директории по сети. В рамках этой заметки мы рассмотрим использование Samba в качестве файлового сервера. Мотивация для использования именно Samba, а не, скажем, FTP, может быть разная. Как минимум, с ее помощью и вправду очень удобно перекидывать файлы между Windows- и Linux-машинами. Просто монтируешь каталог и вперед.
Сейчас наблюдается большой ажиотаж в отношении технологий контейнерной виртуализации. И почему-то в этом контексте особенно часто упоминается Docker, словно это вообще единственное решение для создания контейнеров. А тем временем существует технология, которая не только ничем не уступает Docker, но и по некоторым оценкам опережает ее как минимум лет на пять. Технология эта называется OpenVZ. О причинах малой популярности OpenVZ мне остается только гадать. Однако, надеюсь, что данная статья хотя бы отчасти исправит положение дел.
В прошлый раз мы поговорили об отображении файлов в память при помощи WinAPI, а сегодня разберемся, как то же самое делается под nix-системами, в частности Linux и MacOS. Проверить код под FreeBSD я поленился, но по идее все должно работать и в этой операционной системе. Повторюсь — я почти уверен, что многие читатели сего блога уже знакомы с отображением файлов в память, поэтому пост предназначен для всех остальных читателей.