Записки молодого девопсера
153 subscribers
94 photos
7 files
623 links
Здесь выкладываются различные команды и решения проблем, с которыми приходится сталкиваться, а также интересные статьи и видео из мира IT.
Download Telegram
Однажды любая компания, которая разрабатывает свой сервис, приходит к идее, что кластер БД, состоящий из мастера и нескольких реплик, можно разгрузить.
Для этого можно читать данные с реплик.
Однако, при реализации возникает один нюанс (далее будет пример с PostgreSQL).
Нужно обязательно проверить, как на кластере с репликацией настроен механизм подтверждения транзакций.
Подробнее https://cloud.yandex.ru/docs/managed-postgresql/concepts/replication#write-sync-and-read-consistency
Идея в том, чтобы данные были консистентны на всех нодах кластера, чтобы не случилась ситуация, когда вы пишете на мастер данные, потом считываете их с реплики, а там этих данных нет.
Это регулируется параметром synchronous_commit:
https://postgrespro.ru/docs/postgrespro/13/runtime-config-wal#GUC-SYNCHRONOUS-COMMIT
Список серверов для подтверждения транзакции:
https://postgrespro.ru/docs/postgrespro/13/runtime-config-replication#RUNTIME-CONFIG-REPLICATION-MASTER (synchronous_standby_names)
Команда, которая обслуживает несколько десятков docker-образов, отвечает за их обновление, а также пишет неплохую документацию по использованию сервисов.
https://www.linuxserver.io/
https://fleet.linuxserver.io/
https://hub.docker.com/u/linuxserver
🤔1
У nginx есть отдельный аккаунт, под которым они публикуют образ nginx-unprivileged https://hub.docker.com/r/nginxinc/nginx-unprivileged, который запускается в непривилегированном режиме.
Отличия от образа nginx следующие:
This Docker Hub repository hosts NGINX Docker images that run NGINX as a non root, unprivileged user. Notable differences with respect to the official NGINX Docker image include:

The default NGINX listen port is now 8080 instead of 80.
The default NGINX user directive in /etc/nginx/nginx.conf has been removed.
The default NGINX PID has been moved from /var/run/nginx.pid to /tmp/nginx.pid. *Change _temp_path variables to /tmp/.
👍1
Прекрасный инструмент для уменьшения размера репозитория, который распухает из-за блобов, которые не загрузили под Git LFS или загрузили случайно (например, из-за отсутствующего .gitignore). Также инструмент позволяет удалить со всех веток опубликованные файлы с токенами, логинами, паролями и ключами.
https://rtyley.github.io/bfg-repo-cleaner/
🔥2
Конфигурация nginx, позволяющая избавиться от ботов и/или пользователей, которые подключаются к вашему ресурсу по IP или с заголовком Host, отличным от адреса сайта.
Для тех, кто подключается по протоколу HTTP - возращаем 444 ошибку - The non-standard code 444 closes a connection without sending a response header.
(https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return).
Для HTTPS - сбрасываем handshake директивой ssl_reject_handshake
(https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_reject_handshake).
SSL-сертификаты можно использовать либо самоподписные, либо сгенерированные пакетом ssl-cert (есть в Debian-based дистрибутивах), которые избавляют нас от этого.
За пример конфигурации спасибо @trombonax

server {

listen 80 default_server;
listen 443 ssl http2 default_server;
server_name _ "";

ssl_certificate ssl/ssl-cert-snakeoil.pem;
ssl_certificate_key ssl/ssl-cert-snakeoil.key;
ssl_reject_handshake on;

return 444;

}
👍2
https://github.com/mkubecek/vmware-host-modules
Vmware-модули vmmon и vmnet для сборки под разные версии Vmware Player/Workstation и разные ядра.
Полезно, когда приехало свежее ядро (например, на Fedora), а vmware ещё не собрала модули под новую версию.
Сборка простая
sudo make && sudo make install
sudo systemctl restart vmware
В Gitlab 15.3 появилась возможность использовать Podman для выполнения задач
https://docs.gitlab.com/runner/executors/docker.html#use-podman-to-run-docker-commands
🔥1
Сейчас проходит конференция https://scale.yandex.ru/ где Яндекс анонсирует новые сервисы и улучшения в Яндекс.Облаке и не только.
Из интересного:
Новый ДЦ в Калуге https://cloud.yandex.ru/blog/posts/2022/09/cloud-data-center-kaluga
Новые инструменты для Kubernetes https://cloud.yandex.ru/marketplace?type=K8S
Сервис Yandex Backup. Cервис позволяет создавать резервные копии виртуальных машин целиком и управлять расписаниями создания и удаления этих копий. При этом все бэкапы, созданные с помощью сервиса, будут храниться в масштабируемом облачном объектном хранилище Yandex Object Storage. С помощью Yandex Cloud Backup наши клиенты смогут защитить корпоративные и клиентские данные от сбоя ИТ-инфраструктуры, вредоносного программного обеспечения и оперативнее реагировать на инциденты.
Добавление в checkov поддержки Yandex.Cloud. checkov — лидирующий инструмент по сканированию terraform манифестов на предмет мисконфигураций безопасности теперь поддерживает Yandex Cloud terraform ресурсы. Это означает, что клиенты Yandex Cloud теперь могут определять и блокировать создание потенциально опасных облачных объектов в рамках Infrastracture as a code подхода с помощью проверок.
Резервируемое потребление снова доступно пользователям. Резервируйте определённый объём сервисов платформы Yandex Cloud на полгода или один год и экономьте до 22%.
👍1👎1
Случайно удалось поймать момент, когда все-таки stackoverflow прилёг немного)
😁1🤔1
Всех с наступающим (или с уже наступившим) Новым годом!
Всем мирного неба над головой, хороших новостей, здоровья вашим родным и близким!
Пусть 2023 год для вас будет годом, в которым вы реализуете все свои мечты и желания, о которых могли раньше только думать.
Всего самого-самого, увидимся в следующем году ❤️
11