Содержание

Как защитить свои личные данные при регистрации домена? / Хабр

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

Я стараюсь не оставлять о себе информации в интернет.

При регистрации доменного имени в сервисе imena.ua я изначально не хотел указывать свои личные данные в Whois.

Я указал верные данные в профиле пользователя на imena.ua. Эти данные никому не доступны и нужны для того, что бы со мной могли связаться сотрудники сервиса imena.ua, а так же могли выслать по почте сертификат на доменное имя. Но при заполнении формы с информацией, которая идет в запись Whois я указал ложные данные в обязательных полях Фамилия, Почтовый адрес и т.п. К счастью, на сайте imena.ua отдельно указываются данные профиля и данные, которые идут в запись whois.

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

Однако! Проходит время, и я получаю письмо примерно следующего содержания:

«Это сообщение является напоминанием о необходимости поддерживать правильную контактную информацию для Вашего домена. У нас имеется следующая информация для домена %домен%, который у нас зарегистрирован:

%Инфа из Whois%

Если Вы найдете, что какая-либо информация неточна, пожалуйста исправьте её в Вашей контрольной панели.

Как только Вы сохраните Ваши изменения, они появятся в Whois моментально.

Пожалуйста помните, что в соответствии с Соглашением о Регистрации Доменов, неправильно указанная контактная информация в Whois может стать причиной отказа в регистрации домена.»

(пунктуацию я не стал исправлять – пусть сотрудникам регистратора imena.ua будет стыдно)

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

Поскольку история изменения Whois сохраняется, то, как я понимаю, рыпаться уже поздно. Но, все же, до сих пор обидно.

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

Может кто-то сказать мне, есть ли правда в этом мире?

Update:
Регистрируя домен, Вам необходимо указать корректные контактные данные. В противном случае домен может быть заблокирован регистратором по причине нарушения соглашения о регистрации. Эта информация должна быть доступна при проверке через базу WHOIS, как того требует ICANN, международная организация, контролирующая доменные имена.

Но часто эта информация может использоваться в недобросовестных целях, например, рассылка спама.

Многие регистраторы предоставляют услугу WhoIs Protect. Данная услуга представляет собой скрытие WhoIs информации в публичных источниках. Она в первую очередь предназначения для скрытия контактных данных владельца домена от спамеров. Эта услуга не предназначена для полного скрытия данных о владельце доменов, который ведет незаконную деятельность. В случае таковой все данные о владельце доменов будут выданы по соответствующему запросу компетентных органов.

Для реализации WhoIs Protect регистраторы используют сервисы на подобии http://privacyprotect.org/, http://contactprivacy.com/.

При использовании этой услуги, запись WhoIs будет выглядеть, как показано в примере:

Однако, тогда возникает вопрос: как подтвердить свое право на владение доменом? Какому из регистраторов можно доверять?

Связывание домена с децентрализованным идентификатором (DID) — проверенные учетные данные Microsoft Entra — Microsoft Entra

  • Статья
  • Чтение занимает 5 мин

Примечание

Проверяемые удостоверения Azure Active Directory теперь называются проверенными идентификаторами Microsoft Entra и входят в семейство продуктов Microsoft Entra. Узнайте больше о семействе решений для идентификации Microsoft Entra и начните работу в едином центре администрирования Microsoft Entra.

Предварительные требования

Чтобы связать DID с доменом, необходимо выполнить следующие действия.

  • Изучите раздел Начало работы и последующий набор учебников.

Зачем связывать DID с доменом?

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

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

Когда необходимо обновить домен в DID?

В случае изменения домена, связанного с вашей компанией, необходимо также изменить домен в документе DID. Домен в DID можно обновить непосредственно в колонке «Проверенные учетные данные Microsoft Entra» на портале Azure.

Как связать DID с доменами?

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

  1. Azure AD использует сведения о домене, которые вы указали во время настройки организации, для записи конечной точки службы в документе DID. Все стороны, которые взаимодействуют с DID, могут видеть домен, с которым связан DID.

    "service": [
      {
        "id": "#linkeddomains",
        "type": "LinkedDomains",
        "serviceEndpoint": {
          "origins": [
            "https://www.contoso.com/"
          ]
        }
      }
    ]
    
  2. Служба проверяемых удостоверений в Azure AD создает соответствующий ресурс известной конфигурации, который можно разместить в вашем домене. Файл конфигурации содержит собственное проверяемое удостоверение «DomainLinkageCredential» типа credentialType, подписанное с помощью вашего DID, который получен из вашего домена. Ниже приведен пример документа конфигурации, который хранится по URL-адресу корневого домена.

    {
      "@context": "https://identity.foundation/.well-known/contexts/did-configuration-v0.0.jsonld",
      "linked_dids": [
        "jwt..."
      ]
    }
    

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

  • Разместите файл известной конфигурации DID в корне домена.
  • Не используйте перенаправления.
  • Используйте протокол HTTPS для распространения файла конфигурации.

Важно!

Microsoft Authenticator не учитывает перенаправления; указанный URL-адрес должен быть окончательным URL-адресом назначения.

Взаимодействие с пользователем в кошельке

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

Проверенный домен.

Перед отображением Microsoft Authenticator значка Проверено, необходимо выполнить несколько следующих условий.

  • DID для подписания самостоятельного выданного открытого идентификатора (SIOP) требуется конечная точка службы для связанного домена.
  • В корневом домене не используется перенаправление и используется протокол HTTPS.
  • Домен, указанный в документе DID, имеет разрешаемый известный ресурс.
  • Для подписания проверяемого удостоверения известного ресурса используется то же DID, которое использовалось для подписывания SIOP, который Microsoft Authenticator использовал для запуска процесса.

Если все упомянутые выше условия соблюдены, Microsoft Authenticator отображает проверенную страницу и включает проверенный домен.

Непроверенный домен

Если какое-либо из приведенных выше условий не выполняется, Microsoft Authenticator отображает страницу с предупреждением о том, что домен не проверен.

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

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

Он очень важен при связывании DID с доменом, распознаваемым пользователем.

Как обновить связанный домен в DID?

  1. Перейдите к проверенным учетным данным на портале Azure.
  2. В левой части страницы выберите Регистрация.
  3. В поле «Домен» введите новое доменное имя.
  4. Нажмите кнопку Опубликовать.

Если выбрана система доверия ION, обновление сведений о домене в документе DID в сети ION может занять до двух часов. Никаких других изменений в домен до публикации изменений внести невозможно. Если выбрана система доверия Интернет, изменения становятся общедоступными сразу после замены файла did-configuration.json на веб-сервере.

Примечание

Если изменения выполнены успешно, потребуется проверить добавленный домен.

Нужно ли дожидаться обновления документа DID, чтобы проверить недавно добавленные домены?

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

Как узнать о том, что обновление связанного домена успешно завершено?

Если используется система доверия ION, после того как изменения домена будут опубликованы в ION, в разделе домена в службе «Проверенные учетные данные Microsoft Entra» будет отображаться состояние «Опубликовано», и вы сможете внести новые изменения в домен. Если выбрана система доверия Интернет, изменения становятся общедоступными сразу после замены файла did-configuration.json на веб-сервере.

Важно!

Во время публикации внести изменения в домен невозможно.

Распространение известной конфигурации

  1. На портале Azure откройте страницу проверенных учетных данных. Выберите Регистрация, а затем — Проверить для домена.

  2. Скачайте файл did-configuration.json, показанный на рисунке ниже.

  3. Скопируйте значение linked_did (JWT), откройте https://jwt.ms/, вставьте JWT и проверьте правильность домена.

  4. Скопируйте DID и откройте ION Network Explorer, чтобы убедиться, что тот же домен включен в документ DID.

  5. Разместите ресурс известной конфигурации в указанном расположении. Пример: https://www.example.com/.well-known/did-configuration.json

  6. Попробуйте выдать удостоверение или представить его Microsoft Authenticator для проверки. Убедитесь, что в Authenticator включен параметр «Предупреждать о небезопасных приложениях».

