Pull to refresh
5
0
Alexey Sinutin @ZZnOB

Системный администратор, C# разработчик

Send message

Защищаем сервис от перегрузки с помощью HAProxy

Reading time 13 min
Views 5.9K

Если вам доводилось использовать HAProxy для балансировки трафика, вы наверняка как минимум слышали, что этот продукт умеет отслеживать показатели активности сервиса и пользователей и реагировать на них по предопределённым условиям. Обычно в статьях на эту тему приводится пример ограничения пользователя по исходному IP-адресу, если частота запросов с него превышает некоторый предопределённый заранее лимит. Вот, к примеру, такая статья с сайта разработчиков.

Я бы хотел немного углубиться в тематику использованного механизма stick tables, но поговорить не про пользователей, активно интересующихся вашим сайтом, а про нагрузочную способность, или ёмкость, всего сайта (ну или каких-то его путей). Во-первых, любой сервис ограничен в количестве одновременных запросов, которые возможно обслужить на существующих ресурсах. Во-вторых, чаще всего у сервиса не одна площадка или хотя бы не один экземпляр балансёра. А это значит, что поймать одинокого пользователя — это, конечно, здорово, но хотелось бы решить и другую интересную задачу: защитить сервис от перегрузки в целом и в случае, если балансёров более одного. Бонусом поговорим о проблеме умного перераспределения нагрузки между локациями.

Читать далее
Total votes 18: ↑18 and ↓0 +18
Comments 0

Как не про…пустить все дедлайны. Автоматизируй, властвуй, сохраняй

Level of difficulty Easy
Reading time 11 min
Views 2.3K

Как не умереть от рабочей рутины и не потерять фокус между десятками ежедневных задач? Как по максимуму использовать почту, календарь, мессенджер и браузер?
Читайте мини-гайд и берите на заметку!
P.S. ТОП 8 неудачных прыжков на грабли в комплекте

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 6

Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя

Level of difficulty Medium
Reading time 10 min
Views 7.6K

Слой Application - это не только про оркестрацию, но еще немного про бизнес-логику. Следует это простить и принять внутри себя. А иначе попытки продвинуться дальше в написании кода съедят программиста-перфекциониста живьем.

Можно долго искать решения, читать различные комментарии и книги про разделение бизнес-логики от приложения. И все равно ваша конкретная ситуация будет казаться вам уникальной, как будто ничего нельзя сделать либо надо снова переписывать Domain слой, дабы ни одно зернышко бизнес-логики не выпало за его пределы. А можно просто закрыть глаза на некоторые моменты, забыть об идеале и спать спокойно, рассчитывая, что все чудесным образом само разрулится.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 95

Хватит маппить все руками, используй Mapster

Level of difficulty Medium
Reading time 13 min
Views 19K

Привет, Хабр! Меня зовут Георгий, я С#-разработчик в SimbirSoft. Хочу рассказать об опыте использования библиотеки Mapster: как он может упростить разработку, сэкономить силы и частично избавиться от рутины маппинга.

Данная статья подойдет и тем, кто только собирается открыть для себя мир автомаппинга, и тем, кто хочет найти для себя альтернативу используемой библиотеки. Для полного понимания, что тут будет происходить желательно обладать базовым пониманием C#, знать о существовании DI и подозревать, что рефлексия не так проста, как кажется.  Ну и LINQ с EF.Core, куда же без них (хотя про них достаточно просто когда-то слышать и примерно представлять, зачем они нужны).

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 24

WinRAR CVE-2023-38831

Level of difficulty Medium
Reading time 4 min
Views 7.3K

10 июля 2023 года при исследовании распространения троянского ПО под названием DarkMe, специалистами из Group-IB была обнаружена раннее неизвестная уязвимость в WinRAR, которая касалась обработки zip-архивов. Данная уязвимость получила идентификатор CVE-2023-38831. С помощью этой уязвимости, по данным специалистов Group-IB, злоумышленники производили атаку на пользователей трейдерских форумов с апреля 2023 года. После заражения устройств пользователей, злоумышленники выводили деньги с брокерских счетов жертв. В этой статье мы разберемся, в чем кроется уязвимость и как её можно проэксплуатировать.

Читать далее
Total votes 30: ↑30 and ↓0 +30
Comments 24

Настройка CI/CD глазами разработчика

Level of difficulty Medium
Reading time 9 min
Views 17K

Тема, которая будет сегодня освещена, рассказывается от лица backend разработчика. На нашем проекте нет devops'а, который бы мог подсказать, направить. Поэтому нам пришлось выходить из зоны комфорта.

Тут кое-что интересное...
Total votes 14: ↑12 and ↓2 +10
Comments 24

Инструменты создания API клиента для .NET

Level of difficulty Easy
Reading time 8 min
Views 7.9K

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 7

Гайд по настройке IoC-контейнера в консольном приложении .NET core

Level of difficulty Medium
Reading time 8 min
Views 4.6K

Статья‑гайд от ведущего.NET‑разработчика «ITQ Group» Александра Берегового.

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

Читать далее
Total votes 10: ↑6 and ↓4 +2
Comments 39

Ключи в базе данных: практический обзор для начинающих системных аналитиков

Level of difficulty Easy
Reading time 6 min
Views 7.3K

Всем привет! Меня зовут Оксана, я системный аналитик из компании EvApps. Что побудило меня написать эту статью? Я обучаю стажеров – системных аналитиков, и недавно столкнулась с такими вопросами, о которых раньше даже не задумывалась.

Вопросы были связаны с разными видами ключей в базе данных и с тем, как они связаны между собой (тему с реляционными БД мы разбираем на примере PostgreSQL). Я начала искать разные статьи по этой теме, очень много крутого материала на том же «Хабре», но многие вопросы так и остались не раскрытыми. И мне стало интересно разобраться с этими вопросами и «пощупать» все это на практике. В итоге начала изучать документацию PostgreSQL и теорию реляционных баз данных, но чтобы получить ответы, пришлось все проверять на практических примерах.

В этой статье мне хотелось разобрать разные вопросы с доказательными примерами.

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 14

Как нефункциональные требования влияют на архитектуру

Reading time 8 min
Views 8.2K

Привет, Хабр, меня зовут Светлана Уварова, я — ведущий системный архитектор в МТС.

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

Читать далее
Total votes 15: ↑14 and ↓1 +13
Comments 13

Тестирование производительности 1С на СУБД MSSQL 2022 и PostgreSQL 15 (на 20, 40, 60,80, 100 пользователей)

Level of difficulty Medium
Reading time 7 min
Views 12K

В начале 2024 года мы решили провести новое исследование производительности 1С:Предприятие на СУБД MSSQL и PostreSQL и вот что получилось...

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 22

Где изучать C# в 2024. Бесплатные курсы и полезные ресурсы

Level of difficulty Easy
Reading time 5 min
Views 21K

Существует несколько причин, почему стоит учить C# в 2024 году через бесплатные курсы:

1. Популярность: C# является одним из самых популярных языков программирования, особенно в сфере разработки приложений для платформы Microsoft. Изучение C# открывает двери для работы над широким спектром проектов и предоставляет множество возможностей для развития карьеры.

2. Разнообразие применения: C# используется для разработки различных типов приложений, включая десктопные приложения, веб-приложения, игры, мобильные приложения и многое другое. Изучение C# позволяет вам выбрать свою область интересов и создавать программное обеспечение для разных платформ.

3. Работа с платформой .NET: C# является основным языком программирования для платформы .NET, которая является одной из самых мощных и широко используемых платформ разработки программного обеспечения. Изучение C# позволяет вам использовать все преимущества и возможности, предоставляемые платформой .NET.

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

5. Бесплатные курсы: Существует множество бесплатных онлайн-курсов и ресурсов, которые помогут вам изучить C#. Такие курсы предоставляют доступ к обучающим материалам, учебным проектам и практическим заданиям, что позволяет получить практический опыт без необходимости вложения денег.

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

Читать далее
Total votes 20: ↑16 and ↓4 +12
Comments 15

Делаем intent classifier для службы поддержки без доменного датасета на русском

Level of difficulty Medium
Reading time 8 min
Views 1K

В этой статье я продемонстрирую, как без собственного датасета сделать классификатор намерений пользователя для службы поддержки в сфере e-commerce. И более того, я расскажу, как у меня получилось сделать классификатор для русского языка без датасета на русском языке.

Меня зовут Елизавета Колмакова, я Data Scientist в компании, которая разрабатывает айти-решения для крупного ритейла.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Comments 1

Что делать в первую очередь? Простая приоритизация задач при помощи риса

Level of difficulty Easy
Reading time 6 min
Views 7.4K

Реализация проекта или создание продукта связаны с выполнением задач, тестированием идей и гипотез. Зачастую их накапливается огромное количество, и встает извечный вопрос (нет, не кто виноват и что делать): что делать в первую очередь? Если в организации не установлены явные правила, то будет работать «правило джунглей»: прав тот, кто громче кричит. Соответственно, с наивысшим приоритетом пойдут задачи того, заказчика, который имеет перевес в голосе и в «корпоративном весе».

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

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 7

Persistence via RDP

Reading time 3 min
Views 5.1K

Внимание! Статья несёт исключительно информативный характер. Подобные действия преследуются по закону!

Привет! Сегодня хотелось бы рассмотреть стандартный, но необычный способ закрепления в системе через RDP, используя utilman.exe.

Представим следующую ситуацию: нам удалось получить reverse shell от целевого хоста. Безусловно, нам необходим backdoor для обеспечения постоянного доступа. В процессе сканирования мы узнаем об открытом 3389 порте. И как нам быть?

Читать далее
Total votes 7: ↑4 and ↓3 +1
Comments 6

Редактирование и подпись PDF в браузере локально

Reading time 3 min
Views 6.7K


За последние месяцы появилось несколько полезных инструментов для подписи и редактирования PDF. Опенсорсные веб-приложения работают через браузер, но локально на компьютере клиента, то есть без передачи документов на сервер. Вся «установка» таких приложений сводится к сохранению HTML с сайта и запуску из кэша.

В некоторых случаях эти современные приложения могут составить альтернативу платным нативным программам, таким как Adobe Acrobat Pro и DocuSign.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 1

Инструменты автоматического тестирования безопасности QA

Reading time 4 min
Views 3.5K

На тему автоматизации тестирования написано множество статей, посвященных различным инструментам QA в рамках процессов DevOps. В этой статье мы тоже будем говорить об автоматизации тестирования, но уже в контексте процессов DevSecOps.

DevSecOps по своей сути является логичным дополнением выстроенных процессов DevOps. Так на рисунке ниже представлены те инструменты и методы, которые должны использоваться для того, чтобы разрабатываемое приложение содержало меньше багов и уязвимостей и в целом было более защищенным. 

Читать далее
Total votes 11: ↑9 and ↓2 +7
Comments 1

Настройка Nginx multiple reverse proxy для k3s+istio

Level of difficulty Easy
Reading time 4 min
Views 6.2K

Всем читателям, привет! Хочется поделиться своим опытом по созданию Nginx reverse proxy для интересного кейса.

Есть 1 ip и на него нацелено n доменов
Есть n серверов (за NAT)
Когда пользователь заходит на домен_1 попадает на сервер_1
Когда пользователь заходит на домен_2 попадает на сервер_2
Когда пользователь заходит на домен_n попадает на сервер_n

Читать далее
Total votes 1: ↑1 and ↓0 +1
Comments 14

Как подключить Google Analytics к Telegram боту?

Level of difficulty Easy
Reading time 3 min
Views 1.6K

Существует множество способов отслеживать активность пользователей Telegram бота. Многие разработчики предпочитают создавать собственные решения. В данной статье я попытаюсь по пунктам объяснить, как можно использовать всем известный сервис Google Analytics для отслеживания действий пользователей вашего Telegram бота.

Для примера я буду использовать свой бот для автоматической проверки и исправления текста на английском языке. Бот представляет собой ни что иное, кроме как обертку для одного из GPT сервисов. Поскольку база данных при этом не используется, использование Google Analytics для учета пользователей выглядит оптимальным вариантом. Поехали: 

Читать далее
Total votes 4: ↑2 and ↓2 0
Comments 1

Нужно ли разработчикам проектирование?

Level of difficulty Medium
Reading time 7 min
Views 8.2K

Такие схемы на проектах готовят наши архитекторы. Достаточно ли их чтобы оценить состав и сложность каждого модуля, объем и трудоемкость работ в целом. Поможет ли такая схема при планировании работ?

В статье рассуждение о том что могло бы помочь.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 21

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Backend Developer
Middle
From 150,000 ₽
C#
.NET Core
Entity Framework
.NET
ASP.Net
PostgreSQL
SQL
Nginx
Docker
Git