Особенности телеком-рынка, MVP на старте и инженеры, которые умеют в Kubernetes. Руководитель отдела специальных проектов и клиентских решений Selectel Александр Худяков рассказал, как компания создавала новый регион облачной платформы в Ташкенте и почему сложностей с его железным «фундаментом» было больше, чем с виртуализацией.
Читать полностью »
Рубрика «масштабирование»
Облачный Узбекистан: как мы запускали новый удаленный регион облака
2022-03-25 в 10:10, admin, рубрики: selectel, Блог компании Selectel, масштабирование, облако, облачная инфраструктура, Облачные вычисления, облачные сервисы, УзбекистанКак работает крупнейший маркетплейс: что у него под капотом
2021-12-31 в 10:55, admin, рубрики: calico, devops, highload, k8s, kubernetes, Microservices, network, высокая производительность, масштабирование, микросервисы, распределенные системы, Сетевые технологии, СХДВсем привет, я — Сергей Бобрецов, CTO в Wildberries.
Сегодня Wildberries — самый большой маркетплейс в России и мы так часто заняты повседневным хайлоадом, что не всегда успеваем рассказать что за всем этим стоит: какие технологии и решения под капотом, как мы справляемся с адом черной пятницы и ужасами киберпонедельника.
Объяснение Kafka на примерах из Factorio
2021-11-26 в 9:34, admin, рубрики: factorio, HTTP-вызовы, miran, Блог компании Дата-центр «Миран», дата-центр Миран, закон убывающей отдачи, Игры и игровые консоли, конвейер, масштабирование, микросервисы, репликация, системное администрирование, хранилища данных
Если у вас мало свободного времени, не скачивайте Factorio
Для тех, кто в последние годы путешествовал за пределами цивилизации, на всякий случай поясню: Factorio — это стратегия реального времени с открытым миром, где вы строите и оптимизируете цепочки поставок, чтобы запустить спутник и восстановить связь с родной планетой, а Kafka — это распределённая платформа потоковой передачи событий, которая обрабатывает асинхронные коммуникации надёжным способом.
Если человек вообще никогда не работал с потоковой платформой, то ему станет всё понятно на примерах из игры. Что ж, давайте начнём с нуля, изучим основные концепции Kafka — и немного повеселимся.
Читать полностью »
Почему может понадобится полусинхронная репликация?
2020-03-06 в 12:37, admin, рубрики: db, highload, web-разработка, база данных, Блог компании OTUS. Онлайн-образование, высокая нагрузка, высокая производительность, высоконагруженные системы, кластер, масштабирование, Промышленное программирование, Разработка веб-сайтов, распределенные системы, репликация, репликация базы данныхВсем привет. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В преддверии старта нового потока курса «Архитектор высоких нагрузок» я решил написать небольшой авторский материал, которым хочу поделиться с вами.
Введение
Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду (что несравнимо с типичными rps'ами, приходящимися на высоконагруженную систему), классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.
На текущий момент имеются 2 паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.Читать полностью »
Как масштабироваться с 1 до 100 000 пользователей
2020-02-07 в 12:44, admin, рубрики: Amazon RDS, CDN, Digital Ocean Managed Database, Elasticache, google cloud, heroku, memcached, Memorystore, miran, Miran.ru, mysql, paas, postgresql, read replicas, redis, балансировщик нагрузки, Блог компании Дата-центр «Миран», вертикальное масштабирование, горизонтальное масштабирование, масштабирование, облачные сервисы, партиционирование, Разработка веб-сайтов, реплики чтения, Серверное администрирование, СУБД, хостинг, шардированиеЧерез такое прошли многие стартапы: каждый день регистрируются толпы новых пользователей, а команда разработчиков изо всех сил пытается поддержать работу сервиса.
Это приятная проблема, но в Сети мало чёткой информации, как аккуратно масштабировать веб-приложение с нуля до сотен тысяч пользователей. Обычно встречаются или пожарные решения, или устранение узких мест (а часто и то, и другое). Поэтому люди используют довольно шаблонные приёмы по масштабированию своего любительского проекта в нечто действительно серьёзное.
Попытаемся отфильтровать информацию и записать основную формулу. Мы собираемся пошагово масштабировать наш новый сайт для обмена фотографиями Graminsta с 1 до 100 000 пользователей.
Запишем, какие конкретные действия необходимо сделать при увеличении аудитории до 10, 100, 1000, 10 000 и 100 000 человек.
Читать полностью »
Cassandra. Как не умереть, если знаешь только Oracle
2020-02-04 в 9:07, admin, рубрики: cassandra, nosql, oracle, Администрирование баз данных, базы данных, Блог компании QIWI, денормализация, масштабирование, хранение данныхПривет.
Меня зовут Миша Бутримов, я хотел бы хотел немного рассказать про Cassandra. Мой рассказ будет полезен тем, кто никогда не сталкивался с NoSQL-базами, — у нее есть очень много особенностей реализации и подводных камней, про которые нужно знать. И если кроме Oracle или любой другой реляционной базы вы ничего не видели, эти вещи спасут вам жизнь.
Чем хороша Cassandra? Это NoSQL-база данных, cпроектированная без единой точки отказа, которая хорошо масштабируется. Если вам нужно добавить пару терабайт для какой-нибудь базы, вы просто добавляете ноды в кольцо. Расширить ее на еще один дата-центр? Добавляете ноды в кластер. Увеличить обрабатываемый RPS? Добавляете ноды в кластер. В обратную сторону тоже работает.
В чем еще она хороша? В том, чтобы обрабатывать много запросов. Но много — это сколько? 10, 20, 30, 40 тысяч запросов в секунду — это немного. 100 тысяч запросов в секунду на запись — тоже. Есть компании, которые говорили, что они держат 2 млн. запросов в секунду. Вот им, наверное, придется поверить.
И в принципе у Cassandra есть одно большое отличие от реляционных данных — она вообще на них не похожа. И об этом очень важно помнить.
Читать полностью »
Как AWS «варит» свои эластичные сервисы. Масштабирование серверов и базы данных
2019-10-22 в 7:50, admin, рубрики: amazon aurora, Amazon Web Services, AWS, Nitro, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, масштабирование, Разработка веб-сайтов, хранилища данныхОблака подобны магической шкатулке — задаешь, что тебе нужно, и ресурсы просто появляются из ниоткуда. Виртуальные машины, базы данных, сеть — все это принадлежит только тебе. Существуют и другие тенанты облака, но в своей Вселенной ты единоличный правитель. Ты уверен, что всегда получишь требуемые ресурсы, ни с кем не считаешься и самостоятельно определяешь, какой будет сеть. Как устроена эта магия, которая заставляет облако эластично выделять ресурсы и полностью изолировать тенанты друг от друга?
Облако AWS это мегасуперсложная система, которая эволюционно развивается с 2006 года. Часть этого развития застал Василий Пантюхин — архитектор Amazon Web Services. Как архитектор он видит изнутри не только конечный результат, но и сложности, которые преодолевает AWS. Чем больше понимания работы системы, тем больше доверия. Поэтому Василий поделится секретами облачных сервисов AWS. Под катом устройство физических серверов AWS, эластичная масштабируемость БД, кастомная база данных Amazon и методы повышения производительности виртуальных машин с одновременным уменьшением их цены. Знание архитектурных подходов Amazon поможет эффективнее использовать сервисы AWS и, возможно, даст новые идеи по построению собственных решений.
Читать полностью »
Топ ошибок со стороны разработки при работе с PostgreSQL
2019-06-10 в 7:35, admin, рубрики: postgresql, Администрирование баз данных, базы данных, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, масштабирование, Серверная оптимизацияHighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничего удивительного. В крупных компаниях тоже нужны БД, и даже при отлаженных процессах все равно случаются ошибки, и базы падают. Неважно, какого размера компания — ошибки все равно бывают, БД периодически обваливаются, рушатся.
С вами такого, конечно, никогда не случится, но проверить чек-лист не трудно, а сэкономить будущих нервов он может очень прилично. Под катом перечислим топ типичных ошибок, которые совершают разработчики при работе с PostgreSQL, разберемся, почему так делать не надо, и выясним, как надо.
О спикере: Алексей Лесовский (lesovsky) начинал системным администратором Linux. От задач виртуализации и систем мониторинга постепенно пришел к PostgreSQL. Сейчас PostgreSQL DBA в Data Egret — консалтинговой компании, которая работает с большим количеством разных проектов и видит много примеров повторяющихся проблем. Это ссылка на презентацию доклада на HighLoad++ 2018.
Читать полностью »
Вейвлет — анализ.Часть 1
2019-05-12 в 16:12, admin, рубрики: python, вейвлет анализ, задержка времени, масштабирование, математика, Научно-популярное, разработка под windows, ряд фурье, спектральный анализ, физикаВведение
Рассмотрим дискретное вейвлет – преобразования (DWT), реализованное в библиотеке PyWavelets PyWavelets 1.0.3. PyWavelets — это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT.
При обработке данных на компьютере может выполняться дискретизированная версия непрерывного вейвлет-преобразования, основы которого описаны в моей предыдущей статье. Однако, задание дискретных значений параметров (a,b) вейвлетов с произвольным шагом Δa и Δb требует большого числа вычислений.
Кроме того, в результате получается избыточное количество коэффициентов, намного превосходящее число отсчетов исходного сигнала, которое не требуется для его реконструкции.
Дискретное вейвлет – преобразование (DWT), реализованное в библиотеке PyWavelets, обеспечивает достаточно информации как для анализа сигнала, так и для его синтеза, являясь вместе с тем экономным по числу операций и по требуемой памяти.
Когда нужно использовать вейвлет-преобразование вместо преобразования Фурье
Преобразования Фурье будет работать очень хорошо, когда частотный спектр стационарный. При этом частоты, присутствующие в сигнале, не зависят от времени, и сигнал содержит частоты xHz, которые присутствует в любом месте сигнала. Чем нестационарнее сигнал, тем хуже будут результаты. Это проблема, так как большинство сигналов, которые мы видим в реальной жизни, нестационарны по своей природе.
Читать полностью »
Вейвлет – анализ. Основы
2019-04-26 в 15:02, admin, рубрики: python, вейвлет анализ, задержка времени, масштабирование, математика, Научно-популярное, разработка под windows, ряд фурье, спектральный анализ, физикаВведение
Английское слово wavelet (от французского «ondelette») дословно переводится как «короткая (маленькая) волна». В различных переводах зарубежных статей на русский язык встречаются еще термины: «всплеск», «всплесковая функция», «маловолновая функция», «волночка» и др.
Вейвлет-преобразование (ВП) широко используется для анализа сигналов. Помимо этого, оно находит большое применение в области сжатия данных. ВП одномерного сигнала – это его представление ввиде обобщенного ряда или интеграла Фурье по системе базисных функций.
, (1)
сконструированных из материнского (исходного) вейвлета , обладающего определенными свойствами за счет операций сдвига во времени ( b ) и изменения временного масштаба (a).
Множитель обеспечивает независимость нормы функций (1) от масштабирующего числа (a). Для заданных значений параметров a и b функция и есть вейвлет, порождаемый материнским вейвлетом .
В качестве примера приведём вейвлет «мексиканская шляпа» во временной и частотной областях:
from numpy import*
import matplotlib.pyplot as plt
x= arange(-4,30,0.01)
def w(a,b,t):
f =(1/a**0.5)*exp(-0.5*((t-b)/a)**2)* (((t-b)/a)**2-1)
return f
plt.title("Вейвлет «Мексиканская шляпа»:n$1/sqrt{a}*exp(-0,5*t^{2}/a^{2})*(t^{2}-1)$")
y=[w(1,0,t) for t in x]
plt.plot(x,y,label="$psi(t)$ a=1,b=12")
y=[w(2,12,t) for t in x]
plt.plot(x,y,label="$psi_{ab}(t)$ a=2 b=12")
y=[w(4,12,t) for t in x]
plt.plot(x,y,label="$psi_{ab}(t)$ a=4 b=12")
plt.legend(loc='best')
plt.grid(True)
plt.show()