Я созрел и прочитал книгу "Мифический человеко-месяц" Федерика Брукса - американского ученого в области теории вычислительных систем, который управлял разработкой OS/360 в IBM. Также Брукс был награжден Премией Тьюринга - самой престижной премией в информатике в 1990 году. Поделюсь впечатлениями от прочитанной книги.
пятница, 26 февраля 2016 г.
воскресенье, 17 января 2016 г.
Мониторинг с помощью InfluxData. Часть 3. Chronograf
В предыдущих сериях
В первой статье мы познакомились с InfluxData - платформой для работы с временными рядами, настроили базу данных временных рядов InfluxDB. Во второй статье настроили сбор метрик и дальнейшую отправку в InfluxDB с помощью Telegraf. В текущей статье научимся рисовать графики значений метрик с помощью Chronograf.
пятница, 8 января 2016 г.
Мониторинг с помощью InfluxData. Часть 2. Telegraf
среда, 6 января 2016 г.
Мониторинг с помощью InfluxData. Часть 1. InfluxDB
Новый год наступил, а значит самое время узнать что-то новое. Текущая статья начинает серию статей про InfluxData - платформу для сбора/хранения/визуализации/управления временными рядами (time-series data).
С помощью данной платформы я буду поэтапно настраивать мониторинг основных параметров компьютера, таких как загрузка процессора, использование оперативной памяти, состояние жестких дисков. Процесс настройки и результаты буду фиксировать в блоге.
В данной статье познакомимся с платформой InfluxData, я опишу основные ее возможности, а также установим, настроим и научимся пользоваться базой данных InfluxDB.
В данной статье познакомимся с платформой InfluxData, я опишу основные ее возможности, а также установим, настроим и научимся пользоваться базой данных InfluxDB.
пятница, 23 октября 2015 г.
Raft - алгоритм решения консенсуса в кластере надежных вычислений
Сегодня знакомимся с очень интересным алгоритмом решения консенсуса в сети надежных вычислений - Raft.
Каждая нода может находиться в одном из 3-х состояний:
Основы алгоритма
Raft реализуется поверх кластера однообразных слабо связных нод, на каждой из которой работает машина состояний. Raft обеспечивает надёжную доставку сигналов на все ноды в заданном порядке. Таким образом обеспечивается переход всех машин состояний по одним и тем же последовательностям состояний. Таким образом, каждая нода гарантированно приходит в согласие с другими нодами.Каждая нода может находиться в одном из 3-х состояний:
вторник, 20 октября 2015 г.
"Eat your own dog food" - стань клиентом самого себя
Сегодня познакомимся с фразеологизмом: "Eat your own dog food", который давно используется в IT индустрии.
Дословно переводится как: "ешь сам свою собачью еду" и определяет практику, при которой компания разработчик собственного продукта или сервиса использует его сама. Сокращенно практику называют dogfooding. Считается, что на определенных этапах такая практика позволяет увидеть и оценить своими глазами собственный продукт или сервис со стороны клиента.
среда, 30 сентября 2015 г.
e-maxx.ru хороший сборник алгоритмов на русском языке
Сегодня наткнулся на замечательный сайт e-maxx.ru. На сайте описано множество алгоритмов с реализацией на C++. А самое главное - это задачи, в которых применяются алгоритмы.
понедельник, 1 июня 2015 г.
Засекаем время в java
Предистория
Как-то раз я занимался оптимизацией сложной операции,
выполняемой на сервере, которая включала в себя несколько запросов
к базе данных с последующей группировкой и сортировкой по определенным
параметрам полученных данных. К сожалению, средствами SQL запросов
обойтись не получилось, так как в конечной выборке участвовали
данные полученные по веб-сервисам из внешних систем. Поэтому приходилось
выполнять группировку и сортировку данных с помощью кода приложения.
Когда я запустил первый раз этот код на реальных
данных, очевидно, все работало неприемлемо медленно и требовало
оптимизации. С чего начинать оптимизацию? Правило Парето никто
не отменял и оно гласит, что нужно начинать оптимизацию тех участков
кода, выполнение которых занимает львиную долю времени выполнения
операции. Возникла задача выяснить, какой из этапов крупной операции
выполняется дольше остальных, и насколько дольше. Для этого необходимо
"стоять с секундомером" и засекать начало и конец каждого этапа и
результат выводить в лог. На момент решения данной задачи я обошелся
собственным решением, в котором я запоминал System.currentTimeMillis()
в промежуточные значения в локальных переменных. Затем происходил
подсчет разниц времени вывод в лог описаний. У данного подхода я
обнаружил существенные недостатки:
- Код сильно загрязнился. Локальные переменные заполонили код, и его стало читать очень сложно.
- Сложно исправлять/добавлять новую операцию, так как логика о подсчету времени размазана.
Но есть и плюс, только он на мой взгляд один: это гибкость и возможность написать то, что тебе нужно.
Мне такое решение не давало покоя и я решил сделать небольшой обзор инструментов подсчета времени в java.
четверг, 28 мая 2015 г.
Rootconf: DevOps, мониторинг, метрики, алерты!

В некотором царстве в некотором государстве под названием Москва 21-22 мая 2015 года прошёл фестиваль Российские интернет технологии, на котором мне посчастливилось побывать. Проходил фестиваль в Крокус сити холле. В этом году Олег Бунин и его команда сделали из ежегодной конференции РИТ целый фестиваль. В рамках фестиваля было организовано 5 секций с различной тематикой.
- RootConf. Конференция по эксплуатации.
- FronfendConf. Конференция фронтэнд разработчиков.
- Highload++ Junior. Обучающая конференция разработчиков высоконагруженых систем.
- WhileRider. Профессиональная конференция по управлению и предпринимательству.
- Intersystems CacheConf. Конференция по различным типам доступа данных и быстрой разработке.
Подробнее можно ознакомиться с фестивалем на сайте. Я же посещал секцию rootconf, посмотрел на админов и попытался прочувствовать их проблемы посмотреть на эксплуатацию глазами разработчика.
DevOps, мониторинг, метрики, алерты!
Все выступления были пронизаны этими терминами. Основные направления докладов конференции - это хорошие практики использования систем мониторинга, улучшение процесса эксплуатации разработанного ПО.
Конференция расширила мой кругозор, и я пополнил багаж знаний.
- Открыл для себя пару новых терминов типа devops, гистерезис триггеров.
- Получил ссылки на незнакомые ранее для меня системы мониторинга: okmeter, graphite.
- Познакомился с интересными людьми.
- Понял, что разработчики и служба эксплуатации должны стать лучшими друзьями для более эффективной работы.
- И многое другое.
Считаю конференцию очень полезной. Если Вы хоть как-то связаны с администрированием и эксплуатацией ПО и есть потребность в мониторинге инфраструктуры, то обязательно посмотрите доклады, видео которых обещают уже выложить в ближайшее время. Доклады будут интересны как инженерам любого уровня, так и руководителям служб эксплуатации.
Подписаться на:
Сообщения (Atom)





