Для себя энтропию или «меру неупорядоченности системы» объясняю как «количество бардака вокруг». Есть такой шуточный взгляд, что любая полезная деятельность человека это по сути попытки уменьшить энтропию вокруг. Стереть пыль, помыть посуду, вынести мусор — уменьшение энтропии. Скачивать файлы в папку Downloads, кидать одежду где попало, коробочка с шурупами и винтиками вперемешку — увеличение энтропии.
Точно такие же объяснения и в физике — растёт температура, атомы двигаются быстрее, энтропия повышается. Температура уменьшается, атомы «застывают», энтропия понижается, вплоть до нулевой энтропии: остановки атомов при 0 Кельвинов.
Возможности проверок через Jsonschema в Polaris и правда урезаны. Даже не столько набором валидаторов jsonschema, а тем что проверять можно Pod или Container.
target: Container # target can be "Container" or "Pod"
Похоже, что в недостатки Polaris можно добавить «Не умеет работать с CRD».
Спасибо за развёрнутый ответ! У меня опыт с Prometheus и я как-то предположил, что тамошние операции с указанием интервала это примерно тоже самое что и GROUP BY ($__interval) в Influx. Там есть семейство операций *_over_time и вот они как раз умеют работать с $__interval с учётом данных во всех промежуточных точках, которые есть в базе.
Чтобы не пропустить редкие случаи проблем и при этом не запрашивать много точек, помогают min_over_time/max_over_time/count_over_time, но можно пойти дальше и сократить количество запрашиваемых точек, т.к. важен только факт присутствия какого-то статуса в промежутке времени. Собственно так и появился плагин grafana-statusmap, с ним количество запрашиваемых точек выходит меньше, чем для $__interval, но при этом всё равно можно видеть редкие проблемы. Т.е. в вашем случае на доске с тестами я бы сделал отдельный график «Запуск тестов» или «Статус тестов» с этим плагином и показывал бы на нём наличие метрик по тестам или метрику успешности тестов. При этом на графиках с DERIVATIVE() может быть пусто, но в «Статус тестов» будут квадратики — значит в то время был неуспешный тест, значит можно уточнить time range, $__interval уменьшиться и на графиках что-то появится.
Если есть желание попробовать, можно в личке обсудить, я бы потом утащил в README как пример использования для influx.
Про $granularity не очень понятно. Это переменная dashboard-ы со списком, чтобы вручную выбирать интервал группировки? А чем не подходит GROUP BY ($__interval)?
непобежденная склонность к громким фразам, легким передергиваниям и веселому слалому вокруг удобных мне примеров
В общем-то от водителя автобуса требуется знание только одного фреймворка — ПДД. А если глянуть на усреднённую вакансию фулл-стек программиста, так там ты дизайнер салона автобуса, водитель и механик с навыками управляющего автобусным парком в одном лице, почему бы и не заявить райдер с мятным чаем в туалете.
Естественная реакция разработчика, когда приходят типы со стороны и начинают внедрять что-то неведомое. И понятно, что виновато именно это нечто: "пришли со своим %NEW_TECH_NAME% и всё сломали, раньше всё отлично работало".
Респект за прохождение этого квеста до конца! Сам был в схожих условиях, но полностью отказаться от винды не смог. Пробовал exquilla плагин, словил странных ошибок, пробовал пробить imap для exchange, админы наотрез отказались, календарь, доменные контакты даже не стал уже смотреть. Снёс с винды всё, что имело замену на линуксе, уменьшил раздел, dd-хнул на внешний винт, поставил на ноут kubuntu и запускал винду в VirtualBox, благо железо позволяло.
Это https://asciinema.org/ скорее всего, делали ролики когда-то для статей про dapp. Жалко, что хабр не умеет делать для них embed, можно только ссылку с картинкой.
Целью оптимизации является сокращение разницы между получаемыми образами от сборки к сборке
Дело как раз в дополнительных модулях: они являются источниками постоянных изменений для слоя, даже если вы не вносите в код модуля никаких правок
На правах рекламы: попробуйте сборку werf-ом (https://github.com/flant/werf), в ней можно указать зависимость сборки от изменений в файлах в git. Поменялись исходники модуля — будет собираться, не поменялись, возьмётся из кэша. Была статья про сборку именно Java приложений https://habr.com/ru/company/flant/blog/348436/. Это ещё старая версия программы (dapp), но идеи почерпнуть можно.
если что, схему вы получаете сразу после ввода исходных данных
Как-то не очевидно работает кнопка Показать/Скрыть, но по полосе прокрутки видно, что ниже что-то появляется. А после Отправить надо прокрутить вверх за результатом.
Все 3 нокии, которыми пользовался, тоже имели лимит на количество смс. Это вам похоже повезло с конкретными моделями, если больше чем 5 лет назад не встречались с ограничием.
РПН разошлёт ультиматумы додо, пападжонс, яндекс.еде, деливери клаб и прочим. Регистрироваться в реестре юридических лиц — ответственных производителей и организаторов оперативной доставки пицц никто не станет, все перейдут на выпечку и доставку «открытой кулебяки».
P.S. По опросам левады и вциома внесение пиццы с ананасом в реестр запрещённых пицц поддержит 91,42%.
Всё просто — размер цифр. ИН-18 — 40мм, ИН-14 — 18мм.
Так-то более-менее доступны Z568 с цифрами 50мм. Есть оригинальные на ebay, есть от Далибора. Дальше вопрос либо соглашаться на 600-800 евро за 4 лампы, либо искать подешевле. ИН-18 для подарка — отличный выбор.
Так по-моему это и есть один из посылов доклада: современный мониторинг это не изолированный компонент, а неотъемлимая часть самого приложения и у разработчиков в плане должно быть заложено время на реализацию источников метрик.
С опцией --docker-run всё ясно-понятно: из образа будет запущен контейнер, который заместит контейнер в кластере.
А вот про «без опции» что-то не до конца въеду. Локальная машина будет якобы контейнером в кластере, так? Что будет, если таких команд несколько запустить, начнут мешать друг другу?
metacontroller создаёт deployment с nginx и initContainer, который выкачивает с s3 и распаковывает.
Я правильно понимаю, что логику создания и логику выкачивания надо в js/py скрипте сделать? Сам metacontroller только за событиями следит и запросы к скрипту делает?
CR… не rocket science
Имел в виду, что rocket science это всё, что стоит за CR — для организации этой машинерии надо обладать каким-то опытом. Пока инженер поймёт, чем CompositeController отличается от DecoratorController, а ему надо всего лишь за лейблами на подах следить и kubectl apply сделать, да он всё бросит и крончик напишет.
Но вообще согласен, если умно выделить типы часто встречающихся задач и оформить в виде sync скриптов и CRD с документацией аргументов, то конечно проще будет CR написать нужный.
MyDevEnvironment, который создаст namespace и secret наверное было бы круто и красиво… Но это дополнительная сущность в кластере, для которой придётся описать CRD, где-то её задокументировать, донести до всех участников процесса, что мы теперь почему-то не создаём обычный Namespace, а делаем только MyDevEnvironment.
Дальше нужно будет описать контроллер в yaml и sync скрипт, чтобы следить за референсным секретом и за новыми MyDevEnvironment.
В целом это конечно проще, чем ребят в командах обучить писать на Go и OperatorSDK, но всё равно это будет непонятный rocket science для задач, которые решаются запуском пары kubectl команд и выражением для jq.
Но за ссылку спасибо, надо будет изучить подробнее. И кстати есть план добавить поддержку CRD, чтобы хуки могли по onStartup определить свой CRD и в дальнейшем следить за событиями от создаваемых CR.
Фам Нювен несколько лет провел, обучаясь программировать и исследовать.
Программирование восходило к началу времен. Как та навозная куча за замком
отца. Когда ее промыло ручьем на десять метров вглубь, обнаружились
искореженные корпуса машин — летающих машин, как говорили крестьяне, еще от
тех великих дней колонизации Канберры. Но та навозная куча была чистой и
свежей по сравнению с тем, что лежало в локальной сети "Репризы". Были
программы, написанные пять тысяч лет назад, когда человечество еще не
покинуло Землю. И самое чудесное (самое ужасное, как говорила Сура) было то,
что, в отличие от бесполезных обломков прошлого Канберры, эти программы все
еще работали! И через миллион миллионов запутанных нитей наследования многие
из старейших программ все еще выполнялись во внутренностях системы Кенг Хо.
Например, методы слежения за временем у торговцев. Поправки вносились
неимоверно сложно — но на самом дне лежала крошечная программа, которая
гоняла счетчик. Секунду за секундой отсчитывала система Кенг Хо с того
момента, как нога человека ступила на Луну Старой Земли. Но если
приглядеться еще пристальнее… начальный момент был миллионов на сотню
секунд позже; момент "ноль" одной из первых компьютерных операционных систем
Человечества.
Значит, под всеми интерфейсами верхнего уровня лежат уровни поддержки,
слой на слое. Какая-то часть этих программ была создана для совершенно иных
ситуаций. То и дело несоответствие рождало фатальные инциденты. Вопреки всей
романтике космических полетов, чаще всего катастрофы вызывались древними
забытыми программами, которым удавалось взять реванш.
Спасибо, ещё один проект в копилку. Пока для разработки внутренних утилит используем https://github.com/kubernetes-sigs/kubeadm-dind-cluster (упомянут среди альтернатив kind). Удобен тем, что можно одновременно поднять разные версии куба.
There is one cool feature that exists on some IoT boards but lacks on PCs: USB client mode and software defined USB hardware. Adminbook can be used as a CD drive, a keyboard, a mouse or even as a videocard and these devices can be combined into hybrid usb device.