Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
71 videos
4 files
2.59K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
Напишите политику для AWS S3 бакета, которая разрешает доступ только с определенных IP адресов.

{
"Id": "AllowFromSourceIP",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceIP",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::demo-bucket",
"arn:aws:s3:::demo-bucket/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"11.11.11.11/32",
"22.22.22.22/32"
]
}
},
"Principal": "*"
}
]
}
👏41
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям

🤦‍♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.

📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?

👉 Поделиться историей
4
🧑‍🎓✍️ Открытый практикум DevOps by Rebrain: Ментальная модель Kafka

Время проведения:

15 Февраля (Четверг) в 19:00 по МСК

Программа:

🔹Теория поможет составить ментальную модель Kafka
🔹Практика — попробовать инструмент в действии и получить набор готовых конфигураций для применения их в своих лабораторных и тестовых средах на работе

Кто ведёт?

Глеб Гончаров — Юнит-лид в СберМаркете

Регистрация тут

#мероприятие
2🔥2👏2
#дайджест инструментов DevOps, на которые стоит обратить внимание

Backstage — это опенсорсный инструмент, созданный Spotify и принятый CNCF. Он с легкостью создает и настраивает порталы разработчиков.

Argo Rollouts — делает возможными расширенные стратегии развертывания в Kubernetes (blue-green, canary и др.). Построен как контроллер Kubernetes и использует Custom Resource Definitions (CRD).

Flagger — обеспечивает автоматизированное и контролируемое управление релизами, используя прогрессивные методы доставки и легко интегрируясь со средами Kubernetes для обеспечения более безопасного и надежного развертывания программного обеспечения.

Loki — очень экономичная и простая в эксплуатации система агрегации журналов.

External Secrets Operator — оператор Kubernetes, который интегрирует внешние системы управления безопасностью, такие как AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, IBM Cloud Secrets Manager, CyberArk Conjur и многие другие.
👍72
🤔🤔 Не все логи одинаковы полезны: 3 истории из жизни

При эксплуатации систем АСУ ТП возникают ситуации, когда написанная подрядчиком диагностика АРМа формирует аварийные сообщения в исторический журнал, после которых и начинаются данные расследования. Так как системы написаны и сделаны очень давно, то о никаких Grafana/Prometheus/Zabbix речь идти не может, плюс всё это работает на серверах/АРМах времён ввода в эксплуатацию. А чем старее оборудование, тем за каждый мегабайт оперативной памяти и процент нагрузки процессора идёт жёсткая борьба.

Без логирования для расследования отказов никуда не деться, но и сами логи могут быть причиной аварийных сообщений.

Продолжение здесь

#туториал
👍82
🧜‍♂️🧜‍♂️ SRE глубокое погружение в Linux Page Cache

Крутая серия статей про кэш. Знания теории и инструментов необходимы для каждого SRE и может помочь как в обычных и рутинных повседневных задачах, так и в экстренном дебаге. Лучшее понимание тем приводит к:

🔹 более точному планированию емкости и расчету лимита контейнера;
🔹 улучшению навыков отладки и исследования приложений, использующих память и диск;
🔹 созданию безопасного и предсказуемого времени выполнения для специальных задач, связанных с памятью и/или IO-bound ad-hoc (например: сценарии резервного копирования и восстановления, однострочные rsync и т.д.).

Продолжение здесь

#туториал
3🔥1👏1🥱1
Ситуация: переезжаете на другой сервер, перетащили проект в zip архиве, распаковали, а сам zip не удалили. И теперь любой кто узнает имя архива, сможет его скачать. Ну, или, как часто бывает в распространенных движках, есть всем известная папка, где могут находиться эти бэкапы.

Руками имена файлов никто не подбирает, для этого есть специальный софт, который просто брутфорсит по словарю всевозможные пути и если получает статус 200, то скачивает.

Как с этим бороться? Ничего не бэкапить в папки проекта, удалять промежуточные файлы если что-то переносили, настраивать политики nginx чтобы 403 отдавал и прочее.

Есть еще способ. Злоумышленник якобы находит бэкап, получает статус 200 и начинает его скачивать. Естественно это не бэкап, а специально подготовленный файл большого размера. Причем такой файл отдается специально с пониженной скоростью и санкциями.

Маловероятно, что злоумышленник — это человек. В основном сбором бигдаты занимается автоматизированный софт. Устанавливается на уже скомпрометированные машины, с которых осуществляется сканирование каталогов на наличие плохо лежащих файлов.

Настроим такую штуку на примере nginx

Добавляем в nginx конфиги:

