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

Итак, представим. В комнате заперты 5 котов, и чтобы пойти разбудить хозяина им необходимо всем вместе договориться между собой об этом, ведь дверь они могут открыть только впятером навалившись на неё. Если один из котов – кот Шрёдингера, а остальные коты не знают о его решении, возникает вопрос: «Как они могут это сделать?»

В этой статье я простым языком расскажу вам о теоретической составляющей мира распределённых систем и принципах их работы. А также поверхностно рассмотрю главную идею, лежащую в основе Paxos'а.

Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах - 1
Читать полностью »

image

В середине 2000-х при выборе платформы ИС большинство производителей продуктов питания остановились на 1С УПП. И за последние 10-15 лет построили и, можно сказать, «вросли в нее корнями» (будь то чистое 1С УПП или отраслевое решение на его основе). Кто-то старался активно развивать все в одной информационной базе, кто-то разделять функционал подразделений в разные базы. Но, как ни крути, УПП была и остается центральным элементом выстроенной системы, т.к. консолидирует в себе все транзакции финансово-хозяйственной деятельности предприятия.
Читать полностью »

Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Combat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.

TCP против UDP или будущее сетевых протоколов - 1
Осторожно, под катом 99 иллюстраций и схем и все важные.
Читать полностью »

Система управления конфигурацией сети фильтрации Qrator - 1

TL;DR: Описание клиент-серверной архитектуры нашей внутренней системы управления конфигурацией сети, QControl. В основе лежит двухуровневый транспортный протокол, работающий с упакованными в gzip сообщениями без декомпрессии между эндпойнтами. Распределенные роутеры и эндпойнты получают конфигурационные апдейты, а сам протокол позволяет установку локализованных промежуточных релеев. Система построена по принципу дифференциального бэкапа (“recent-stable”, объясняется ниже) и задействует язык запросов JMESpath вместе с шаблонизатором Jinja для рендера конфигурационных файлов.

Qrator Labs управляет глобально распределенной сетью нейтрализации атак. Наша сеть работает по принципу anycast, а подсети анонсируются посредством BGP. Будучи BGP anycast-сетью, физически расположенной в нескольких регионах Земли мы можем обработать и отфильтровать нелегитимный трафик ближе к ядру интернета — Tier-1 операторам.

С другой стороны, быть географически распределенной сетью непросто. Коммуникация между сетевыми точками присутствия критически важна для провайдера услуг безопасности, для того чтобы иметь согласованную конфигурацию всех узлов сети, обновляя их своевременным образом. Поэтому с целью предоставить максимальный возможный уровень основной услуги для потребителя нам необходимо было найти способ надежно синхронизировать конфигурационные данные между континентами.

В начале было Слово. Оно быстро стало коммуникационным протоколом, нуждающимся в апдейте.

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

Qrator filtering network configuration delivery system - 1

TL;DR: Client-server architecture of our internal configuration management tool, QControl.
At its basement, there’s a two-layered transport protocol working with gzip-compressed messages without decompression between endpoints. Distributed routers and endpoints receive the configuration updates, and the protocol itself makes it possible to install intermediary localized relays. It is based on a differential backup (“recent-stable,” explained further) design and employs JMESpath query language and Jinja templating for configuration rendering.

Qrator Labs operates on and maintains a globally distributed mitigation network. Our network is anycast, based on announcing our subnets via BGP. Being a BGP anycast network physically located in several regions across the Earth makes it possible for us to process and filter illegitimate traffic closer to the Internet backbone — Tier-1 operators.

On the other hand, being a geographically distributed network bears its difficulties. Communication between the network points-of-presence (PoP) is essential for a security provider to have a coherent configuration for all network nodes and update it in a timely and cohesive manner. So to provide the best possible service for customers, we had to find a way to synchronize the configuration data between different continents reliably.

In the beginning, there was the Word… which quickly became communication protocol in need of an upgrade.

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

How to Catch a Cat with TLA+ - 1Many programmers struggle when using formal methods to solve problems within their programs, as those methods, while effective, can be unreasonably complex. To understand why this happens, let’s use the model checking method to solve a relatively easy puzzle:

Conditions

You’re in a hallway with seven doors on one side leading to seven rooms. A cat is hiding in one of these rooms. Your task is to catch the cat. Opening a door takes one step. If you guess the correct door, you catch the cat. If you do not guess the correct door, the cat runs to the next room.
Читать полностью »

Ловим кота с TLA+ - 1 Формальные методы считаются эффективным, но неоправданно сложным способом обеспечения надежности программного обеспечения. Используемые при этом инструменты существенно отличаются от привычных программисту. Эта статья написана с целью снизить порог вхождения в этот инструментарий. Я применю систему model checking не для решения сложно формулируемых задач спецификации ПО, а для решения понятной даже школьникам головоломки.

Вы находитесь в прямом коридоре с семью комнатами по одну сторону. В одной из них находится кот. За один шаг можно заглянуть в одну из комнат, если там есть кот, он пойман. Как только дверь закроется, кот перейдет в одну из соседних комнат к той, в которой находился. Задача — поймать кота.
Читать полностью »

7 недостающих факторов в подходе 12 factor app - 1

Прим. перев.: Тот восторг, что испытали наши тимлиды, увидев в блоге IBM Cloud этот материал — своеобразное «расширение» легендарного Twelve-Factor App, — говорит сам за себя. Поднятые автором вопросы не просто на слуху, а по-настоящему жизненны, т.е. актуальны в повседневной жизни. Их понимание полезно не только для DevOps-инженеров, но и разработчиков, создающих современные приложения.

Известная методология «12 factor application» представляет собой свод четко определенных правил для разработки микросервисов. Они широко используются для запуска, масштабирования и деплоя приложений. В облачной платформе IBM Cloud Private мы следуем тем же 12 принципам при разработке контейнеризированных приложений. В статье «Kubernetes & 12-factor apps» обсуждается специфика применения этих 12 заповедей (они поддерживаются моделью оркестровки контейнеров Kubernetes).

Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:Читать полностью »

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников - 1

Фото взято из публикации

Введение

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

Существует множество различных способов удаления высокочастотного шума из сигнала. Например, библиотека Scipy содержит фильтры, основанные на различных методах фильтрации: Калмана; сглаживание сигнала путём его усреднения по оси времени, и другие.

Однако, преимущество метода дискретного вейвлет преобразования (DWT) состоит в многообразии форм вейвлет. Можно выбрать вейвлет, который будет иметь форму, характерную для ожидаемых явлений. Например, можно выделить сигнал в заданном частотном диапазоне, форма которого отвечает за появление дефекта.

Целью настоящей публикации является анализ методов фильтрации сигналов вибродатчиков с применением DWT преобразования сигнала, фильтра Калмана и метода скользящего среднего.

Исходные данные для анализа

В публикации работу фильтров основанных на различных методах фильтрации будем анализировать используя набор данных НАСА. Данные получены на экспериментальной платформе PRONOSTIA:

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников - 2

Набор содержит данные о сигналах вибродатчиков по износу подшипников различных типов. Назначение папок с файлами сигналов приведено в таблице:

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников - 3

Мониторинг состояния подшипников обеспечивается сигналами датчиков вибрации (горизонтальным и вертикальным акселерометрами), силы и температуры.

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников - 4

Сигналы получены для трёх различных нагрузок:

  • Первые рабочие условия: 1800 об / мин и 4000 Н;
  • Вторые рабочие условия: 1650 об / мин и 4200 Н;
  • Третьи рабочие условия: 1500 об / мин и 5000 Н.

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

Всем привет!

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

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

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

Едим слона по частям. Стратегия мониторинга работоспособности приложений на примерах - 1
Читать полностью »


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