Примечание

По умолчанию параметр «Предупреждать о небезопасных приложениях» включен.

Поздравляем! теперь вы настроили доверие с помощью своего DID!

Как проверить, работает ли проверка?

При нажатии did-configuration.json кнопки Обновить состояние проверки портал проверяет, что объект доступен и правильно. Кроме того, рекомендуем убедиться, что этот URL-адрес можно запросить в браузере, чтобы избежать различных ошибок, таких как неиспользование протокола HTTPS, недопустимый SSL-сертификат или не являющийся общедоступным URL-адрес. did-configuration.json Если файл не может быть запрошен анонимно в браузере или с помощью таких средств, как curl, без предупреждений или ошибок, портал не сможет выполнить шаг проверки состояния обновления.

Примечание

Если у вас возникли проблемы с обновлением состояния проверки, вы можете устранить неполадки с помощью запуска curl -Iv https://yourdomain.com/.well-known/did-configuration.json на компьютере с ОС Ubuntu. подсистема Windows для Linux с Ubuntu также будет работать. Если curl завершается сбоем, обновление состояния проверки не будет работать.

Облегчение получения доменов для связанных доменов разработчиками

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

Чтобы быстро настроить домен для связанного домена, выполните следующие действия:

  1. Создайте учетную запись Службы хранилища Azure. Во время создания учетной записи хранения выберите StorageV2 (учетная запись общего назначения версии 2) и локально избыточное хранилище (LRS).
  2. Перейдите к этой учетной записи хранения и выберите Статический веб-сайт в меню слева, затем включите статический веб-сайт. Если вы не видите пункт меню Статический веб-сайт, это означает, что вы не создали учетную запись хранения версии 2.
  3. Скопируйте имя основной конечной точки, которое отображается после сохранения. Это значение и будет представлять собой ваше доменное имя. Оно будет выглядеть примерно так — https://<your-storageaccountname>.z6.web.core.windows.net/.

Когда вам будет необходимо отправить файл did-configuration.json, выполните следующие действия:

  1. Перейдите к этой учетной записи хранения и выберите Контейнеры в меню слева. Затем выберите контейнер с именем $web.
  2. Нажмите кнопку Отправить и щелкните значок папки, чтобы найти файл.
  3. Перед отправкой откройте раздел Дополнительно и укажите .well-known в текстовом поле Отправить в папку.
  4. Отправьте файл.

Теперь у вас есть файл, который доступен по URL-адресу, имеющему следующий вид: https://<your-storageaccountname>.z6.web.core.windows.net/.well-known/did-configuration. json.

Дальнейшие действия

  • Настройка проверенных учетных данных Microsoft Entra

доменов данных | Данные на WashU

Вашингтонский университет в Сент-Луисе

Управление по управлению данными (ODG) возглавляет программу управления данными WashU, развивая партнерские отношения с высшим руководством, распорядителями данных и координаторами данных, которые лучше всего знакомы с данными каждой области данных.

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

Что такое домен данных?

Домен данных — это логическая группа данных. Это относится к области взаимосвязанных данных, относящихся к общей цели, объекту или концепции. Поскольку домены связаны с данными, они могут быть организованы иначе, чем организационная структура нашего университета.

Некоторые домены очень большие. Эти домены были разделены на функциональных областей , чтобы лучше распределить обязанности и назначить соответствующих экспертов по данным. Например, домен HR делится на преимущества, компенсацию, рекрутинг, адаптацию и отслеживание времени, HR Core/Central и Payroll, который пересекается с финансами.

Что такое варианты использования в бизнесе?

Помимо повышения зрелости данных, эти базовые возможности управления данными будут способствовать достижению бизнес-результатов. Хотя управление данными само по себе не решит эти варианты использования полностью, оно является ключевым компонентом для продвижения следующих бизнес-результатов:

  • Финансы  – Каковы расходы по учебным заведениям или программам?
  • HCM  – Какие внутренние вакансии оставались незанятыми более 4 месяцев?
  • HCM  – Насколько разнообразны наши пулы кандидатов?
  • Повышение квалификации  – Где живут наши выпускники (по программе) через 10 лет после выпуска?
  • Студент  – Каковы демографические тенденции для специальностей с течением времени?
  • Research  – Сколько времени занимает создание и подача заявки на грант?
  • Исследование  – Какова стоимость подготовки предложения по отделам?
  • Медицинская школа  – Какова общая стоимость ухода за операцией в Медицинской школе?

Возможности для вариантов использования в бизнесе:

Основные функции, включенные в процессы управления данными, обеспечивают основу для реализации вариантов использования в бизнесе:

  • Деловой глоссарий : доступный и сводный список бизнес-терминологии, используемой в университете.
  • Каталогизация : Легкодоступный перечень данных, таких как отчеты с контекстными метаданными, оперативные данные и соглашения об обмене данными, помогающие понять и применить данные и управление ими.
  • Analytics Governance : Предоставление всем, кто производит аналитику, возможность видеть опубликованную аналитику и работать с экспертами по аналитике, чтобы правильно использовать аналитику.
  • Таксономии : определение управляемой категоризированной иерархической структуры объектов, особенно элементов данных и наборов данных, позволяющее понять, к какой системе подключены данные, как называется элемент данных, определение элемента данных и его нисходящие зависимости.
  • Домены данных — это высокоуровневые категории институциональных данных, которые были определены с целью установления ответственности и ответственности за данные.
  • Каждый связан с бизнес-функцией, такой как исследования, клинические исследования и т. д.
  • Не является системой или приложением (Workday, Epic, RMS)
  • В каждом домене будет один или несколько администраторов данных
  • Каждый домен будет определять кто имеет доступ к данным в этом домене
    • Распорядители данных будут принимать дополнительные решения о доступе к конфиденциальным данным в каждом домене

доменов данных — с чего начать?. Практическое руководство с мест | by Piethein Strengholt

Стратегический путь к проектированию сетки данных масштаба предприятия

Во всех обсуждениях сетки данных, которые я веду с предприятиями, предмет доменов данных привлекает наибольшее внимание. Клиенты считают владение данными, ориентированное на предметную область, самой сложной частью сетки данных. Зачастую существует фундаментальное непонимание концепции проектирования, управляемого предметной областью (DDD). Другие специалисты по работе с данными находят концептуальные понятия DDD слишком сложными для понимания или проецируют примеры из архитектуры программного обеспечения или объектно-ориентированного программирования на свой ландшафт данных. В этом посте я постараюсь убрать сложную лексику и дать вам практическое руководство.

Domain-Driven-Design

Начнем с теоретической части: Domain-Driven-Design (DDD) — это метод поддержки разработки программного обеспечения, который помогает описывать сложные системы для крупных организаций, первоначально описанный Эриком Эвансом. DDD популярен, потому что многие из его практик высокого уровня повлияли на современные подходы к разработке программного обеспечения и приложений, такие как микросервисы.

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

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

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

Сложность использования DDD для управления данными заключается в том, что первоначальным вариантом использования DDD было моделирование сложных систем в контексте разработки программного обеспечения. Первоначально он никогда не был придуман для моделирования корпоративных данных, что делает этот метод для специалистов по управлению данными очень абстрактным и техническим. Итак, позвольте мне привести метафору. Думайте о домене как о области общих интересов. Возьмем, к примеру, свой дом и улицу. Улица — это домен, а каждый дом — поддомен. Каждый дом стоит на своем участке и имеет забор, что также означает, что дом не занимает весь участок. Забор представляет собой ограниченный контекст (модель ответственности). Владельцы домов несут ответственность за содержание своих домов и могут делать все, что хотят, в пределах своих заборов. Однако при пересечении границ (заборов) необходимо придерживаться определенных правил. Например, всегда использовать общую подъездную дорожку при входе или выходе из дома.

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

Проведите функциональную бизнес-декомпозицию ваших проблемных областей

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

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

Карта бизнес-возможностей вымышленной авиакомпании (Автор: Piethein Strengholt)

Выше я создал декомпозицию вымышленной авиакомпании: Oceanic Airlines , которая должна освоить все функциональные области, перечисленные в карте бизнес-возможностей в чтобы добиться успеха. Например, Oceanic Airlines должна иметь возможность продавать билеты в рамках онлайн- или оффлайн-систем управления билетами или иметь пилотов для управления самолетами благодаря программе управления пилотами. Компания может отдать на аутсорсинг некоторые виды деятельности, оставив при этом другие в качестве основы своего бизнеса.

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

Сопоставление бизнес-возможностей с вашими приложениями и данными

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

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

Если мы проецируем сопоставление возможностей на Oceanic Airlines, ваши границы ограниченного контекста и реализации домена могут выглядеть так, как показано ниже.

Распределение данных между доменами (Автор: Piethein Strengholt)

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

Множественные возможности реализации приводят к дополнительным доменам

При работе с картой бизнес-возможностей Важно понимать, что некоторые бизнес-возможности могут реализовываться несколько раз. Например, Oceanic Airlines, пример, который мы использовали до сих пор, может иметь несколько локализованных реализаций или реализаций «обработки багажа и потерянных предметов». Например, одно направление бизнеса работает только в Азии. В этом контексте «обработка багажа и утерянные предметы» — это возможность, которая выполняется для самолетов, связанных с Азией. Другое направление бизнеса может быть ориентировано на европейский рынок, поэтому в этом контексте используется другая возможность «обработки багажа и потерянных вещей». Этот сценарий с несколькими экземплярами может привести к множеству локализованных реализаций с использованием разных технологических сервисов и разрозненных групп, управляющих этими сервисами. Извлеченные уроки заключаются в том, что отношение бизнес-возможностей и экземпляра возможности (реализации) является отношением «один ко многим», что также означает, что вы в конечном итоге получаете дополнительные (под)домены.

Общие возможности и общие данные

Более важным является то, как вы должны обращаться с общими бизнес-возможностями. Такая возможность обычно реализуется централизованно — как сервисная модель — и предоставляется различным направлениям бизнеса. Такой возможностью может быть, например, «управление клиентами». В контексте Oceanic Airlines азиатские и европейские направления бизнеса используют для своих клиентов одно и то же администрирование. Возникает вопрос: как спроецировать владение данными домена на общую возможность? Вполне вероятно, что несколько представителей бизнеса несут ответственность за клиентов, находящихся в одной и той же общей администрации. В заключение, есть домен приложения и домен данных! С точки зрения продукта данных ваш домен и ограниченный контекст не полностью совпадают. И наоборот, вы можете возразить, что с точки зрения бизнес-возможностей существует только одна проблема с данными.

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

Для ваших общих возможностей, таких как сложные пакеты поставщиков, решения SaaS и устаревшие системы, я рекомендую придерживаться последовательного подхода к владению данными вашего домена. Одним из способов может быть разделение прав собственности на данные с помощью информационных продуктов, что также может потребовать усовершенствования приложений. В примере «управления клиентами» разные пайплайны из домена приложения могут генерировать несколько продуктов данных: один продукт данных для всех клиентов, связанных с Азией, и один для всех клиентов, связанных с Европой. Это означает, что несколько доменов данных происходят из одного и того же домена приложения.

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

Пример того, как инкапсулированные метаданные могут облегчить совместное владение (Автор: Piethein Strengholt)

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

Остерегайтесь сложных приложений, обслуживающих несколько бизнес-возможностей

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

Шаблоны проектирования для доменов, ориентированных на источник, повторную доставку и ориентированных на потребителя

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

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

Совместное использование данных домена, ориентированного на источник (Автор: Piethein Strengholt)

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

Выровненный по потреблению домен с использованием данных (Автор: Piethein Strengholt)

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

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

Совместное использование агрегированных данных (Автор: Piethein Strengholt)

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

Совместное использование вновь созданных аналитических данных (Автор: Piethein Strengholt)

Стандартизированные шаблоны для решения сложных задач интеграции

При разбиении вашего корпоративного ландшафта на более детализированную доменную структуру вы столкнетесь со сложными проблемами интеграции. Если мы возьмем пример Oceanic Airways, данные из «управления клиентами» могут потребоваться в других областях. Или «управление планом полета и обзором
» должно знать, существует ли еще пилот в администрации «управления пилотом», прежде чем планировать полет. Как бы вы справились с этим?

Лучше всего стандартизировать общие шаблоны подъездных путей для интеграции междоменных границ. Например, при обработке больших данных можно применить CQRS для создания доменно-ориентированных хранилищ данных для чтения. Это позволяет доменам интенсивно считывать данные с других доменов без необходимости постоянного дублирования данных. Например, для строго согласованных операций чтения (и команд) рекомендуются шаблоны API. Следующий обзор шаблонов проектирования может помочь вам в переходе:

Общие шаблоны проезда для комплексной интеграции между доменами (Автор: Питейн Стренгхольт)

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

Уровень детализации для разделения

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

Во-первых, существует детализация для функциональных доменов и настройка ограниченных контекстов: соответствие способу работы, обеспечение доступности данных для всех доменов и использование общих служб, соблюдение стандартов метаданных и т. д. Моя рекомендация для распространения данных состоит в том, чтобы установить границы, где это возможно, на мелкозернистой основе, потому что управление данными сводится к тому, чтобы сделать данные доступными для интенсивного (повторного) использования данных. Если вы слишком грубо определите границы своего домена, вы вызовете нежелательные связи между многими приложениями, и повторное использование данных будет потеряно. Таким образом, каждый раз, когда данные выходят за пределы бизнес-возможностей, стремитесь к развязке. Это означает, что внутри домена разрешена тесная связь. Однако при пересечении границ домены должны оставаться несвязанными и распространять продукты данных, оптимизированные для чтения, для обмена данными с другими доменами. Поэтому, если, например, подразделениям «бронирования и комиссионные» и «управление клиентами» Oceanic Airlines необходимо обмениваться данными, они должны использовать общие схемы проезда.

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

  • Слаженность и эффективность в работе и обмене данными. Это тесно связано с гравитацией данных: тенденцией постоянного обмена большими наборами данных между доменами.
  • Региональные границы могут привести к реализации одних и тех же бизнес-возможностей и чертежей.
  • Право собственности, безопасность или юридические границы могут привести к разделению доменов. Например, некоторые данные не могут быть разрешены для просмотра другими доменами.
  • Гибкость и скорость изменений являются важными факторами. В нескольких областях может быть скорость инноваций, в то время как другие области сильно ценят стабильность.
  • Функциональные границы могут разделить команды, например, в зависимости от источника/потребителя. Возможно, половина ваших доменных команд отдает предпочтение определенным услугам, а не другим наборам услуг.
  • Причина может заключаться в том, что вы хотите потенциально продать или отделить свои возможности, поэтому тесная интеграция с общими службами из других доменов не будет разумной.
  • Размер команды, навыки и зрелость могут иметь значение. Высококвалифицированные и зрелые команды хотят использовать свои собственные службы и инфраструктуру.
  • К сожалению, политические границы также могут быть движущей силой. Особенно я вижу это, когда бизнес-возможности неправильно соотносятся с организационной структурой.

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

При объединении всех ваших доменов и зон инфраструктуры ваша архитектура сетки данных концептуально должна выглядеть следующим образом:

Пример архитектуры организации доменов, использования инфраструктуры и взаимодействия в архитектуре сетки данных (Автор: Piethein Strengholt)

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

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

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