Pull to refresh
0
0
Send message

Настройка Exim для отправки почты на несколько провайдеров

Level of difficultyMedium
Reading time8 min
Views12K

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

Exim выбран почтовым сервером по умолчанию в Debian и в производных от него дистрибутивах. Если вам уже приходилось устанавливать Exim, то, вероятно, вы имели дело с одним из таких дистрибутивов и системой конфигурации, в которой предусмотрен вариант "отправка почты через smarthost". Для домашнего пользователя таким smarthost ("умным" хостом) обычно будет крупный сервис электронной почты вроде Gmail. В корпоративной сети, возможно, будет свой "умный" хост.

Проблема: smarthost в стандартной конфигурации может быть только один. Некуда вписать пароли от всех ваших учетных записей на Gmail, Mail.ru, Яндекс и так далее и заставить Exim самостоятельно отправлять ваши письма на нужный сервис в зависимости, например, от обратного адреса.

Разумеется, Exim сам по себе способен сделать с почтой все, что угодно, вопрос только в конфигурации. К сожалению, простого и, что самое главное, общепринятого решения этой проблемы не придумано. Можно найти некоторые предложения 1 , 2 , 3 , 4, но все они страдают определенными ограничениями.

Решение. Ниже показан вариант, требующий минимальных изменений в стандартной конфигурации. При этом все ее возможности сохраняются. Способ настройки рассчитан на систему конфигурации Exim4 в Debian с раздельными файлами. Полученную конфигурацию можно использовать и на домашнем компьютере, и на облачном сервере для отправки уведомлений от различных сервисов и так далее. В следующий раз я покажу, как настраивать Exim в других дистрибутивах, одним файлом.

Читать далее

Укрощаем одноглазого змея. Разбираемся с WireGuard и делаем свой умный VPN

Reading time29 min
Views345K

Забавная ситуация: сайтов и сервисов, доступных только через VPN, все больше, но при этом многие российские компании закрывают доступ из-за границы. В результате приходится целыми днями теребить ползунки «вкл-выкл», что утомительно. Я расскажу, как с помощью магии маршрутов и WireGuard, решить эту проблему и сделать «умный» VPN, который не надо отключать.


Если ты пользуешься VPN, то и сам наверняка сталкиваешься с блокировками зарубежного трафика. К примеру, могут не открываться pochta.ru, leroymerlin.ru, rt.ru, avito.ru.


Получается мем.



Каждый с этим борется как может. Например, на устройствах Apple родными средствами можно настроить автоматизацию, которая будет запускать VPN, когда открываешь определенные приложения (например, Twitter), а когда выходишь из них — выключать обратно. Но это костыль, а хочется все сделать красиво, да еще и прокачать навык работы с сетью.


Поэтому мы сейчас попробуем «включать VPN чуть-чуть».

Читать дальше →

WireGuard. How it was

Reading time9 min
Views75K

Привет. Я Леша, System Infrastructure Engineer в inDriver. В этой статье на конкретных кейсах объясню, почему WireGuard — отличная VPN-система для работы, в чем разница использования разных утилит и что надо помнить, когда с ними работаешь. Прошу под кат!

Окунуться в мир WireGuard

Blue-green deployment, canary release: рецепт приготовления безрисковых релизов

Reading time15 min
Views36K

Банковские сервисы по умолчанию не должны падать, и даже прилечь на секундочку, и даже когда мы обновляемся. Ведь даже секунды могут привести к потерям с множеством нулей. Чтобы этого не произошло мы используем blue-green deployment.

Простым языком blue-green deployment - способ развертывания, который позволяет обновлять приложения не отклоняя ни одного запроса, без остановок. Как это сделать, расскажу и покажу на примере. Статья подойдет DevOps-инженерам и бэкенд-разработчикам, особенно на HighLoad-проектах, а также моим будущим коллегам, как методичка по безрисковым релизам, чтобы прод не падал каждые 2 недели по графику релизов (а такое тоже бывало).

Читать далее

Три уровня автомасштабирования в Kubernetes: как их эффективно использовать

Reading time8 min
Views17K

Для полного освоения Kubernetes нужно знать различные способы масштабирования кластерных ресурсов: по словам разработчиков системы, это одна из главных задач Kubernetes. Мы подготовили высокоуровневый обзор механизмов горизонтального и вертикального автомасштабирования и изменения размера кластеров, а также рекомендации, как их эффективно использовать.

Статью Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, and Vertical Pod Autoscaler перевела команда, которая реализовала автомасштабирование в Kubernetes aaS от Mail.ru.
Читать дальше →

Организация стенда локальной разработки для самых маленьких с автоматической пересборкой приложения (фронтенд + бэкенд)

Level of difficultyEasy
Reading time25 min
Views17K

Вносить изменения в код приложения и тут же автоматически получать задеплоенные изменения, чтобы быстро тестировать его, — мечта разработчика. В этой статье мы посмотрим, как реализовать такой подход для небольшого приложения с фронтендом и бэкендом: организуем два варианта локального стенда на базе minikube или Docker с автоматическим развертыванием всех изменений или только закоммиченых в Git.

Бэкенд приложения напишем на Go, а фронтенд — на Vue.js. Все это позволит быстро запускать проект для тестирования прямо во время разработки, что, несомненно, повысит удобство работы с приложением.

Читать далее

Как построить локальный self-managed Kubernetes-кластер

Level of difficultyMedium
Reading time17 min
Views17K

Возможно, у вас была мысль запустить собственную услугу Infrastructure as a Service (IaaS) либо разместить свои проекты на Kubernetes, но не платить за managed-услуги, или ваш проект — это и есть self-managed Kubernetes. У full-stack-разработчика и предпринимателя Нейта Бакареффа эти желания сошлись воедино.

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

Читать далее

KeyDB как [потенциальная] замена Redis

Reading time6 min
Views40K
На хабре не нашлось обзоров «более быстрой альтернативы Redis» — KeyDB. Получив достаточно свежий опыт его использования, хочется восполнить этот пробел.



Предыстория достаточно банальна: однажды с большим наплывом трафика была зафиксирована значительная деградация производительности приложения (а именно — времени ответа). На тот момент, к сожалению, не удалось провести нормальную диагностику происходящего, поэтому впоследствии запланировали ряд нагрузочных тестирований. После их проведения удалось обнаружить узкое место, коим стал кэш базы данных в Redis. Как это часто бывает, проблему нельзя было решить сию секунду и правильным путём — силами разработчиков (изменением логики работы). Поэтому включилось любопытство и желание побороть ситуацию обходным путём. Так и появилась эта статья.
Читать дальше →

ProxySQL — средство для демультиплексирования соединений

Reading time3 min
Views8.3K
Здравствуйте, меня зовут Александр Яковлев, я работаю в компании Ситимобил и занимаюсь эксплуатацией. Сегодня я расскажу про очень интересный продукт ProxySQL — это высокопроизводительный MySQL Proxy, который умеет очень много — отлавливать и убивать запросы по маске, с помощью него можно искать sql injection, дублировать нагрузку и много другое. Я расскажу о нашем опыте работы с ним.
Читать дальше →

Битвы на территории ZFS

Reading time6 min
Views21K
Один из крупных клиентов нашей компании попал в грустную ситуацию: базы данных подросли, потребности тоже, купили мощные NUMA-сервера, установили любимую файловую систему ZFS (ZFS — для краткости: формально это OpenZFS), а производительность PostgreSQL стала хуже, чем до покупки.

Базы нешуточные: две базы, в каждой по 180ТБ. В них сливаются данные из многих других, непостгресовых баз. А этими, огромными, напрямую пользуются аналитики компании, и эта деятельность критически важная. ZFS сжала эти базы в два раза — теперь каждая занимает на диске по 90 ТБ, железу бы вздохнуть с облегчением. А стало только хуже. Пригласили наших сотрудников из поддержи, они провели аудит. Случай нам показался интересным, и мы решили о нём рассказать. Заодно напомнив о средствах диагностики.
Читать дальше →

Отказоустойчивый кластер с балансировкой нагрузки с помощью keepalived

Reading time15 min
Views82K

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

Читать дальше →

Лямбда-функция в Python простыми словами

Reading time5 min
Views390K

