Dev-Ops.su
306 subscribers
79 photos
4 files
206 links
Полезные утилиты, статьи, доклады и обзоры.
Канал для DevOps, SRE, Архитекторов и прочих *Ops

https://dev-ops.su

#DevOps #SRE #DevSecOps #SecOps #ChatOps #GitOps #DocsOps #MLOps #FinOps #NoOps #CloudOps #CIOps #CDOps #AnyOps #BuzzWordOps

@woozymasta
Download Telegram
Еще одна интересная вещь на тему #SLO. Стандартизация, это наше всё.

Slo-exporter - это модульный инструмент для потокового вычисления стандартизированных показателей SLI и SLO на основе событий, поступающих из различных источников данных.
Внутренние события фильтруются и нормализуются, классифицируются по доменам и классам SLO, оцениваются как успешные или неудачные, наконец, экспортируются для дополнительных оценки SLO.
Следует принципам из Рабочей тетради SRE.

Модулей на данный момент не так много, можем из коробки взаимодействовать с Envoy, Kafka и разумеется Prometheus. Для всего остального у вас есть tailer для работы с логами, или прочие prometeus exporter, метрики с которых уже можно переварить здесь.

Собственно список имеющихся модулей

Для больших подробностей, смотрите на готовые примеры, там уже и дашборды для графаны даже есть.

Вот еще любопытная обзорная статья про slo-exporter

#SLO #SLA #SRE #prometeus

https://github.com/seznam/slo-exporter
Если вам недостаточно метрик TCP из BlackBox exporter, нужна утилита для профилирования TCP или нужен TCP хелзчекер? Посмотрите на TCPProbe.

TCPProbe
- это современный инструмент и сервис TCP для наблюдения за производительностью сети. Он предоставляет информацию о базовом TCP-сеансе сокета, TLS и HTTP (более 60 метрик json и prometheus). А еще в нем есть gRPC.

#tcpprobe #tcp #prometheus #liveness

https://github.com/mehrdadrad/tcpprobe
Как то пропустил из виду еще одно решение для долгосрочного хранения метрик Prometheus. В копилку к таким решениям как Cortex, Thanos и VictoriaMetrics добавлю M3 от парней из Uber.

M3 (m3db) - выбор для компаний Cloud Native, желающих расширить свои системы мониторинга на основе Prometheus. M3 может использоваться как удаленное хранилище Prometheus и имеет 100% совместимость с PromQL. Платформа M3 предназначена для создания масштабируемого и настраиваемого многопользовательского хранилища под ключ для Prometheus, Graphite и других стандартных схем метрик. Умеет принимать в себя метрики из InfluxDB.

Изначально M3 был разработан в Uber для обеспечения прозрачности бизнес-операций, микросервисов и инфраструктуры Uber. Благодаря способности легко масштабироваться по горизонтали, M3 предоставляет единое централизованное решение для хранения данных для всех случаев использования мониторинга.

Также имеется Kubernetes Operator

#m3 #m3db #prometheus #cortex #thanos #victoriametrics

https://github.com/m3db/m3
Заметка про то каким способом (плагином) стоит делать статические записи в CoreDNS в зависимости от ситуации.

🔹 Если DNS записей много и используются разные типы записей (PTR SRV MX и т.п.) использовать стоит или файл с базой или плагин records

example.org {
records {
@ 60 IN MX 10 mx1
mx1 60 IN A 127.0.0.1
}
}

🔹 Если нужны какие-то рерайты используем плагин rewrite

rewrite name suffix .schmoogle.com. .google.com.

🔹 Если нужна шаблонизация и регулярные выражения то используем плагин template

template IN A domain.tld {
match ^(?P<a>[a-zA-Z0-9\-]*)[.]domain[.]tld[.]$
answer "{{ .Name }} 60 IN A 172.0.0.10"
fallthrough
}

🔹 Если нужно банальное сопоставление ip-имя из hosts то используем плагин hosts

. {
hosts
}

#coredns #dns #hosts

Список встроенных плагинов
Список сторонних плагинов
DARK - Dashboards As Resources in Kubernetes.

Оператор для Kubernetes позволяющий размещать панели мониторинга Grafana как ресурсы в Kubernetes.

Благодаря DRAK теперь есть возможность деплоить дашборды вместе с сервисом, а тем самым версионировать дашборды вместе с общей спецификацией развертывания.

Дашборды описываются в yaml формате, в комплекте с DARK поставляется утилита для конвертации стандартного JSON дашборда в YAML, так и в манифест для развертывания в Kubernetes.

Интегрируется с Grafana бесшовно и имеется поддержка ArgoCD.

#grafana #kubernetes #k8s #dashboard

https://github.com/K-Phoen/dark
HelmWave - это инструмент для развертывания ваших Helm чартов через GitOps. HelmWave, это как docker-compose для helm.

Вы сможете развертывать несколько сред за один шаг и определять для каждой свои значения, список компонентов при этом может быть избирательным. Во многом по возможностям выигрывает у своего аналога helmfile.

#helm #k8s #kubernetes #gitops

https://github.com/helmwave/helmwave
Плагин Molecule Docker позволяет использовать Docker контейнеры для подготовки тестовых ресурсов при запуске тестов Ansible в Molecule.

Штука интересная и весьма спорная, ведь docker контейнер это не полноценная виртуальная машина и подойдет этот плагин не для всех ролей. По этому стоит понимать где это можно использовать. Но если это решение вам подходит - оно несомненно упростит запуск тестов.

Для тех кто в танке, Molecule - это фреймворк, предназначенный для разработки и тестирования ролей в Ansible.

#ansible #molecule #docker

https://github.com/ansible-community/molecule-docker
Kube No Trouble (kubent) - это инструмент, позволяющий проверить, используете ли вы какую-либо из устаревших версий API в своем кластере, и поэтому перед обновлением кластера Kubernetes следует сначала обновить конфигурацию workload.

Анализирует размещенные в кластере ресурсы, а также умеет работать с файлами, kubectl last-applied-configuration и helm v2/v3

Правила для проверки написаны на rego, что является плюсом для кастомизации.
Есть возможность встроить в пайплайн.

#k8s #kubernetes #deprecation

https://github.com/doitintl/kube-no-trouble
Pluto - это утилита, помогающая находить устаревшие версии Kubernetes API в репозиториях c yaml манифестами или Helm чартами.

В отличии от kubent который в первую очередь призван анализировать кластер, а анализ файлов это как дополнительный функционал.
Pluto скорее пытается быть инструментом для встраивания в CI и анализа манифестов на ряду с каким нибудь kube-linter, но также может и проанализировать ресурсы кластера, но правда только установленные Helm v2/v3 чарты.

#k8s #kubernetes #deprecation

https://github.com/FairwindsOps/pluto
Подборка статей про кластеризацию Apache NiFi, тюнинг параметров и расчет сайзинга под ваши нужды.

- Официальная документация про кластеризацию и не только;
- Документация продвинутого уровня, изучив её, лучше понимаешь внутренне устройство NiFi;
- Вводная про кластеризацию, вкратце что, зачем и почему;
- Рекомендации по сайзингу от Cloudera в рамках HDF;
- Рекомендации по сайзингу и развертыванию, заметка на форуме Cloudera о лучших практиках сайзинга;
- Тюнинг и производительность кластера, неплохо собрано в одном месте у ребят из MarkLogic.

Для развертывания NiFi в Kubernetes могу порекомендовать NiFiKop оператор, у этих ребят получился адекватный безопасный кластер NiFi с автоскейлом и плавным обновлением.

Но всё же, если ваш планируемый NiFi должен переваривать сотни тысяч событий в секунду, я бы не тащил его в кубер.

А это подборка awesome-nifi ссылок на разные блоги, доклады, процеcсора и прочие полезности.

Смотри в комментарии, там еще несколько книжек про NiFi бонусом.

#nifi
👍1
Еще одна (раз, два) утилита для визуализации ресурсов кластера Kubernetes.

Kubectl-graph - это krew плагин для kubectl, позволяет создать визуализацию для последующего рендера в Graphviz, Neo4j или ArangoDB на выбор.

Используя Graphviz всё происходит довольно просто и привычно:
kubectl graph svc,ing -n tools | dot -T svg -o links.svg

https://github.com/steveteuber/kubectl-graph

#k8s #kubernetes #visualize
Неделю назад упомянул Pluto от Fairwinds для поиска устаревших API в kubernetes, а у ребят есть еще несколько интересных утилит, к примеру Nova.

Nova сканирует ваш кластер на наличие установленных Helm чартов, а затем сверяет их со всеми известными Helm репозиториями. Если будут найдены обновления, вы получите отчет, кого можно обновить.

https://github.com/FairwindsOps/nova

#k8s #kubernetes #helm
Не так давно упоминал плагин Molecule Docker, есть еще и для Podman решение - Molecule Podman Plugin.

Позволяет использовать контейнеры для подготовки тестовых ресурсов при запуске тестов Ansible в Molecule. Умеет как в локaльный podman так и в podman-remote. Учитывая тот факт, что podman умеет запускать не только обычные контейнеры container как docker но еще умеет запускать поды pod и виртуальные машины machine, выглядит еще привлекательнее.

https://github.com/ansible-community/molecule-podman

#ansible #molecule #podman
DevLake объединяет все ваши данные DevOps в единое удобное, персонализированное и расширяемое представление. Принимайте, анализируйте данные из GitLab, Jira, Jenkins, GitHub и визуализируйте в Grafana.

DevLake наиболее интересен для руководителей и менеджеров, которые хотят лучше понять свои данные о разработке, хотя он и полезен для любого разработчика, желающего привнести в свою практику подход, основанный на данных. С DevLake вы можете задать своему процессу любой вопрос, просто подключитесь и запросите.

https://github.com/merico-dev/lake

#grafana #jira #gitlab #github #jenkins
👍1
Zink - альтернативный легковесный (100 мб памяти) elasticsearch написанный на Go. Имеет совместимый с elasticsearch API, состоит из одного бинарника в который уже встроена веб-морда на Vue.

Звучит круто, но увы, пока что не умеет кластеризироваться и обеспечивать высокую доступность.

#elasticsearch

https://github.com/prabhatsharma/zinc