Даже немножко страшно думать, что еще несколько лет назад, когда использование k8s разрасталось до сегодняшних масштабов, люди предлагали и даже пытались разворачивать в нем базы данных с прикрученными volume-ами около своих приложений. Говоря о дизайне высоконагруженных систем, хоть и с минимумом бизнес-логики, иногда задумываешься даже о bare-metal имплементации, сравнивая ее с виртуализацией (в некоторых компаниях иногда и второго порядка). Чтобы избежать подобных мыслей, я решил для себя подумать, как можно организовать что-нибудь простое, но масштабированное и к чему однозначно не подойдут требования к нагрузке в 1 запрос в секунду. Дальше - интереснее.
Высокая производительность *
Методы получения высокой производительности систем
Новости
Load2SRE: от нагрузки к доступности, без потери производительности
Привет! Меня зовут Кирилл Юрков, я SRE Team Lead в Samokat.tech. Уже более десяти лет занимаюсь ускорением и проблемами производительности, а также нагрузочным тестированием.
Отвечая на вопрос, что делает SRE в Samokat.tech, скажу, что это те, кто занимается инцидентами и проблемами на всём их жизненном цикле, от этапа архитектуры и разработки до postmortem'а после инцидента.
В этом посте я хочу рассказать, как из нагрузочного тестировщика превратиться в SRE-инженера. Поделюсь, как этот путь проходил я сам, с какими сложностями сталкивался и что случалось на каждом этапе. Также раскрою в деталях саму роль SRE-инженера, чем он занимается и чем полезен. Возможно, после этого вы в команде решите, что вам такая роль тоже нужна (если у вас её ещё нет).
Под капотом Госуслуг: про СМЭВ3 от первого лица
Привет ИТ-сообщество! Я Анастасия Пятько, аналитик-внедренец из РТЛабс. Это компания, которая развивает всем известные Госуслуги и пытается облегчить нашу бюрократическую жизнь.
Недавно мне довелось выступить на HighLoad++ 2022 с похожей темой: «СМЭВ. Сильно проще, чем кажется. Полезные советы, как стартовать интеграцию через СМЭВ3 и СМЭВ4». Организаторы знают своё дело. В зале была заинтересованная аудитория, которая задавала вопросы с неподдельным интересом. С некоторыми разговор у стенда продолжался ещё несколько часов. Так родилась идея — зафиксировать всё текстом в этой статье.
Запуск самодиагностики на платформе МТС OmniChannel
Привет! Мы в МТС Digital умеем и любим создавать высоконагруженные IT-решения. Для вывода таких продуктов в промышленную эксплуатацию необходимо научиться решать задачи постоянного самоанализа работоспособности, мониторинга, проверки соответствия заявленным SLA.
Меня зовут Глеб Тильтиков, я технический руководитель омниканальной платформы MTC OmniChannel, и о внедрении самодиагностики в IT-продукте большой цифровой экосистемы и пойдёт речь в этой статье.
Истории
Кэш в JavaScript: не все Map'ы одинаково полезны
При разработке приложений регулярно возникает задача кэширования каких-то данных, которые из хранилища должны читаться много чаще, чем писаться. Давайте рассмотрим на примере простого теста, когда и на каком механизме эффективнее организовать его для JavaScript-приложения - на Map или на Object.
Как на Московской бирже работает система генерации отчетов для участников рынка
Наверное, многим знакомо ощущение, когда приходит время переделывать хорошо отлаженный продукт. Он работает, стабилен, предсказуем и знаком, но что-то изменилось в воздухе, выросла сложность решаемых задач, разрослась инфраструктура, появились новые вызовы, и вот приходится решительно садиться и все переделывать. В этой статье мы расскажем про эволюцию нашей системы генерации отчетов aka Отчетницы, которая прошла долгий путь за последние 15 лет. Хочется похвастаться тем, что, невзирая на соблазн взять и переделать все с нуля, вопреки эпиграфу и благодаря ряду удачных решений, развитие системы оставалось эволюционным. Участки системы, ответственные за бизнес-логику работы нашей промышленной системы, сохранялись, и это спасало человеко-месяцы и годы тестирования для другой полезной работы.
Разберемся с тем, что из себя представляют отчеты для участников рынка. Ежедневно на Московскую Биржу отправляются десятки миллионов торговых заявок, совершается несколько миллионов сделок. По результатам торговых и клиринговых сессий наши участники получают больше двух сотен отчетов об итогах торгов, оценке обеспечения, выполнении обязательств маркет-мейкеров и др. Отчеты бывают в основном торговые и клиринговые, и, соответственно, несут информацию о торгах или клиринге. На каждом из наших рынков они отличаются, хотя структурно могут хранить информацию одного типа. Отчеты рассылаются отдельно каждому участнику торгов\клиринга (включая самого главного из них – Банк России). На заре времен отчеты представляли из себя текстовые файлы с таблицами, нарисованными в псевдографике. Сейчас это XML файлы со схемами и стилями на нескольких языках. Кстати, забавный факт – по историческим причинам один из наших отчетов до сих пор отправляется в псевдографике. Ради привычки наших клиентов, которым данный формат наиболее удобен – функционал отрисовки таблиц пришлось заботливо пронести сквозь все метаморфозы системы подготовки отчетов. Впрочем, не будем забегать вперед.
От бумажной волокиты до комплексной автоматизации. Как кратно увеличить прибыль от аренды склада
У нас в стране сейчас автоматизируется всё и везде. Ничего не поделаешь веяние времени, стремительный бег технологий, цифровизация. Сегодня главными хозяевами жизни стали компьютер, смартфон и интернет. Если компьютер – это всё-таки вещь специфическая и есть не у всех, то смартфона нет только у закостенелого сторонника кнопочных телефонов.
Это всё к чему
Отдых, развлечения, работа, бизнес связаны с этим устройством. Про первые три пункта говорить не будем, а вот про бизнес и его автоматизацию поговорим. Причем, разговор пойдёт в ключе автоматизации складов. Ведь как ни крути, а производство, торговля, логистика без них никак не могут обойтись. Да, что там, в любой сфере жизни нужен склад, хоть маленький, похожий на кладовочку в квартире, но склад.
Бардак в кладовке члены семьи как-то переживут, не найдя среди груды вещей коньков зимой или надувного круга летом. Подумаешь беда найдут весной или осенью. Бардак же на складе торговой или логистической компании – это скорый конец бизнеса. Не нашли нужный товар покупателю, не доставили вовремя посылку получателю и всё – потеря репутации и доверия клиента.
Поэтому слад – это святое место любой связанной с физическими товарами компании. И относиться к нему нужно соответственно. А складской учет для склада – это инструмент, который всегда должен находиться в полном порядке. Трудно представить себе, например, хорошего плотника без хорошего заточенного инструмента. А тут, без учета склада никак не обойтись.
Серверные ARM-чипы начинают и выигрывают. Возможности 192-ядерного процессора AmpereOne от Ampere Computing
Компания Ampere Computing — далеко не новичок в индустрии разработки многоядерных ARM-процессоров. Появившись на горизонте несколько лет назад, в 2017 году, она быстро стала известной. Во многом — благодаря своей первой успешной разработке, 128-ядерному ARM-процессору Altra Max. Он предназначался для установки в специализированное оборудование для дата-центров и индустрии сетевых технологий в целом. С тех пор компания регулярно продолжает выпускать новые чипы. Сейчас представлен чип AmpereOne, у которого уже 192 ядра и новая микроархитектура. Что это за процессор?
Книга «Производительность систем»
Книга посвящена концепциям, стратегиям, инструментам и настройке операционных систем и приложений на примере систем на базе Linux. Понимание этих инструментов и методов критически важно при разработке современного ПО. Применение стратегий, изложенных в обновленном и переработанном издании, позволит перформанс-инженерам улучшить взаимодействие с конечными пользователями и снизить затраты, особенно для облачных сред.
Брендан Грегг – эксперт в области производительности систем и автор нескольких бестселлеров — лаконично, но емко излагает наиболее важные сведения о работе операционных систем, оборудования и приложений, которые позволят специалистам быстро добиться результатов, даже если раньше они никогда не занимались анализом производительности. Далее автор дает детальные объяснения по применению современных инструментов и методов, включая расширенный BPF, и показывает, как добиться максимальной эффективности ваших систем в облачных, веб- и крупных корпоративных средах.
5-нм серверный ARM-процессор прямиком из Индии. Что это за чип и что он может?
Индия умеет удивлять. Несколько лет назад она с нуля разработала и успешно запустила спутник к Марсу. Причем весь проект, который получил название Mangalyaan, обошелся всего в $70 млн, в отличие от сотен миллионов долларов США, которые выделяются на аналогичные программы в других странах.
Теперь новый сюрприз — представлен первый индийский процессор AUM с 96 ядрами, созданный по 5-нм технологии с архитектурой ARM. Это не пользовательский чип, его предназначение — работа в высокопроизводительных системах. Разработчики уже заявили о том, что процессор поступит в продажу в конце 2023 или начале 2024 года. Подробности о процессоре — под катом.
Приглашаем на Ozon Tech Community Backend Meetup
Всем привет!
Меня зовут Михаил Кабищев, я руководитель направления «Базовые сервисы» (Платформа).
На наших митапах мы постоянно уходим вглубь, рассказываем о технологиях и тонкостях работы с ними в наших продуктах. В этот раз всё будет немного иначе. Поднимемся на пару уровней выше и покажем, как в целом устроен backend в наших ключевых направлениях.
Go, C#, Java, Python – мы поговорим о каждом языке и расскажем, почему выбрали именно их.
ThreadPool. async/await
А вы никогда не задумывались, что async
и await
выглядят как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и таких модификаторов, кроме как в методах, работающих с Task
и Task<T>
.
А ещё интересно, сколько вообще стоит пользоваться async
/await
? И когда можно (нужно?) обходиться без них?
Как я делал лучшие арифметические ядра и сделал лучший селектор (демультиплексор)
Небольшой рассказ о том, как я делал арифметические ядра и сделал лучший селектор (декодер адресов).
Масштабирование сервиса мониторинга аудио/видео-потоков в Prime Video со снижением расходов на 90%
В Prime Video мы предлагаем нашим клиентам тысячи прямых трансляций. Чтобы гарантировать, что клиенты беспрепятственно получают контент, Prime Video создала инструмент для мониторинга каждого потока, просматриваемого клиентами. Этот инструмент позволяет нам автоматически выявлять проблемы с качеством воспринимаемого контента (например, повреждение блока или проблемы с синхронизацией аудио / видео) и запускать процесс их устранения.
У нашей команды анализа качества видео (VQA) в Prime Video уже был инструмент для проверки качества аудио / видео, но мы никогда не планировали и не проектировали его для масштабной работы (нашей целью было отслеживать тысячи одновременных потоков и увеличивать это число со временем). Подключая к сервису больше потоков, мы заметили, что масштабная эксплуатация инфраструктуры обходится очень дорого. Мы также заметили узкие места в масштабировании, которые мешали нам отслеживать тысячи потоков. Итак, мы сделали шаг назад и пересмотрели архитектуру существующего сервиса, сосредоточив внимание на стоимости и узких местах масштабирования...
yield return
А вы никогда не задумывались, что yield return
выглядит как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и такой инструкции, кроме как внутри методов, возвращающих перечисление.
А ещё интересно, сколько же на самом деле стоит перечислять элементы с помощью yield return
? И можно ли лучше?
Ускоряем приложение: никаких фреймворков — только математика
Представьте, что вам нужно ускорить работу огромной легаси-системы с 50 микросервисами, нагрузка на которую выросла в 2000 раз. При этом она обрабатывает затратные по времени операции, которые зависят друг от друга в плане данных.
Первыми на ум приходят стандартные подходы к оптимизации, например внедрить кэширование или улучшить работу с базой. Но я расскажу вам про более необычный, математический способ — алгоритм сетевого планирования. Он помогает составлять технологические карты и находить узкие места в процессах с высокой степенью параллелизма.
Можно ли экспортировать макеты из Figma в готовое React приложение?
Последнее время из каждого утюга кричат по технологии будущего - что Chat GPT может писать код вместо программистов, а MidJourney создавать интерфейсы вместо дизайнеров. Мы полезли в Community фигмы, а там по запросу Figma to Code больше сотни плагинов, которые обещают сгенерировать чистый работающий код на основе ваших макетов и за пару кликов создать готовое web-приложение вместо ваших frontend-разработчиков. Все это звучит вдохновляюще, но так ли это на самом деле?
Аналитических материалов, сравнивающих наиболее удачные плагины или библиотеки, нам найти не удалось. Поэтому мы решили разобраться в этом вопросе самостоятельно и хотим поделиться результатами.
Оптимизируем использование памяти в приложениях Python
В этой статье будет исследовано, как находить в ваших приложениях на Python такие участки, где возникает перерасход памяти, проанализировано, по каким причинам это происходит. Наконец, мы научимся снижать использование памяти и сокращать отпечаток программы в памяти, пользуясь простыми приёмами и эффективными структурами данных.
Как мы посредством динамического троттлинга защищаем миллионы клиентов от перегрузок
Давайте поговорим о способе защиты сервисов от перегрузки с помощью троттлинга входящего потока запросов. Он может пригодиться в ситуациях снижения производительности конечного сервиса, когда на какой-то период его нужно разгрузить, дав возможность прийти в себя.
Статья будет полезна инженерам по развитию и эксплуатации высоконагруженных систем, а также руководителям технических групп, сталкивающихся с проблемами перегрузок.
Нахождение минимальных путей в разреженных графах, используя матрицу 5xN
Введение
Здравствуйте, дорогие читатели! Я рад представить вам алгоритм, который разработал для решения задачи нахождения кратчайших путей в графе, когда использование алгоритма Дейкстры было неэффективно из-за ограничений по памяти. Этот алгоритм имеет ряд преимуществ перед традиционным алгоритмом Дейкстры. В данной статье мы рассмотрим ключевые особенности этого алгоритма, его преимущества и недостатки, а так же примеры реализации.
Описание алгоритма
Алгоритм использует матрицу размером 5xN для хранения информации о графе и вычисления кратчайших путей. Каждая строка матрицы содержит следующую информацию:
Вклад авторов
-
olegbunin 4532.5 -
alizar 2443.3 -
marks 1526.9 -
olegchir 1183.4 -
Kilor 909.0 -
it_man 889.0 -
YuriPanchul 852.5 -
AloneCoder 810.8 -
alatobol 685.0 -
ARG89 635.6