В этой статье вы подробнее изучите анонимные функции, так же называемые "лямбда-функции". Давайте разберемся, что это такое, каков их синтаксис и как их использовать ( с примерами).

Лямбда-функции в Python являются анонимными. Это означает, что функция безымянна. Как известно, ключевое слов def используется в Python для определения обычной функции. В свою очередь, ключевое слово  lambda  используется для определения анонимной функции.

Читать далее

Парсинг FIT файлов c данными тренировок

Reading time7 min
Views6.6K

Мне стало интересно проанализировать данные о своих тренировках за последние несколько лет, и я понял, что обычного функционала приложений типа Garmin Connect или бесплатной версии Strava будет недостаточно. В этой статье я расскажу как получить свои персональные данные о тренировках из устройств Garmin и разместить их в реляционной базе данных с помощью библиотек python.

Читать далее

(Без)болезненный NGINX Ingress

Reading time15 min
Views44K


Итак, у вас есть кластер Kubernetes, а для проброса внешнего трафика сервисам внутри кластера вы уже настроили Ingress-контроллер NGINX, ну, или пока только собираетесь это сделать. Класс!


Я тоже через это прошел, и поначалу все выглядело очень просто: установленный NGINX Ingress-контроллер был на расстоянии одного helm install. А затем оставалось лишь подвязать DNS к балансировщику нагрузки и создать необходимые Ingress-ресурсы.


Спустя несколько месяцев весь внешний трафик для всех окружений (dev, staging, production) направлялся через Ingress-серверы. И все было хорошо. А потом стало плохо.


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

Читать дальше →

Пишем оператор Kubernetes с нуля

Reading time7 min
Views25K

image
Фото: Jukan Tateisi | Unsplash


В этой статье мы подробно рассмотрим, как создать собственный оператор Kubernetes с нуля. Операторы — это такие программные расширения, которые используют кастомные ресурсы (kind), чтобы управлять приложениями. Подробности читайте в официальной документации.


Возьмем самый простой пример — приложение HelloApp. Чтобы задеплоить HelloApp, создадим ресурс Kubernetes.

Читать дальше →

Мониторинг устаревших виртуальных машин и их приложений — «метод Kubernetes»

Reading time11 min
Views6.8K

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

Все выглядит прекрасно, если вы разрабатываете что-то с нуля, но всем известно, что для большинства компаний это не так! Со временем многие унаследованные системы превратились в гигантских монолитных монстров, которые работают не на контейнерах, а на виртуальных машинах (ВМ). Рефакторить такие системы очень сложно по разным причинам.

Читать далее

Настройка badges в репозиториях Gitlab, с помощью Gitlab API, в CI/CD

Level of difficultyEasy
Reading time7 min
Views8.6K

Простая визуализация версий установленных релизов, результатов сканирования, версии интерпретатора и прочего с помощью Gitlab Badges. Создание Gitlab Badges с помощью Gitlab API и Gitlab CI.

Читать далее

Простые сценарии использования Sonarqube

Reading time5 min
Views50K

На сегодняшний день это один из, или же самый известный способ автоматического анализа кода и его ревью. Популярностью он обязан тому, что этот сервис бесплатен и доступен, а так же для его установки не требуется много усилий. Интерфейс выглядит современно и понятно. Sonarqube, хоть и написан на java, не ест много ресурсов :)

Читать далее

Умные паяльники от Pine64: стоит ли покупать вторую версию Pinecil. Часть 1

Reading time4 min
Views61K

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

Некоторые компании выпускают умные паяльники, которые способны поддерживать необходимую температуру, переходить в спящий режим, когда их не используют и помогать выполнять максимально тонкую работу. Выпускают такие устройства как китайцы, у которых относительно простые системы стоят 10-15 долларов США, так и европейские и американские компании. Занимается разработкой и выпуском паяльников и компания Pine64, которая также поставляет модульный открытый телефон PinePhone, одноплатники и прочие устройства. Долгое время Pine64 предлагала свой умный open-source паяльник Pinecil, но сейчас появилась и вторая его версия. О ней и пойдет речь в статье.
Читать дальше →
1
23 ...

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity