Привет, Хабр! Знаете это чувство, когда оборудование есть, мониторинг есть, а их совместная работа — нет? Именно так мы ощутили себя, когда столкнулись с IBM Storwize в экосистеме Zabbix. «Из коробки» поддержка отсутствует, а костыли в виде скриптов и UserParameters работают так, что хочется плакать: медленно: каждый раз запускается отдельная программа/команда — это тратит время и ресурсы.сложно отлаживать: если что‑то сломалось, трудно понять, где именно проблема — в скрипте, в настройках …
На моих трансляциях лайв-кодинга постоянно всплывает этот вопрос. Проговаривал много раз, но если записать ответ, то дальше можно просто выдавать ссылку. Кодить начал в 1995-ом на Delphi для автоматизации каталога компьютерных комплектующих. Я был успешным менеджером оптовых и дилерских продаж в системном интеграторе, но занимался любимым делом всё свободное время. Накопил два чемодана книжек по программированию. И повторял, что вместо выписывания счетов-фактур, я стану разработчиком. Первые ве…
Эта статья собрана «по существу»: что нужно знать о типовой системе Go, как правильно и безопасно работать с интерфейсами и чем чреваты распространённые ошибки.СодержаниеКраткая характеристика типовой системы GoПримитивные и составные типыСтатическая типизация и проверка в компилятореИнтерфейсы: концепция и механика (под капотом)Method sets и pointer vs value receiversСовместимость типов и compile-time проверкиИнтерфейс interface{} (empty interface) и reflectType assertion и type switchВажные п…
Вот давайте начистоту. Открываешь ты такой таск, видишь кусок кода, написанный полгода назад, и твоя первая мысль - "Господи, какой идиот это писал?". Потом git blame показывает твое имя. Классика. Этот момент, когда ты встречаешься со своим техническим долгом лицом к лицу.В сети полно статей, где техдолг раскладывают по квадрантам, рисуют красивые графики и сыплют терминами, от которых хочется заснуть. Это все академическая чушь, которая почти всегда бесполезна в реальной разработке, к…
Конкурентность — это ядро языка Go. Горутины, каналы и связанные примитивы — это инструменты, с которыми Go делает параллелизм простым и выразительным. В этой статье я объясню концепции, покажу ключевые конструкции, разберу типичные ошибки/подводные камни, дам практические паттерны и инструменты для отладки и профилирования. В конце — краткий практический план действий.СодержаниеЧто такое горутина и как она работаетКаналы: буферизированные и небуферизированныеselect и управление множественными …
Странно писать про форк open-source проекта для ушедшего в историю Docker Swarm. Но после Millau остался ещё один гештальт - периодические задачи. Посмотрел на Ofelia и Swarm-cronjob, их звезды, обновления, количество заброшенных репортов. Попытался связаться с автором - тишина. Так что с чистой совестью взял код и добавил недостающее. Получилась Cirona - job scheduling с телеметрией и дашбордами.Почему не cronНаивная наихудшая реализации расписания в Docker - это использовать cron контейнера. …
ВведениеПервый Docker-образ для моего Go-приложения весил 1.92 GB. Для микросервиса на 100 строк — абсурдно. Решил разобраться, куда именно уходит место и как добиться максимально лёгкого образа.За несколько итераций оптимизации удалось уменьшить образ в 91 раз — до 21 MB production вариант. С дополнительным UPX-сжатием в 213 раз — до 9 MB.В статьеМаксимальная оптимизация Docker-образа для GoВыбор базового образа и техник для каждого сценарияСоздал простенький мониторинг микросервисФункционал:/…
В этой статье я расскажу вам, как наша команда - "жыбий рыр" участвовала в хакатоне от DDOS-GUARDРассмотрим, какой кейс мы выбрали, покажу, к какой реализации пришли и покажу наше решение, а в конце подведем итогиОписание кейсаDevOps - Amazing AutomataДанный кейс состоял в автоматизации сборки и деплоя разных приложений - надо было создать некий сервис, который будет анализировать проект, собирать его и деплоить на серверГлавная задача заключалась в том, чтобы можно было загрузить любой…
Команда Go for Devs подготовила перевод статьи о новом экспериментальном сборщике мусора Green Tea, появившемся в Go 1.25. Он уже используется в Google и показывает снижение затрат CPU на GC до 40%. Разбираемся, почему это не просто оптимизация, а новый уровень эффективности.В Go 1.25 появился новый экспериментальный сборщик мусора под названием Green Tea, который можно включить, установив переменную окружения GOEXPERIMENT=greenteagc во время сборки. Во многих сценариях работы программы время, …