Forwarded from Технологический Болт Генона
How Netflix uses Druid for Real-time Insights to Ensure a High-Quality Experience
https://netflixtechblog.com/how-netflix-uses-druid-for-real-time-insights-to-ensure-a-high-quality-experience-19e1e8568d06
https://netflixtechblog.com/how-netflix-uses-druid-for-real-time-insights-to-ensure-a-high-quality-experience-19e1e8568d06
Forwarded from Технологический Болт Генона
Utilize Jenkins in an Auto-Scaling Kubernetes Deployment on Amazon EKS with Spot instances
https://itnext.io/utilize-jenkins-in-an-auto-scaling-kubernetes-deployment-on-amazon-eks-with-spot-instances-f9159df00aee
https://itnext.io/utilize-jenkins-in-an-auto-scaling-kubernetes-deployment-on-amazon-eks-with-spot-instances-f9159df00aee
Medium
Utilize Jenkins in an Auto-Scaling Kubernetes Deployment on Amazon EKS with Spot instances
How to use Jenkins with custom Docker image executors in an auto-scaling environment using Kubernetes on Amazon EKS with Spot instances.
Forwarded from Технологический Болт Генона
How to Build an End to End Production-Grade Architecture on AWS Part 1
https://blog.gruntwork.io/how-to-build-an-end-to-end-production-grade-architecture-on-aws-part-1-eae8eeb41fec
How to Build an End to End Production-Grade Architecture on AWS Part 2
https://blog.gruntwork.io/how-to-build-an-end-to-end-production-grade-architecture-on-aws-part-2-4f6e5dc30100
How to Build an End to End Production-Grade Architecture on AWS Part 3
https://blog.gruntwork.io/how-to-build-an-end-to-end-production-grade-architecture-on-aws-part-3-2d37b5e31b6a
https://blog.gruntwork.io/how-to-build-an-end-to-end-production-grade-architecture-on-aws-part-1-eae8eeb41fec
How to Build an End to End Production-Grade Architecture on AWS Part 2
https://blog.gruntwork.io/how-to-build-an-end-to-end-production-grade-architecture-on-aws-part-2-4f6e5dc30100
How to Build an End to End Production-Grade Architecture on AWS Part 3
https://blog.gruntwork.io/how-to-build-an-end-to-end-production-grade-architecture-on-aws-part-3-2d37b5e31b6a
Forwarded from Технологический Болт Генона
Amazon Detective uses machine learning models to produce graphical representations of your account behavior and helps you to answer questions such as “is this an unusual API call for this role?” or “is this spike in traffic from this instance expected?”. You do not need to write code, to configure or to tune your own queries.
Amazon Detective – Rapid Security Investigation and Analysis
https://aws.amazon.com/blogs/aws/amazon-detective-rapid-security-investigation-and-analysis/
Forwarded from Технологический Болт Генона
Выложены доклады с NDC DevOps 2020
https://www.youtube.com/playlist?list=PL03Lrmd9CiGf9HMv-O4SYP_JPA3PBof8f
Программа тут
https://ndcdevops.com/agenda/
https://www.youtube.com/playlist?list=PL03Lrmd9CiGf9HMv-O4SYP_JPA3PBof8f
Программа тут
https://ndcdevops.com/agenda/
Forwarded from Kirill
https://ru.stackoverflow.com/questions/1036759/Как-яндекс-танком-отправлять-json-в-post-запросе например так
Stack Overflow на русском
Как яндекс танком отправлять json в post запросе?
Yandex tank +phantom +ammo.txt
Как сгенерировать и отправить yandex tank'ом post запрос c json?
Как сгенерировать и отправить yandex tank'ом post запрос c json?
Forwarded from rus dacent
Распределённая трассировка: мы всё делали не так
https://habr.com/ru/company/flant/blog/460365/
https://habr.com/ru/company/flant/blog/460365/
Хабр
Распределённая трассировка: мы всё делали не так
Прим. перев.: Автор этого материала — Cindy Sridharan, инженер из компании imgix, занимающаяся вопросами разработки API и, в частности, тестирования микросервисо...
Forwarded from Мониторим ИТ
Презентация с Promcon 2019 о PromQL, Prometheus и Alertmanager. Julien Pivotto рассказывает о собственных подходах к описаниям алертинга в YAML-файлах.
Forwarded from Архитектура ИТ-решений
Cloud Native Computing Foundation решил рассортировать свои многочисленные видео. Здесь: https://videos.cncf.io/
Forwarded from Updates rtfm.co.ua 🇺🇦 (rtfmcoua)
Kubernetes: мониторинг с Prometheus
Следующая задача – настроить мониторинг Kubernetes. Задача осложняется тем, что у нас есть целый набор ресурсов, которые требуется мониторить: инфраструктура – ЕС2 инстасы WokerNodes, их ЦПУ, память, сеть ключевые сервисы самого Kubernetes – состояние API сервера, etcd, scheduler состояние подов и контейнеров состояние деплойментов сбор метрик непосредственно с приложений Для мониторинга всего этого доступны следующие…
https://rtfm.co.ua/kubernetes-monitoring-s-prometheus/
Следующая задача – настроить мониторинг Kubernetes. Задача осложняется тем, что у нас есть целый набор ресурсов, которые требуется мониторить: инфраструктура – ЕС2 инстасы WokerNodes, их ЦПУ, память, сеть ключевые сервисы самого Kubernetes – состояние API сервера, etcd, scheduler состояние подов и контейнеров состояние деплойментов сбор метрик непосредственно с приложений Для мониторинга всего этого доступны следующие…
https://rtfm.co.ua/kubernetes-monitoring-s-prometheus/
RTFM: Linux, DevOps и системное администрирование | DevOps-инжиниринг и системное администрирование. Случаи из практики.
Kubernetes: мониторинг с Prometheus
Пошаговая настройка мониторинга Kubernetes-кластера в Prometheus
Forwarded from Updates rtfm.co.ua 🇺🇦 (rtfmcoua)
AWS: CloudFormation – использование lists в Parameters
В продолжение темы AWS: Elastic Kubernetes Service — автоматизация создания кластера, часть 1 — CloudFormation – теперь надо добавить передачу в стек параметра в виде списка. Идея в том, что бы в Ansible получать все AvailabilityZones, а потом этот список использовать для eksctl, который будет создавать WorkerNodes в разных AvailabilityZones, и для CloudFormation – что бы…
https://rtfm.co.ua/aws-cloudformation-ispolzovanie-lists-v-parameters/
В продолжение темы AWS: Elastic Kubernetes Service — автоматизация создания кластера, часть 1 — CloudFormation – теперь надо добавить передачу в стек параметра в виде списка. Идея в том, что бы в Ansible получать все AvailabilityZones, а потом этот список использовать для eksctl, который будет создавать WorkerNodes в разных AvailabilityZones, и для CloudFormation – что бы…
https://rtfm.co.ua/aws-cloudformation-ispolzovanie-lists-v-parameters/
RTFM: Linux, DevOps и системное администрирование
AWS: CloudFormation — использование lists в Parameters
Пример применения параметров в виде списка в AWS CloudFormation
Forwarded from PROdlenka
Forwarded from DataEng
А вот и новость от самих ребят из Prefect о релизе Prefect UI: https://medium.com/the-prefect-blog/open-sourcing-the-prefect-platform-d19a6d6f6dad
Medium
Open-Sourcing the Prefect Platform
Today, we’re taking a huge step forward and open-sourcing an orchestration layer for Prefect — including the Prefect Cloud UI.
Forwarded from Технологический Болт Генона
Podman is an open-source cli tool for working with containers, pods and container images. It uses a kernel feature called seccomp to filter syscalls made by the processes inside the container. This allows Podman to reduce the attack surface of the kernel which is exposed to the container.
Currently, everybody ships the same basic seccomp profile. This tool allows us to generate seccomp rules based on what the container actually requires and allows us to lock down the container by reducing the attack surface to the kernel.
Generate seccomp profiles for containers using bpf
https://www.youtube.com/watch?v=U6FEJpbuZDs
YouTube
Generate seccomp profiles for containers using bpf - DevConf.CZ 2020
Speakers: Daniel Walsh, Divyansh Kamboj, Valentin Rothberg
Podman is an open-source cli tool for working with containers, pods and container images. It uses a kernel feature called seccomp to filter syscalls made by the processes inside the container. This…
Podman is an open-source cli tool for working with containers, pods and container images. It uses a kernel feature called seccomp to filter syscalls made by the processes inside the container. This…
Forwarded from Dev Tools
explainshell
Очень удобный сервис, который разбирает шелл команды.
Я не особо хорошо умею в bash скриптинг и зачастую пользую готовые решения вместо сложных команд.
Но периодически на форумах ищу решения и натыкаюсь на огромную шелл команду которая делает что-то непонятное.
На explainshell.com можно разобрать что именно происходит в команде.
Оч удобно.
Очень удобный сервис, который разбирает шелл команды.
Я не особо хорошо умею в bash скриптинг и зачастую пользую готовые решения вместо сложных команд.
Но периодически на форумах ищу решения и натыкаюсь на огромную шелл команду которая делает что-то непонятное.
На explainshell.com можно разобрать что именно происходит в команде.
Оч удобно.
Forwarded from CTO On Live
Гюльчатай закрой личико или базовая защита веб-морды 🙈
#Безопасность
На днях я писал, что плотно заняться безопасностью можно и нужно на втором этапе жизни проекта, когда уже пошел поток клиентов, но есть вещи, которые можно сделать сразу на этапе запуска.
Прежде всего начнем с тюнинга Nginx (у вас же он, правда?)
Про самое очевидное: сразу забудьте про то, что такое сайт без SSL, купите хоть самый дешевый или сделайте бесплатный через let's encrypt
Все запросы, что прилетают на http сразу отправляйте редиректом на https. Как вариант запись эта может выглядеть так:
return 301 https://$host$request_uri;
А чтобы браузер в последствии всегда автоматически переходил на https добавьте заголовок HSTS
add_header Strict-Transport-Security 'max-age=31536000';
Помимо этого заголовка неплохо было бы включить и встроенные механизмы защиты браузера
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "sameorigin";
Старайтесь использовать актуальные настройки ssl_protocols и ssl_ciphers (их, как и вообще весь ssl конфиг можно сгенерить на мозиле)
Проверить уровень настройки SSL можно на ssllabs и там же посмотреть рекомендации по улучшению
Я тебя не знаю, уходи!
Закройте обращения по ip или любому непонятному адресу к вашему приложению. Для этого просто последним в sites-enabled у вас должен быть конфиг default_server
server {
listen 80 default_server;
return 444;
}
Ответ 444, сразу же скидывает соединение не возвращая никакого тела, что позволит помимо мусорного трафика, также снизить и нагрузку. (Для https подключения можно сделать похожий конфиг)
С базовыми вещами по nginx разобрались, теперь возьмем уровень чуть повыше.
Любые запросы к своему API пропускайте через модуль лимитов nginx и отдавайте код 429. После чего обязательно настройте мониторинг на отлов ответов с этим кодом. Это даст вам возможность оперативно поймать потенциальный брутфорс или кривые интеграции, когда сторонний разработчик запустил while (true) и ушел пить кофе.
Иногда нам может потребоваться включить для тех или иных обращений CORS, чтобы на других доменах нашего или интеграционного проекта разработчики могли сделать ajax запросы без прокидывания через свой backend. В этом случае я часто вижу на разных проектах ребята не долго думая делают:
Access-Control-Allow-Origin: *
Так как данный заголовок поддерживает, либо доступ с любого домена, либо только с одного, без перечислений. Решается проблема, либо через map в nginx с установкой нужной переменной (сравниваем желаемый хост с http_origin) и последующей передачей через add_header того же домена в заголовке Access-Control-Allow-Origin либо проще это контролировать через конфиги приложения, как по мне.
Перебейте заголовок Server, который по дефолту отдает Nginx. Сделать это можно либо через server_tokens off; (который при этом все равно будет показывать, что используется nginx, но без версии), либо через бекенд часть приложения, заменив его на то, что вашей душе угодно.
Помимо этого проверьте что вообще за заголовки отдаются вашим приложением (всякие Powered-By и прочие, тоже надо погасить. Чем меньше злоумышленнику на входе будет информации, тем лучше)
Горшочек с медом
Техника honeypot не новая, но почему-то многие ей пренебрегают. Заключается она в том, чтобы добавить стандартные для всех сканеров или ручных тестеров роуты при попадании на которые вы получите тем или иным способом оповещение и включите более детальную аналитику по запросам злоумышленника.
Допустим вы можете оставить "открытым" cgi-bin или pma (phpmyadmin) или любой другой дефолтный url, да хоть .git (главное чтобы реального git'а там не было:)) и как только получаете туда обращение, значит кто-то проверяет пути, которые обычный человек точно не будет смотреть, а это повод задуматься.
На этом, пожалуй, пока что всё. Конечно подход должен быть более комплексным, как с точки зрения защиты доступов к серверам (vpn, ssh-ключи, iptables и т.д.), анализ трафика и прочее, но это уже другая история
#Безопасность
На днях я писал, что плотно заняться безопасностью можно и нужно на втором этапе жизни проекта, когда уже пошел поток клиентов, но есть вещи, которые можно сделать сразу на этапе запуска.
Прежде всего начнем с тюнинга Nginx (у вас же он, правда?)
Про самое очевидное: сразу забудьте про то, что такое сайт без SSL, купите хоть самый дешевый или сделайте бесплатный через let's encrypt
Все запросы, что прилетают на http сразу отправляйте редиректом на https. Как вариант запись эта может выглядеть так:
return 301 https://$host$request_uri;
А чтобы браузер в последствии всегда автоматически переходил на https добавьте заголовок HSTS
add_header Strict-Transport-Security 'max-age=31536000';
Помимо этого заголовка неплохо было бы включить и встроенные механизмы защиты браузера
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "sameorigin";
Старайтесь использовать актуальные настройки ssl_protocols и ssl_ciphers (их, как и вообще весь ssl конфиг можно сгенерить на мозиле)
Проверить уровень настройки SSL можно на ssllabs и там же посмотреть рекомендации по улучшению
Я тебя не знаю, уходи!
Закройте обращения по ip или любому непонятному адресу к вашему приложению. Для этого просто последним в sites-enabled у вас должен быть конфиг default_server
server {
listen 80 default_server;
return 444;
}
Ответ 444, сразу же скидывает соединение не возвращая никакого тела, что позволит помимо мусорного трафика, также снизить и нагрузку. (Для https подключения можно сделать похожий конфиг)
С базовыми вещами по nginx разобрались, теперь возьмем уровень чуть повыше.
Любые запросы к своему API пропускайте через модуль лимитов nginx и отдавайте код 429. После чего обязательно настройте мониторинг на отлов ответов с этим кодом. Это даст вам возможность оперативно поймать потенциальный брутфорс или кривые интеграции, когда сторонний разработчик запустил while (true) и ушел пить кофе.
Иногда нам может потребоваться включить для тех или иных обращений CORS, чтобы на других доменах нашего или интеграционного проекта разработчики могли сделать ajax запросы без прокидывания через свой backend. В этом случае я часто вижу на разных проектах ребята не долго думая делают:
Access-Control-Allow-Origin: *
Так как данный заголовок поддерживает, либо доступ с любого домена, либо только с одного, без перечислений. Решается проблема, либо через map в nginx с установкой нужной переменной (сравниваем желаемый хост с http_origin) и последующей передачей через add_header того же домена в заголовке Access-Control-Allow-Origin либо проще это контролировать через конфиги приложения, как по мне.
Перебейте заголовок Server, который по дефолту отдает Nginx. Сделать это можно либо через server_tokens off; (который при этом все равно будет показывать, что используется nginx, но без версии), либо через бекенд часть приложения, заменив его на то, что вашей душе угодно.
Помимо этого проверьте что вообще за заголовки отдаются вашим приложением (всякие Powered-By и прочие, тоже надо погасить. Чем меньше злоумышленнику на входе будет информации, тем лучше)
Горшочек с медом
Техника honeypot не новая, но почему-то многие ей пренебрегают. Заключается она в том, чтобы добавить стандартные для всех сканеров или ручных тестеров роуты при попадании на которые вы получите тем или иным способом оповещение и включите более детальную аналитику по запросам злоумышленника.
Допустим вы можете оставить "открытым" cgi-bin или pma (phpmyadmin) или любой другой дефолтный url, да хоть .git (главное чтобы реального git'а там не было:)) и как только получаете туда обращение, значит кто-то проверяет пути, которые обычный человек точно не будет смотреть, а это повод задуматься.
На этом, пожалуй, пока что всё. Конечно подход должен быть более комплексным, как с точки зрения защиты доступов к серверам (vpn, ssh-ключи, iptables и т.д.), анализ трафика и прочее, но это уже другая история
letsencrypt.org
Что такое Let's Encrypt
Let's Encrypt – это бесплатный, автоматизированный и открытый центр сертификации, созданный некоммерческой Internet Security Research Group (ISRG). Подробную информацию о нашей некоммерческой работе в этом году можно найти в нашем Годовом отчете за 2025 год.
Forwarded from DevOps News
Пересказ исследования о том, почему использовать файловую систему как backend для распределенного хранилища - не очень хорошая идея (на примере ceph).
В целом после SOSP'19 колличество интересных статей значительно увеличилось.
https://blog.acolyer.org/2019/11/06/ceph-evolution/
#research #ceph #performance
В целом после SOSP'19 колличество интересных статей значительно увеличилось.
https://blog.acolyer.org/2019/11/06/ceph-evolution/
#research #ceph #performance
Forwarded from Dok
Forwarded from DevOps&SRE Library
HAProxy Exposes a Prometheus Metrics Endpoint
В HAProxy добавили нативную поддержку отдачи метрик в формате Prometheus'а.
https://www.haproxy.com/blog/haproxy-exposes-a-prometheus-metrics-endpoint
В HAProxy добавили нативную поддержку отдачи метрик в формате Prometheus'а.
https://www.haproxy.com/blog/haproxy-exposes-a-prometheus-metrics-endpoint