location ~* "^/(new|old|bkup|tmp|temp|upload|ftp|sql|file|www|drupal|joomla|wordpress|x|user|admin|a|b|r|rezerv|arch|arx|111|archive|auth|backup|clients|com|dat|dump|engine|files|home|html|index|master|media|my|mysql|old|site|sql|website|wordpress)\.tar.gz$" {
access_log /var/log/nginx/pitfall.log;
default_type application/zip;
root /var/www/project/files/backup;
rewrite ^(.*)$ /backup break;
max_ranges 0;
limit_rate 4k;
limit_conn addr 1;
}

# а это в секцию http
limit_conn_zone $binary_remote_addr zone=addr:10m;


Указываем список на что будем реагировать. Ограничиваем скорость, ограничиваем число потоков, запрещаем докачку.

Создаем файл заглушку размером 1ГБ, этого вполне хватит. Но можно сделать и больше.

dd if=/dev/zero of=/var/www/project/files/backup bs=1G count=1


Теперь если кто-то попытается вытянуть бэкап — будет страдать.
6👍2🔥2
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
👍32
🦖🦖 Prodzilla

Prodzilla — это современный синтетический инструмент мониторинга, написанный на Rust. Он ориентирован на тестирование сложного пользовательского прода.

Поддерживает цепочки запросов к конечным точкам, передачу значений из одного ответа в другой запрос, проверку соответствия ответов ожидаемым и вывод предупреждений через webhooks. Он также предоставляет API, который позволяет просматривать результаты в формате json и запускать тесты вручную.

Работает менее, чем с 5 МБ оперативки и доступен для бесплатного размещения на Shuttle.

long-term фичи:

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

#полезный_софт
5🔥1
💪💪 Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

В материале рассматривается пример CI/CD-пайплайна, который собирает разбитое на два микросервиса CRUD-приложение, пушится в платформенный реджистри и деплоится в Kubernetes.

Читать

#туториал
👍6
#дайджест инструментов для кластера K8s

♦️ Prometheus: мониторинг и оповещения для Kubernetes, обеспечение безопасности в облаке путем обнаружения нерегулярного трафика или активности, которые потенциально могут перерасти в атаку.

♦️ Cyclops: развертывание приложений за пару кликов. Преобразует сложные файлы конфигурации в form-based UIs, устраняя необходимость ручной настройки и взаимодействия из командной строки.

♦️ Keda: расширяет возможности собственных решений для автоматического масштабирования Kubernetes за счет масштабирования модулей на основе внешних событий или триггеров.

♦️ Karpenter: поддерживает функцию консолидации, активно перемещая модули и заменяя узлы более дешевыми версиями для снижения затрат на кластер.

♦️ Velero: создает моментальные снимки ресурсов и данных кластера и сохраняет их в поставщиках хранилища объектов, таких как AWS S3, Google Cloud Storage или Azure Blob Storage.
2👍2🔥1🥰1
Что такое тестовая кухня в Chef?

Test Kitchen — это инструмент командной строки в Chef, который запускает экземпляр и тестирует на нем cookbook перед ее развертыванием на реальных узлах.

Вот наиболее часто используемые команды.
👍31
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍31
😎😎 Импорт приложений в AWS CloudFormation

AWS Infrastructure as Code (IaC) позволяет управлять, моделировать и предоставлять инфраструктуру. Вы можете объявить свою инфраструктуру в виде кода на YAML или JSON с помощью AWS CloudFormation, на ЯП общего назначения с использованием AWS Cloud Development Kit (CDK) или визуально с помощью Application Composer. Конфигурации IaC затем можно проверять и контролировать в любой системе контроля версий. Наконец, развертывание AWS IaC позволяет выполнять предварительный просмотр развертывания с использованием наборов изменений, автоматические rollback-и и многое другое.

Подробнее про управление существующей сетевой архитектурой с помощью CloudFormation читаем тут

#гайд
👍4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔 Как нестандартно войти в АйТи

Многие IT-специалисты приходят в эту сферу нестандартным путем — кто-то начинал как самоучка, а кто-то стал программистом случайно. Был ли у вас необычный старт карьеры в IT?

Расскажите нам свою историю! Ваш опыт может вдохновить тех, кто мечтает о переменах, но пока не решается начать.

❤️ С нетерпением ждем ваших комментариев!
😁5👍2
🤔 systemd: как писать юниты с элегантной перезагрузкой

В этой статье рассматривается поведение systemd при завершении работы и методы написания юнитов systemd для выборочной очистки (custom cleanup) перед закрытием.

Читать статью

#гайд
👍5
#вопросы_с_собеседования

В чем разница между docker stop и docker pause?

В том, что они разные сигналы посылают

🔹 docker pause — использует SIGSTOP(19), что приостанавливает процессы в контейнере
🔹 docker stop — применяет sigterm и sigkill к главному процессу контейнера
👍11