Pull to refresh
59
0
Дмитрий Костиков @rumatavz

User

Send message

Evaluating Performance: CosmosDB vs. Azure SQL

Level of difficultyEasy
Reading time4 min
Views5.3K

In the evolving landscape of database technology, choosing the right database management system is crucial for the efficiency and scalability of applications. This article presents a detailed comparison of the performance between Microsoft's CosmosDB and MS SQL Server. We'll examine how each database performs under various load conditions and share some interesting findings.

Read more
Total votes 3: ↑3 and ↓0+3
Comments0

Memory consumption of .NET applications on Linux

Level of difficultyMedium
Reading time12 min
Views5.4K

In this article, I will cover the memory consumption of .NET applications on Linux. Firstly, we will try to understand the idea of virtual memory. Then, we will examine the memory statistics that Linux provides, such as RSS (Resident Set Size), VmData, RES (Resident Memory Size), and SWAP. Following that, we will delve into specifics related to the .NET.

Read more
Total votes 3: ↑3 and ↓0+3
Comments0

Быстрое создание тестовых сред — решение на Terraform в Azure

Level of difficultyMedium
Reading time12 min
Views3K

О чем и для кого статья

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

Я подразумеваю, что читатель статьи уже владеет основами Terraform.

Предполсылки и требования

Для начала хотелось бы рассказать о нашей компании. Мы финтех стартап, занимающийся факторингом. Мы с самого начала развивались как cloud native. Все наши вычислительные мощности и сервера находятся в Azure.  

На момент событий, описываемых в статье, большинство наших ресурсов составляли Azure App Service, Azure Sql Servers и Azure Blob storages. У нас было два крупных монолита и около 10 микросервисов вокруг. Честно говоря, это было больше похоже на распределённый монолит, потому что тестировать приходилось всю экосистему, а не отдельные сервисы.

В определенный момент мы начали очень быстро расти с, примерно, 20 человек в Tech отделе до 120 за год. В это время основной нашей болью было количество тестовых сред. У нас были три среды: test, staging и prod. Команды толкались в этих средах, test был постоянно разломан, протестировать что-либо было невозможно. От этого staging тоже забивался неработающим функционалом и выпуски затягивались на недели. 

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

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

Как я искал вбросы на московских выборах и что-то нашел

Reading time4 min
Views21K

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

А значит порядок голосования совпадал бы с порядком регистрации. Вот это гипотезу я и решил проверить.

Так что же я нашел?
Total votes 64: ↑59 and ↓5+54
Comments49

Проблемы использования IEnumerable

Reading time5 min
Views69K
В этой статье я хочу рассказать о проблемах использования интерфейса IEnumerable. Мы рассмотрим, какие проблемы может принести использование этого интерфейса, когда его на самом деле нужно использовать, и чем его заменить.

А начать статью я хотел с пары примеров кода, а точнее с пары багов, встречавшихся мне в реальных проектах.
Читать дальше →
Total votes 46: ↑34 and ↓12+22
Comments41

Барьеры памяти и неблокирующая синхронизация в .NET

Reading time7 min
Views57K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments18

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity