Подходы к разработке современных информационных систем

Doc

Doc

АйТишник со стажем... Профиль автора.

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

Так зачем же валить их все в одну кучу под таким собирательным термином, как информационные системы?

В последние годы появилось множество новых инструментов для хранения и об­работки данных. Они оптимизированы для множества различных сценариев использования и более не укладываются в обычные категории. Например, суще­ствуют хранилища данных, применяемые как очереди сообщений (Redis) и очереди сообщений с соответствующим базам данных уровнем надежности (Apache Kafka). Границы между категориями постепенно размываются.

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

Например, при наличии управляемого приложением слоя кэширования (путем использования Memcached или аналогичного инструмента) либо сервера полнотекстового поиска (такого как Elasticsearch или Solr), отдельно от БД, синхрони­зация этих кэшей и индексов с основной базой данных становится обязанностью кода приложения. На рис. 1 в общих чертах показано, как все указанное могло бы выглядеть.

Если для предоставления сервиса объединяется несколько инструментов, то ин­терфейс сервиса или программный интерфейс приложения (API) обычно скрывает подробности реализации от клиентских приложений. По существу, мы создали новую специализированную информационную систему из более мелких, универ­сальных компонентов. Получившаяся объединенная информационная система может гарантировать определенные вещи: например, что кэш будет корректно сделан недействительным или обновлен при записи, вследствие чего внешние клиенты увидят непротиворечивые результаты. Вы теперь не только разработчик приложения, но и архитектор информационной системы.

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

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

 архитектура информационной системы, состоящей из нескольких компонентов

 Рис. 1. Одна из возможных архитектур информационной системы, состоящей из нескольких компонентов

В моем блоге мы сосредоточимся на трех вопросах, имеющих наибольшее зна­чение в большинстве программных систем.

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

Вас заинтересует / Intresting for you:

Разработка информационных сист...
Разработка информационных сист... 2681 просмотров Александров Попков Sun, 20 Jan 2019, 10:58:09
Разработка и исследование инфо...
Разработка и исследование инфо... 1375 просмотров Денис Wed, 27 Mar 2019, 03:15:40
Разработка информационных сист...
Разработка информационных сист... 3368 просмотров Александров Попков Mon, 21 Jan 2019, 10:19:21
Средства моделирования в компь...
Средства моделирования в компь... 1187 просмотров Александров Попков Sun, 17 Mar 2019, 15:50:15
Печать
Войдите чтобы комментировать