Мы в MOEX рассматриваем платформу как внутренний продукт, и в ходе разработки ориентируемся главным образом на “боли” и потребности команд. Platform engineering, или развитие платформ в нашем понимании – это процесс создания и предоставления удобных сервисов самообслуживания командам и инженерам, с целью ускорения потока создания ценностей, снижения объема нецелевых активностей команд, а также повышения качества, надежности и безопасности создаваемых решений.
В статье, мы собрали для вас пять наиболее любопытных платформенных фич, которые ускоряют наши процессы.
Администрирование
7 аргументов почему UUID лучше, чем автоинкрементные идентификаторы
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/3f7/e03/69c/3f7e0369ca9fcf0d8091f9f08b75abeb.png)
В мире баз данных идентификаторы имеют решающее значение для уникальной идентификации записей. Традиционно многие разработчики предпочитали автоматически увеличивающиеся целочисленные идентификаторы. Однако есть еще один вариант, который набирает популярность: универсально уникальные идентификаторы (UUID). В этой статье мы рассмотрим, почему UUID часто являются лучшим выбором по сравнению с автоматически увеличивающимися идентификаторами.
MSSQL: Rebuild vs Reorganize в высоконагруженных системах
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/8e2/1b5/eb4/8e21b5eb4f706df15df614d6d05eac4d.jpg)
В двух прошлых статьях я разобрал Index REBUILD в Enterprise и Standard editions. Настало время осветить Index Reorganize - то есть Index Rebuild для бедных. Рекомендую заглянуть в статьи по ссылкам выше - там описан скрипт, который выполняет rebuild или reorg, контролируя течение процесса.
Ведь index reorganize не держит долгих блокировок, почти не нагружает сервер, работая в одном треде, поэтому он безопасен, так? Правда? Ведь правда?
Windows — причина медленного интернета
Если вы столкнулись с «особой» проблемой медленного интернета и никакие танцы с бубном вам не помогают, то это статья для вас.
Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.
В этой статье я поделюсь своим «интересным» опытом, как я искал решение проблемы и о том, что Windows можно починить и не переустанавливать.
Истории
Сборка .NET решений через код на Nuke Build
Традиционно, для реализации CI/CD сценариев DevOps-инженеры используют различные платформы, такие как Jenkins, TeamCity, Azure DevOps и т.д. Их конфигурирование для сборки, версионирования, создания релизов решений может быть сложным и трудоемким, особенно если решение состоит из множества проектов/единиц развёртывания.
Обычно для настройки сборки решений в .NET используется большое количество разнородных скриптов, что создает ряд проблем:
• Сложность поддержки: использование такого количества скриптов делает их поддержку более сложной и трудоемкой. Каждый скрипт может иметь свою синтаксическую структуру и требовать специфических знаний для его изменения или исправления ошибок.
• Отсутствие стандартизации: в случае использования скриптов, каждый разработчик может использовать свой собственный подход к настройке процесса. Это приводит к отсутствию стандартов и единого подхода в организации, затрудняя совместную работу и повышает сложность обслуживания.
• Непредсказуемость: нет уверенности, что процесс будет проходить одинаково на всех серверах сборки, поскольку он зависит от настроек окружения и установленных там SDK. Более того, сборка или запуск тестов могут проходить на одной ОС, а развёртывание - на другой, приводя к непредсказуемым ошибкам.
• Зависимость от инструментов: для настройки CI/CD с использованием скриптов обычно требуется определенный набор инструментов, создавая зависимость от них и усложняя переносимость настроек.
• Отсутствие контроля версий: нередко бывает так, что скрипты не хранятся в системе контроля версий, тем самым затрудняя отслеживание изменений и воспроизведение конфигурации для определенной версии приложения.
• Отсутствие вовлеченности разработчиков: поскольку, зачастую, настройка CI/CD выполняется DevOps-инженерами, разработчики не могут вносить изменения в процесс сборки напрямую. Более того, разработчики могут не знать, как настроен весь процесс, что делает его менее прозрачным и увеличивает время реакции на изменения или проблемы.
• Зависимость от внешних поставщиков: в постоянно изменяющихся условиях рынка, коробочные решения для CI/CD могут устаревать, переставать соответствовать требованиям организации или просто уходить с рынка. Всё это может приводить к необходимости перехода на другие решения и влечёт дополнительные затраты на переобучение и перенастройку процесса.
Что можно сделать, чтобы решить эти проблемы?
Модели данных в NoSQL
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/cd/6o/5w/cd6o5wt713tgqo_fsgwbwy6fkwm.png)
Автор статьи: Артем Михайлов
NoSQL (от «Not Only SQL») представляют собой семейство баз данных, разработанных для решения проблем, связанных с хранением, извлечением и обработкой больших объемов разнообразных данных. Они отличаются от традиционных реляционных баз данных, таких как MySQL или PostgreSQL, тем, что не требуют жесткой схемы данных и предоставляют более гибкую структуру хранения.
Преимущества NoSQL баз данных включают в себя горизонтальное масштабирование, высокую производительность при больших нагрузках, способность обрабатывать полуструктурированные и неструктурированные данные, а также поддержку распределенных вычислений. Они широко используются в веб-разработке, анализе больших данных, интернете вещей и других областях, где требуется обработка и хранение данных большого объема и разнообразной структуры.
Time-based атаки во вредоносном ПО и противодействие им
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/df9/b9e/b63/df9b9eb63c175fde83a8a177d261ba46.png)
Киберпреступники постоянно совершенствуют методы атак, используя среди прочего знания о принципах работы систем защиты. Например, появилось целое направление техник обхода песочниц: такие методы позволяют определять, что вредоносное ПО выполняется в контролируемой виртуальной среде, и, исходя из этого, менять его поведение или завершать работу. К наиболее популярным техникам из указанной категории можно отнести проверки:
• бита гипервизора в регистре ECX инструкции CPUID(1);
• имени гипервизора в результате выполнения инструкции CPUID(0x40000000);
• имени текущего пользователя или компьютера по списку;
• MAC-адресов сетевых адаптеров, присутствующих в системе;
• количества ядер процессора, общего объема оперативной памяти, размера жесткого диска, разрешения экрана;
• наличия файлов, путей реестра, сервисов, драйверов и процессов, специфичных для виртуальных сред;
• времени, прошедшего с момента последнего запуска системы.
Детальнее о техниках обхода песочниц в таргетированных атаках — в другой нашей статье. А сегодня поговорим о более продвинутых временных атаках, использующих особенности работы гипервизора для детектирования виртуального окружения.
Бесплатное ПО VS. ежегодная подписка
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/ece/9dc/925/ece9dc925a5994b49373a7661c8f2bc5.jpg)
Любое ПО делится на платное и бесплатное. И в том, и в другом есть свои плюсы и минусы. Жирный минус бесплатного ПО я испытала на своем опыте.
Цены на SSD падают, но это не особо помогает продажам: спрос на твердотельные накопители упал на 25%
![image](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/wb/1o/ft/wb1oftrmv_d88wyf8thzfxjvb6u.png)
Еще в марте 2023 года мы публиковали статью с аналитикой цен на SSD. Тогда мы говорили о том, что всего за пару месяцев стоимость большинства накопителей упала на на 15-30%. Активнее всего цены снижались на накопители объемом в 1 ТБ. Из 21 модели, которые были проанализированы, стоимость снизилась у 17 — по сравнению с ценой на начало января 2023 года.
Можно было бы ожидать роста продаж SSD, особенно в корпоративном секторе, где относительно недорогие и быстрые накопители нужны буквально всем. Однако, ситуация прямо противоположная — продажи падают, и всего за несколько месяцев снижение составило около 25% на SSD корпоративного класса.
Что бы я хотел знать до переноса 50 000 строк кода на серверные компоненты React
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/536/bd1/831/536bd1831436c1b74f4cc74d50e140ff.png)
Серверные компоненты React – это большой кусок работы. Недавно мы переосмыслили нашу документацию и устроили ребрендинг Mux. Пока мы этим занимались, мы перенесли весь материал сайтов mux.com и docs.mux.com на серверные компоненты. Так что, поверьте мне… я знаю. Знаю, что это возможно, не так страшно и, в принципе, что дело того стоит.
Давайте я вам объясню, почему, ответив на следующие вопросы: почему так важны серверные компоненты, а также для чего они хороши? Для чего они не так хороши? Как их использовать, как их постепенно внедрять и какие продвинутые паттерны следует использовать, чтобы всем этим управлять? Дочитав эту статью, вы станете замечательно представлять, следует ли вам использовать серверные компоненты React, а если следует – то как использовать их эффективно.
Проксируем OpenVPN через Shadowsocks или чиним OpenVPN во время блокировок
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/27e/10f/cd7/27e10fcd7f74e4bc1d48559e168cb896.png)
В данной статье рассмотрим как настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через shadowsocks (Outline VPN) туннель на OpenWRT любых версий с помощью openvpn-openssl и shadowsocks-libev.
Понадобятся:
Существующий сервер OpenVPN и настроенный клиент на OpenWRT
Конфиг shadowsocks (Outline) вашего либо чужого сервера.
Свободные 650кб памяти в роутере
Xray на Keenetic / Xkeen
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/3a3/124/d07/3a3124d07a6b6a58c70178100d7ce1cd.png)
Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.
Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.
Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.
Запуск приложений на .NET в качестве службы на Linux-системе с systemd
![image](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/xj/fd/hh/xjfdhhmz8c-pqokoro5wanij8sw.jpeg)
В этом материале будет рассмотрено, как запускать приложение .NET Core / .NET 5 в качестве сервиса под Linux. Мы воспользуемся Systemd, чтобы интегрировать наше приложение с операционной системой, научимся запускать и останавливать наш сервис, а также получать от него логи.
Чтобы организовать атаку на цепочку поставок при помощи .NET, мне потребовалось настроить DNS-сервер, который перехватывал бы те хост-имена, которые ко мне направляются. Давайте возьмём этот кейс для примера.
Ближайшие события
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/mh/ps/zx/mhpszxleb6m4maqlsg6kghdpxci.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/pp/_g/3x/pp_g3x7ojy3g4qwwgf7bujg3mgs.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/40/h9/wu/40h9wucrxpilswa0cwrlq1uelj0.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/z5/lh/3f/z5lh3fgs1zz4yo64zbdxqrsut04.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/xr/yf/l8/xryfl8jni4jlwh2culevzpnjmsq.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/qu/we/jn/quwejnhutcu3px1j3adqo4rlkdy.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/b4/8u/tc/b48utc8ycbruikrjxyt-jtxbe1q.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/te/28/do/te28doaa_hyyc_pmkmwg13zfmss.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/vl/kf/hv/vlkfhvpscozj_4eog07w9eb0fow.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/bc/cf/14/bccf14abdqnwotholdoyyhti01e.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/dp/rg/0o/dprg0oqjoduu6x0s0skjszojzsy.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/si/u_/80/siu_80howp0giy-wsvmnrb1qrnw.jpeg)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/webt/yi/h2/mk/yih2mkst3jow_svnkemhq27h0o4.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/uq/rt/rd/uqrtrd0fibci9i7phuuybk8drog.jpeg)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/cc/h9/2p/cch92p_kfj0mbxeokbdgp-uopbw.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/t_/af/cx/t_afcxlpq7bfbhcuziffrlpoddw.png)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/jw/iy/j2/jwiyj2kplvp4rn8uiog74md1xes.jpeg)
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://hsto.org/webt/hz/tg/9k/hztg9k1w_eanhcx-7f184wdouri.jpeg)
Рассказ о том, как QA решили документацию тестировать
Давай определим, зачем это вообще нужно?
Эта статья рассказывает о том, как можно тестировать документацию и вероятно кому то поможет сделать этот процесс в своей команде более качественным
Заблокирован ли протокол OpenVPN? И как теперь быть?
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/fd9/b79/02a/fd9b7902a719334b3159c054bed9cd9e.png)
Один мой знакомый держит свой OpenVPN сервер, он поделился со мной хронологией блокировки популярных VPN протоколов в России. С его разрешения, я публикую детальную информацию о том, как это происходило с точки зрения клиента и администратора OpenVPN.
Сравнение датчиков температуры. Часть 2, цифровые
Как обмануть родителей и не идти в школу? Есть простой рецепт. Берем градусник, нагреваем его при помощи фена или обогревателя до требуемой температуры 38 °C, имитируем хриплый голос и сопли, демонстрируем все обозначенное взрослым. Но получится ли провернуть такую операцию, если градусник цифровой? К счастью, да, проверено на медицинском термометре WT-03 BASE фирмы B.Well. Проверено теоретически, конечно, я же уже взрослый.
Ртутный градусник имеет интересное свойство запоминать максимальную температуру. В электронном термометре эту функцию заменяет программа. Есть некоторый начальный порог, что-то около 30 °C и если затем положить прибор в холодильник, то он покажет последнее максимальное значение. Нет необходимости удерживать требуемую для обмана температуру продолжительное время. Отлично.
Измеряем производительность блочного pNFS: опыт Cloud.ru
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/957/bb5/e9d/957bb5e9d23c346cab552c980b91e791.png)
Привет, Хабр! Меня зовут Сергей Баширов, я ведущий разработчик в Cloud.ru. Наша команда RnD занимается исследованиями и оптимизацией баз данных, файловых систем, объектных хранилищ, СХД и SDS в облачной инфраструктуре. И мы решили «импортозаместить в лучших традициях» pNFS. За дело взялись вместе с моим коллегой — Константином Евтушенко (@kevtushx).
К сожалению менеджеров и на радость нам, годной инструкции по настройке в интернете не оказалось. Софт с открытым исходным кодом из коробки не завелся: пришлось погружаться в детали, отлаживать и чинить. В статье расскажу, как всё было, какие ошибки и выводы мы сделали, а также поделюсь подробной инструкцией по настройке стенда с блочным типом доступа к серверам данных. Если интересно — добро пожаловать под кат!
Безопасность облачных сред
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/ffa/39b/fcd/ffa39bfcd11a460ec9644f74ebde2ae6.png)
Об облаках уже написано множество статей и книг и кажется, что все уже давно знают, как нужно внедрять и работать с облаками. Однако, далеко не всегда облачные среды защищены должным образом, поэтому не лишним будет напомнить о том, что наиболее важно при обеспечении безопасности облачных сред.
Начнем с инфраструктуры. Ни одно облачное хранилище не может жить без сети. Поэтому, прежде всего необходимо позаботиться о безопасности сетевой инфраструктуры, которая обеспечивает работу нашей облачной среды.
Секреты в kubernetes используя Hashicorp Vault + External Secrets Operator
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/8d5/58e/d67/8d558ed67deb453b0a97a35e5852107e.jpg)
Всем привет! Меня зовут Сергей Смирнов, я DevOps экосистемы «Своё» в РСХБ-Интех (технологическая дочка Россельхозбанка).
Сегодня я расскажу вам об одном из способов доставки секретов в kubernetes из Hashicorp Vault. Это поможет решить сразу несколько задач:
• Создать единственное хранилище секретов;
• Защитить от утечки секретов;
• Сделать работу с секретами для пользователей удобной.
Магнитные усилители: тайное оружие Третьего рейха против электронных ламп
![](https://webcf.waybackmachine.org/web/20230911194447im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/70e/d5d/ce9/70ed5dce978d7fa4ca5aa42390e51e97.png)
Магнитные усилители были альтернативой хрупким вакуумным лампам и дорогим транзисторам в середине XX века. Созданные американцами и усовершенствованные немцами они применялись в автоматике на фабриках, в компьютерах, на электростанциях, в военной технике и даже на атомных подводных лодках. Относительно недорогие, многофункциональные и компактные, они прошли длинный путь от изобретения до признания и исчезновения. Делимся историей магнитных усилителей и отвечаем на вопрос, почему и куда они пропали.