diff --git a/app/views/ru/glossary.scala.html b/app/views/ru/glossary.scala.html index 65f24d3..c025118 100644 --- a/app/views/ru/glossary.scala.html +++ b/app/views/ru/glossary.scala.html @@ -30,7 +30,7 @@

@image("link-ico

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

@image("link-icon.png")Обратное давление

-

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

+

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

@image("link-icon.png")Пакетирование

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

diff --git a/app/views/ru/manifesto.scala.html b/app/views/ru/manifesto.scala.html index 8ebf91d..44c789e 100644 --- a/app/views/ru/manifesto.scala.html +++ b/app/views/ru/manifesto.scala.html @@ -6,21 +6,20 @@

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

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

-

Мы считаем, что для проектирования приложений необходим четкий и понятный подход, и что все его отдельные аспекты уже сформулированы: мы хотим, чтобы система была доступной, устойчивой, гибкой и основанной на обмене сообщениями. Мы называем такие системы Реактивными.

-

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

+

Мы считаем, что для проектирования приложений необходим четкий и понятный подход, и что все его отдельные аспекты уже сформулированы: мы хотим, чтобы система была отзывчивой, устойчивой, гибкой и основанной на обмене сообщениями. Мы называем такие системы Реактивными.

+

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

Реактивные Системы:

-
-

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

+

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

-

Устойчивые: Система остается доступной даже в случае отказов. Это относится не только к высокодоступным, критически важным приложениям — без устойчивости любая система при сбое теряет доступность. Устойчивость достигается за счет репликации, сдерживания, изоляции и делегирования. Эффект от отказов удерживаeтся внутри компонентов, изолируя их друг от друга, что позволяет им выходить из строя и восстанавливаться, не нарушая работу системы в целом. Восстановление каждого компонента делегируется другому (внешнему) модулю, а высокая доступность обеспечивается за счет репликации там, где это необходимо. Клиент компонента не отвечает за обработку его сбоев.

+

Устойчивые: Система остается доступной даже в случае отказов. Это относится не только к высокодоступным, критически важным приложениям — без устойчивости любая система при сбое теряет отзывчивость. Устойчивость достигается за счет репликации, сдерживания, изоляции и делегирования. Эффект от отказов удерживаeтся внутри компонентов, изолируя их друг от друга, что позволяет им выходить из строя и восстанавливаться, не нарушая работу системы в целом. Восстановление каждого компонента делегируется другому (внешнему) модулю, а высокая доступность обеспечивается за счет репликации там, где это необходимо. Клиент компонента не отвечает за обработку его сбоев.

-

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

+

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