Как стать автором
Обновить
4
0
Toxa Андреевич @andToxa

инженер широкого профиля

Отправить сообщение

Мигрируем БД в продакшене без даунтайма

Время на прочтение12 мин
Количество просмотров26K

В этой статье мы рассмотрим основные принципы миграции БД без даунтайма и дадим быстрые рецепты для наиболее распространенных случаев.

Читать далее
Всего голосов 49: ↑48 и ↓1+57
Комментарии51

Настройка BGP для обхода блокировок, версия 3.1. И немного Q&A

Время на прочтение8 мин
Количество просмотров94K

Близится кожаная свадьба Роскомнадзора с Телеграмом, именно 16 апреля 2018 года начался крестовый поход, ставший фактически символом уничтожения интернета в России, хотя в глобальной войне, начавшейся в 2012 году, он был всего лишь ярким эпизодом.

Ковровые блокировки в исполнении РКН стали причиной появления на свет множества различных сервисов, помогающих пользователям сети выживать под бомбежками. Одним из них стал antifilter.download, позволяющий получать списки находящихся под блокировками IP-адресов. Далее пользователи сервиса могли использовать полученную информацию по своему усмотрению. Одно из таких усмотрений было описано в статье Настройка BGP для обхода блокировок, версия 3, без VPS, которая стала достаточно популярной в сети и породила несколько сотен пользователей сервиса.

Однако "Tempora mutantur et nos mutamur in illis". За прошедшие три года сервис пережил Alpharacks-gate, похоронивший вместе с собой практически все донаты, упирание в технические ограничения как следствие роста количества пользователей, упирание в те же ограничения как следствие взрывного роста количества ip-адресов в списке РКН... Да что только не пережил. Каждое из этих изменений приводило к небольшому устареванию предыдущей статьи и когда неделю назад один из хабраюзеров предложил мне поправить ее под текущие реалии, я понял, что проще родить нового, чем отмыть этого написать новую версию, заодно и ответив на часто задаваемые вопросы. Результат - ниже.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии66

Сам себе Роскомнадзор

Время на прочтение2 мин
Количество просмотров29K

Список заблокированных РКН ресурсов для использования с VPN стремительно теряет актуальность, поскольку, во-первых, многие ресурсы блокируются или замедляются на ТСПУ и записи для этих ресурсов в выгрузку не вносятся, во-вторых, после известных событий конца февраля многие ресурсы начали изображать РКН из себя и блокировать доступ с российских IP, в-третьих, избыточная отправка трафика в VPN приводит к недоступности уже российских ресурсов, которые отгородились от иностранных IP.

Поэтому на уже известном сервисе antifilter.download создан отдельный дополнительный сервис community.antifilter.download, предназначенный для ведения списка при помощи сообщества.

Читать далее
Всего голосов 13: ↑12 и ↓1+14
Комментарии38

Просто о микросервисах

Время на прочтение11 мин
Количество просмотров273K

Вступление


Чуть ли не каждый второй, кто впервые сталкивается с MSA (Micro Service Architecture), на первых порах восклицает: «Да я эти микросервисы еще …надцать лет назад». Отчасти они правы. И я тоже был из этой самой половины, и не понимал — почему такой шум?



В самом деле! Ведь MSA — это тоже про разработку софта. Какие здесь могут быть революции? Все методики знакомы. В некоторых местах можно даже удивиться: «А разве бывает по-другому»? Фанаты Agile и DevOps тоже скажут, что это всё наше, родное.

Но всё же прошу вас набраться терпения и продолжить читать дальше.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии33

Архитектура рядом с кодом

Время на прочтение5 мин
Количество просмотров12K

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

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии17

Хроники домашнего импортозамещения: замещаем e-mail (и узнаём, кто сливает почту на сторону)

Время на прочтение8 мин
Количество просмотров30K

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

Встречайте: собственный домен для почты.

Read more
Всего голосов 47: ↑44 и ↓3+52
Комментарии99

Как Kubernetes создает и запускает контейнеры: Иллюстрированное руководство

Время на прочтение7 мин
Количество просмотров27K

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

Kubernetes позволяет выполнять много полезной работы без глубокого понимания деталей. Утилита командной строки kubectl и дашборды в Openshift помогают управлять вашими контейнерами. Однако, как только вы заглянете глубже в Kubernetes все может быстро усложниться.

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

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии2

Безопасное хранение secrets в Kubernetes

Время на прочтение10 мин
Количество просмотров29K

В Kubernetes есть такая сущность, как secrets, или секреты. Из названия понятно, что эти данные не могут быть общедоступными, и их нужно как-то защищать и особым образом доставлять в кластеры Kubernetes. В статье разберём, что такое secrets и в чём особенности их хранения и доставки. А также рассмотрим два популярных инструмента для работы с секретами: Hashicorp Vault и Helm Secrets.

Читать дальше
Всего голосов 29: ↑28 и ↓1+32
Комментарии9

Domain-Driven Design: тактическое проектирование. Часть 2

Время на прочтение16 мин
Количество просмотров82K


Здравствуйте, уважаемые хабрапользователи! В предыдущей статье мы рассмотрели стратегическое моделирование с помощью подхода DDD. В ней было показано, как выделять концептуальные границы, в рамках которых решаются отдельные задачи предметной области – ограниченные контексты.

Для реализации конкретного ограниченного контекста используется ряд более низкоуровневых тактических шаблонов, которые имеют технический характер, то есть эти шаблоны используются для решения технических задач. Такими шаблонами являются: сущность, объект-значение, службы предметной области, события, модули, агрегаты, фабрики и хранилища. Именно о них пойдет речь в этой статье.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии27

Domain-Driven Design: стратегическое проектирование. Часть 1

Время на прочтение14 мин
Количество просмотров110K


Здравствуйте, хабрапользователи! В этой статье речь пойдет о предметно-ориентированном проектировании программного обеспечения с использованием, в первую очередь, стратегических шаблонов. Вторую часть – про тактическое проектирование – читайте здесь.

Данный подход использовал Вон Вернон в своей книге «Реализация методов предметно-ориентированного проектирования». Цель написания этой книги: дать возможность разработчикам совершить полет на самолете DDD (в детстве автор зачастую путешествовал со своей семьей на небольших самолетах). Вид с высоты дает более широкое представление о проблемах моделирования, не давая застрять в различных технических деталях. Наблюдая ландшафт DDD таким способом, можно осознать преимущества как стратегического, так и технического проектирования. Подробнее – под катом!
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии64

Обзор k9s — продвинутого терминального интерфейса для Kubernetes

Время на прочтение6 мин
Количество просмотров52K


K9s предоставляет пользовательский интерфейс терминала для взаимодействия с кластерами Kubernetes. Цель этого Open Source-проекта — облегчить удобную навигацию по приложениям в K8s, наблюдение за ними и управление ими. K9s постоянно следит за изменениями в Kubernetes и предлагает быстрые команды для работы с наблюдаемыми ресурсами.

Проект написан на Go, существует уже более полутора лет: первый коммит был сделан 1 февраля 2019 года. На момент написания статьи насчитывается 9000+ звезд на GitHub и около 80 контрибьюторов. Посмотрим, что умеет k9s?
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии5

Бесплатные Oracle Cloud серверы и Mikrotik — Site-to-Site VPN

Время на прочтение7 мин
Количество просмотров41K

Предоставление бесплатных серверов от малопопулярного облачного провайдера - это не новость. А новость в том, что теперь Oracle, вдобавок к двум едва живым бесплатным x86_64 серверам, открывает доступ к мощностям на ARM64 - для всех, даром, и пусть никто не уйдет обиженным!© Предложение по ARM значительно более производительное, чем на традиционных процессорах. Добавляя к этому отсальные бесплатные "плюшки", я задаюсь вопросом: а зачем я до сих пор плачу за VPS и держу собственный серверок в подвале?! Все это можно выкинуть если удастся надежно и безопасно связать дата центр с домашней сетью.

Читать далее
Всего голосов 22: ↑19 и ↓3+17
Комментарии104

Как использовать свойство Exception.Data, чтобы логировать дополнительные сведения об исключениях

Время на прочтение3 мин
Количество просмотров4.9K

Привет! Я Антон Антонов, Full Stack Developer. Расскажу, что помогает мне исправлять ошибки в коде.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

Как обрабатывать необработанные исключения в ASP.NET Core Web API

Время на прочтение6 мин
Количество просмотров9.7K

Привет! Я Антон Антонов, Full Stack Developer. Расскажу, как обрабатываю необработанные исключения в ASP.NET Core Web API, и дам примеры обработчиков ошибок, которые отвечают наиболее распространенным требованиям.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии12

Какие вопросы задать работодателю на собеседовании?

Время на прочтение3 мин
Количество просмотров226K

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

Я составил 50 самых важных вопросов будущему работодателю, которые ты обязан задать на собеседовании.

Читать далее
Всего голосов 22: ↑20 и ↓2+22
Комментарии18

Mapper Contexts и Supercontexts: Разделение domain-specific и domain-generic ограниченных контекстов

Время на прочтение7 мин
Количество просмотров2.9K

Эта статья является переводом материала «Mapper Contexts & Supercontexts: Decoupling Domain-Specific and Domain-Generic Bounded Contexts».

Вы создаете новую систему, и два члена вашей команды предлагают альтернативные архитектуры для отправки уведомлений. Какая из них правильная?

Первый разработчик предлагает модель push: ограниченный контекст должен дать указание Notifications отправить уведомление. Notifications должен просто подчиняться командам и отправлять указанные уведомления.

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

Как бы вы спроектировали решение? Что еще более важно, как бы вы приняли это решение в команде? Как вы будете разрабатывать наиболее эффективную архитектуру, которая поддерживает краткосрочные цели и долгосрочное развитие?

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

KODI: собираем удобный и функциональный медиацентр для дома. Часть 1

Время на прочтение27 мин
Количество просмотров421K

Поговорим о том, как при наличии небольшого количества времени и навыков построить мультимедийный комбайн с дополнительными возможностями домашнего сервера на базе Kubuntu 20.04 и KODI, способного работать 24/7/365.

Читать дальше →
Всего голосов 55: ↑54 и ↓1+68
Комментарии189

Никогда такого не было и вот опять. Почему нужно использовать self-hosted VPN. Релиз Amnezia

Время на прочтение11 мин
Количество просмотров168K

Вот и пришло время для релиза VPN-клиента, родившегося благодаря хакатону DemHack, и выращенного при поддержке РосКомСвободы, PrivacyAccelerator и Теплицы социальных технологий.


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


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


image
Читать дальше →
Всего голосов 93: ↑91 и ↓2+126
Комментарии179

Tile server на коленке: навигация по старинным картам

Время на прочтение5 мин
Количество просмотров8.3K

Я являюсь full stack разработчиком на культурно-историческом IT портале Königsland, который успешно начал свою работу примерно месяц назад. Этот ресурс посвящается культуре и истории Восточной Пруссии и является своеобразной летописью времен, которая больше всего напоминает вирутальный музей, где можно получить довольно полную информацию об истории этого великого края, а эта информация пополняется по мере возникновения у меня свободного времени.

Страницы этой летописи приоткрывают завесу тайны и позволяют получить пользу от современных технологий тем, кто увлекается стариной.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии14

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

Время на прочтение5 мин
Количество просмотров45K

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность