Тля и муравьи

тля и муравейВ дикой природе можно обнаружить множество моделей поведения различных представителей фауны, анализ которых может привести к любопытным выводам применимым и в природе не дикой. Взять хотя бы взаимодействие муравьёв и тли. Для НЕдачников пояснение ниже. Читать далее →

Размышления на тему «хрупкого» ПО

унитаз-04Ничто так не помогает иллюстрировать суть явления, как красочная, хлёсткая метафора. К примеру, фекакльно-анальная метафора поможет в описании эксплуатационной хрупкости (противоположность запасу прочности) софта. Читать далее →

Logstash: Как установить самодельный плагин

logstash-fittingsОпишу коротко по шагам, как установить плагин (plugin) Logstash (v1.4) из исходников под CentOS (у меня была версия 6.6). Иногда это пригождается, когда хочется данные залить в такое место, о котором плагинописатели до сих пор не догадывались, и необходимо импровизировать. Читать далее →

Ansible & UML: Кто-нибудь пробовал описывать playbook’и на UML?

ansible-umlДля описания Ansible плэйбуков и ролей попробуем использовать UML-диаграммы. Ранее уже была предпринята попытка взглянуть на Ansible, как на некое подобие языка программирования под углом ООП, сейчас же проделаем подобное с помощью диаграмм классов UML. Читать далее →

Ubuntu: Как починить загрузчик?

GParted-Boot-RepairТак получилось, что после покупки ноутбука и установки на него Ubuntu, я решил зачистить жёсткий диск на нём от Windows и по случайке снёс загрузчик (boot loader). Я было приуныл, вспоминая, как лет ндцать назад конфигурировал в консоли LILO, но-таки решил погуглить и поискать что-либо, что спасёт меня нажатием одной кнопки. И — нашёл! Читать далее →

ООП на Ansible? Да ладно!

ansible-oop-miniatureВ одной из последних статей я знатно набросил на Puppet  в пользу Ansible. В этой же статье попробую продемонстрировать, от чего я был в особенности в восторге при знакомстве с Ansible — от функций, а именно, от возможности объединять куски последовательностей действий (tasks) в некое подобие функций и даже классов. В общем, адепт ООП везде объекты найдёт. 🙂 Перейдем к примеру… Читать далее →

Мониторинг на коленке: NGINX -> Rsyslog -> Logstash -> Graphite

nginx-to-graphite_miniatureВ недавней статье рассматривался рецепт того, как можно быстро посредством Graphite визуализировать метрики, полученные из произвольного PHP-приложения. В настоящей же статье рассмотрим, как можно собрать и визуализировать в Graphite скорость загрузки страниц взятую из логов Nginx. В отличие от предыдущего рецепта этот не требует изменять Web-приложение. Читать далее →

Мониторинг на коленке: PHP -> StatsD(Bucky) -> Graphite

php-to-graphite_miniatureРаньше уже наталкивался на упоминания Graphite и StatsD, но всё в контексте каких-то нереальных приседаний с конфигами, и потому проходил мимо. Недавно же на службе звёзды сошлись таким образом, что-таки решил сесть и запилить по-быстрому сбор и отображение неких стат.данных PHP-приложения посредством StatsD и Graphite. Читать далее →

RabbitMQ: Пример реализации RPC на PHP

php-rpc-rabbitmqОказалось нетривиальной задачей найти вменяемый пример кода реализации RCP поверх RabbitMQ для PHP. Пакет videlalvaro/Thumper, в основе своей имеющий videlalvaro/php-amqplib, кроме некоторых искусственных ограничений для пользователя (субъективно), обладает ещё и недостатком videlalvaro/php-amqplib — создать соединие и отправить сообщение в RabbitMQ занимает 120 попугаев по времение против 20 попугаев в PECL :: Package :: amqp — биндинге сишной библиотеки librabbitmq. Читать далее →