Рубрика «Анализ и проектирование систем» - 80

Не криптовалютами едиными: наша блокчейн-платформа для факторинга - 1

С чем у вас в первую очередь ассоциируется слово «блокчейн»? Правильно, с криптовалютами и Германом Оскаровичем. И хотя для специалистов мы не откроем Америку, но для большинства людей, не столь искушённых в блокчейнах, может быть откровением, что эта технология применима в самых разных сферах, а вовсе не только для учёта транзакций биткоинов, эфириумов и прочих виртуальных монет. Например, блокчейн прекрасно подошёл для использования в сфере факторинга. В начале года мы завершили разработку совместного со Сбербанком проекта по созданию факторинговой платформы на основе блокчейна, открытой для всех желающих. Что это за платформа, зачем нужна и как устроена — наш рассказ под катом.
Читать полностью »

image

Однажды днем у нас обрушился сайт. Сразу после ребута он падал снова. Мы знали, что это не DDOS, а органический трафик: к нам поступали типичные запросы, но сервера не справлялись. Увеличение мощности железа не помогало. Стало ясно, что пора оптимизировать нашу систему.

Молодым стартапам может быть интересно, как справляться с возросшими нагрузками на еще неокрепшее серверное ПО.

Читать полностью »

Эта статья является адаптированным вариантом текста одноименного доклада с конференции C++ CoreHard Autumn 2017. Статья рассматривается как завершение темы, поднятой ранее в публикациях "Модель Акторов и C++: что, зачем и как?" и «Шишки, набитые за 15 лет использования акторов в C++» часть I и часть II. Сегодня речь пойдет о том, как понять, что Модель Акторов может быть успешно использована в вашем проекте.

В принципе, статья является «капитанской», т.к. описываемые в ней вещи вполне очевидны и диктуются обычным здравым смыслом. Но, к сожалению, не часто внимание акцентируется именно на них.

Лирическое отступление на тему «Модель Акторов и C++: миф или реальность?»

В статье обсуждаются вещи, которые присущи самой Модели Акторов, безотносительно конкретных языков программирования. Но, т.к. автор тесно связан с разработкой ПО на C++, то есть некоторый акцент на применимость акторов именно в C++.

Читать полностью »

Как построить систему аналитики для проектов с миллионами пользователей?

29 ноября, Харьков: доклад «Analytics in a Gaming Company: Big Data Architecture and Tools» - 1
Читать полностью »

Пусть есть пользователи информационной системы. Авторизованным пользователям позволено строить свои модели в этой ИС. Неавторизованные могут только смотреть, как другие строят эти модели, но сами не могут этого делать.
Вопрос: сколько ролей в ИС?

Пусть есть две кучи песка, сваленные рядом.
Вопрос: Это одна куча, или по-прежнему две кучи, но теперь сваленные рядом?

Пусть есть должность директора школы №123. Сидоров занимает эту должность после Иванова.
Вопрос: это два разных директора, или один директор?

Сегодня Иванов играет роль княжны Мэри.
Вопрос: завтра, когда он будет играть роль с тем же названием, это будет та же роль, или другая?
Вопрос: Сидоров, который сегодня играет роль с тем же названием, играет ту же роль, или другую?

Есть часовой механизм, исполняющий роль часового привода в часах на городской башне. Пусть он сломался и его заменили на другой часовой механизм.
Вопрос: часовой привод теперь другой, или это тот же часовой привод, но с другим часовым механизмом?
Читать полностью »

В предыдущей статье речь шла о психологических аспектах описания динамических процессов при помощи диаграммы состояний и переходов (то есть в автоматном стиле) и о том, что диаграмма состояний и переходов даёт лучшее понимание динамического процесса. Сегодня я продолжу рассмотрение диаграммы состояний, олицетворяющей автоматный подход, и способы её воплощения в код. Тема предыдущей статьи органично перетекает в сегодняшний материал, поэтому я рекомендую ознакомится с ней.
Читать полностью »

Пример когортного отчёта со значениями LTV

Когортный анализ возвратности пользователей является мощным способом для понимания разных групп клиентов — их поведения и значимости для бизнеса. Однако итоговые таблицы бывает трудно понять с первого раза, а с ходу придумать, как их построить, ещё сложнее.

В статье будет описан относительно простой, но полезный алгоритм построения когортой таблицы, а также приведены наброски кода с Python/Pandas и SQL. Если Вам необходимо программно реализовать построение когортного отчёта или просто интересно узнать этот алгоритм — прошу под кат.

Читать полностью »

Перевод статьи Designing a Microservices Architecture for Failure.

Микросервисная архитектура благодаря точно определённым границам сервисов позволяет изолировать сбои. Однако, как и в любой распределённой системе, здесь выше вероятность проблем на уровне сети, оборудования или приложений. Как следствие зависимости сервисов, любой компонент может оказаться временно недоступен для пользователей. Чтобы минимизировать влияние частичных сбоев, нам нужно построить устойчивые к ним сервисы, которые могут корректно реагировать на определённые типы проблем.

В этой статье представлены самые распространённые методики и архитектурные шаблоны для построения и оперирования высокодоступной микросервисной системой.
Читать полностью »

Во всём виноват PHP OPCache? - 1

Когда я начинал карьеру разработчика, то очень удивился, прочитав фразу, которую приписывают Филу Карлтону (Phil Karlton): «В информатике есть лишь две сложности: инвалидация кеша и присвоение имён». Я отнёсся к этому недоверчиво, поскольку не понял сути фразы. Но немного позже я начал понимать.

Я хочу рассказать о проблеме, с которой мы столкнулись не так давно в нашей production-инфраструктуре. Сразу после успешного развёртывания при обновлении страниц, изменённых новым релизом, какое-то время не отображался новый код. Вообще-то такое далеко не редкость для веб-приложений, написанных на PHP. Мы сталкивались с подобным и раньше, а после перехода на новую production-среду проблема стала заметнее. Поэтому мы решили заняться расследованием.

Читать полностью »

Инфраструктура с Kubernetes как доступная услуга - 1

Kubernetes стал для нас той технологией, которая в полной мере позволяет соответствовать строгим требованиям к отказоустойчивости, масштабируемости и качественному обслуживанию проекта. Несмотря на то, что сегодня K8s больше распространен в крупных организациях и проектах, мы научились применять его и в небольших приложениях. Снижение себестоимости обслуживания стало возможным для нас благодаря унификации и обобщению всех компонентов, которые встречаются практически у каждого клиента. Эта статья — взгляд на полученный опыт со стороны бизнес-потребностей и их технической реализации, которая позволяет нам предлагать клиентам качественное решение за разумные деньги.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js