Цель данного цикла статей — быстрый обзор и прохождение основных понятий DevOps.
Вот некоторые из покрываемых тем:
— Использование Terraform
— Сетевое взаимодействие Docker и безопасность
— Установка minikube
— Автоматизация сети с помощью Python
— Работа с Jenkins
— Визуализация данных в Grafana
— Обзор ArgoCD
— State и Ingress в Kubernetes
— Ansible - контроллер автоматизации (Tower), AWX, Vault
— Docker Compose
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Sarama — это клиентская библиотека на чистом Go для работы с Apache Kafka (версии 0.8 и выше). Она включает в себя высокоуровневый API для удобного создания и потребления сообщений, а также низкоуровневый API для управления байтами на проводе, когда высокоуровневого API недостаточно. Примеры использования высокоуровневых API приведены в полной документации к ним.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
—
brew install trufflehog
В TruffleHog встроено 700+ детекторов учетных данных, которые поддерживают активную проверку по соответствующим API
Имеет встроенную поддержку сканирования GitHub, GitLab, Docker, файловых систем, S3, GCS, Circle CI и Travis CI.
Позволяет осуществлять проверку закрытых ключей по миллионам пользователей GitHub и миллиардам сертификатов TLS с помощью технологии Driftwood, сканировать двоичные файлы, документы и файлы других форматов.
TruffleHog доступен как GitHub Action и pre-commit хук.
Быстрый старт с помощью Docker:
docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
—
go get github.com/thomaspoignant/go-feature-flag
Особенности Feature Flag:
— позволяет хранить файлы флагов конфигурации в различных местах (S3, Kubernetes, ...)
— поддерживает описание флагов в различных форматах (JSON, TOML и YAML)
— можно добавлять сложные правила
— позволяет экспортировать данные об использовании флагов в S3, в облачное хранилище Google и т.д.
— поддерживает получение уведомлений об изменении флага (webhook и Slack)
Изначально Feature Flag был разработан как решение исключительно для Gо. Теперь, с новой стандартизацией флагов решение теперь доступно для нескольких ЯП через простой API-сервер.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
—
go get github.com/fatih/color
Позволяет использовать простые функции с набором уже предопределенных цветов.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
—
go get -u github.com/doug-martin/goqu/v9
Без проблем поддерживает Postgres, MySQL, SQLite3, SQLServer и кастомные диалекты
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraf – это не только MQTT клиент. Telegraf – это серверный агент для сбора, обработки, агрегирования и записи метрик из различных стеков, датчиков и систем в InfluxDB.
Полезный инструмент для работы с IoT и не только
Быстрый старт с помощью Docker:
docker run --rm --volume $PWD/config.toml:/etc/telegraf/telegraf.conf telegraf
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
—
brew install tfsec
tfsec опирается на статический анализ кода terraform для выявления потенциальных ошибок в конфигурации.
Особенности tfsec:
— Проверяет неправильные конфигурации у всех крупных (и некоторых мелких) облачных провайдеров.
— Сотни встроенных правил
— Сканирование модулей (локальных и удаленных)
— Оценивает HCL-выражения, а также буквенные значения
— Оценивает функции Terraform, например,
concat()
— Поддерживает несколько форматов вывода: lovely (по умолчанию), JSON, SARIF, CSV, CheckStyle, JUnit, text, Gif.
— Легко настраивается (с помощью флагов CLI и/или файла конфигурации).
— Очень быстрый, способен быстро сканировать огромные репозитории
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
—
go get github.com/cilium/ebpf
ebpf-go - это библиотека на чистом Go, которая предоставляет утилиты для загрузки, компиляции и отладки программ eBPF
ebpf-go имеет минимум внешних зависимостей и предназначена для использования в длительно работающих процессах
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье научимся генерировать Protobuf файлы через плагин Buf. Настроим зависимости сторонних proto нотаций, такие как googleapis, grpc-gateway и protovalidate.
├╼
Подготовительные работы├╼
Установка зависимостей├╼
Структура api├╼
Генерируем код╰╼
Запускаем gRPC и REST сервер@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
—
go install goa.design/goa/v3/cmd/goa@v3
Goa использует такой подход к созданию сервисов — позволяет описать дизайн API сервиса с помощью простого DSL языка Go.
Goa расширяется с помощью плагинов, например, плагин
goakit
генерирует код, использующий библиотеку Go kit
.Goa DSL состоит из Go-функций, поэтому его можно легко развивать.
Для распространения можно использовать естественный механизм импорта в Go, что очень удобно.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
git clone "https://github.com/caddyserver/caddy.git"
cd caddy/cmd/caddy/
go build
Быстрый и расширяемый многоплатформенный веб-сервер HTTP/1-2-3 с автоматическим HTTPS
Также Caddy предоставляет полнофункциональный пакет PKI для создания собственной полностью автоматизированной внутренней PKI и частных центров сертификации.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
—
curl -fsSL https://get.jetify.com/devbox | bash
Devbox не требует использование Docker или Nix.
Всё начинается с определения списка пакетов, необходимых для проекта, а Devbox создает изолированную, воспроизводимую среду с установленными пакетами.
Devbox работает аналогично пакетному менеджеру вроде yarn — за исключением того, что пакеты, которыми он управляет, находятся на уровне операционной системы (как если установить их с помощью brew или apt-get)
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM