Функциональная группа должна действовать ** ответственно **, чтобы определить варианты, которые влияют на нее исключительно, и варианты, влияющие на организацию.
** выбор **, который ** превышает объем ** функциональной группы (например, лицензия, нечастый язык программирования), должен быть ** подтвержден ** организацией или процессом конвергенции сверстников ,
** Правильный инструмент ** для ** хорошего использования ** является источником экономии.
** Плохой инструмент **, наложенный на каждого, является ** риском **. ** неправильное использование ** хорошего инструмента может иметь ** очень ** ущерб ** последствия **. Например, опасные методы Agile опасны.
** Инструменты ** должны быть поставлены под сомнение **.
** Excel ** часто является рациональным выбором **, но это не ** инструмент для выполнения всего ** (CRM, ERP, Datamart, …)
Привилегия ** Сборка ** для основного бизнеса.
Рассмотрим ** Купить ** для остальных, в каждом конкретном случае.
Чем больше инструмент использует ** функцию, отличающую ** функцию для организации, тем больше она должна быть построена **. Основной бизнес должен позволять ** специфика ** и ** быстро и часто адаптироваться **. Некоторые ** программные пакеты ** ** иногда адаптируются ** к этой потребности.
Для ** остальное **: SaaS, Open Source, Build или Owner должны быть изучены ** в каждом случае **.
** Максимально используйте Open Source **.
Альтернативные варианты должны поддерживаться.
** Запатентованные решения ** являются ** риском ** для организации, которая должна иметь возможность возобновить обслуживание, если это необходимо.
Существует несколько проприетарных инструментов, которые не имеют ** альтернатив с открытым исходным кодом **.
Организация ** извлекает выгоду ** из ** Сообщества с открытым исходным кодом ** и может ** выплатить свои взносы **.
Разработка ** автономных ** и ** слабо связанных ** услуг.
** слабая связь ** должна быть нормой.
Каждая микросервис имеет ** четко определенный интерфейс **.
Этот ** интерфейс ** определяет ** ссылку ** между ** микросервисами **.
** Domain Driven Design ** позволяет, особенно с ** Ограниченными контекстами **, предвидеть эту проблему.
У каждой службы есть своя система хранения данных **.
** ** Хранилище данных ** должно быть ** соединено ** только с ** одним микросервисом **.
** Доступ к данным ** с одного микросервиса на другой осуществляется ** исключительно через его интерфейс **.
Этот дизайн подразумевает ** согласованность во времени ** по всей платформе. Он должен быть воспринят на всех уровнях **, включая UX.
Каждое микросервис должно иметь разумный функциональный периметр, который ** «вписывается в голову» **.
Микросервис предлагает ** разумное количество функций **.
** Не стесняйтесь сокращать ** микросервис, когда он начинает расти.
Услуга разумного размера позволяет ** спокойно рассмотреть ** переписывание **, если возникнет такая необходимость.
** Reactive Manifesto ** открывает путь к дизайну реактивных архитектур.
** Отзывчивое ** программирование фокусируется на потоке данных и распространении изменений. Он основан на схеме «** Наблюдатель », противоречащей подходу « Итератор **», более традиционному.
Реактивный манифест устанавливает основные оси: ** доступность ** и скорость, ** устойчивость к ошибкам, ** гибкость **, ** эластичность ** и ** ориентация сообщения **.
** асинхронные ** процессы предпочитают ** развязку ** и ** масштабируемость ** в пользу ** производительности **.
Сначала обмен между приложениями должен быть ** асинхронным **.
Асинхронные обмены естественно ** позволяют ** слабую ** связь, ** изоляцию ** и ** управление потоком ** (** обратное давление **).
** синхронная связь ** следует рассматривать только **, когда действие требует этого **.
Информационная система должна быть ориентирована на ** события **.
Ориентация ** ** позволяет поддерживать реализацию таких подходов, как ** C ** ommand ** Q ** uery ** R ** Ответственность ** S ** egregation (** CQRS ** ) и ** Event Sourcing **.
Привилегия ** простого, надежного и мощного ** брокер-сообщения для «умной трубы».
** ESB ** показал ** пределы **: ** масштабируемое обслуживание ** является критическим **, как с ** технической **, так и с ** организационной ** точки зрения.
** ** Брокер ** сообщения, такие как ** Kafka ** предлагают простые **, ** прочные ** и ** упругие ** решения.
** Умные конечные точки ** и ** Простые трубы ** - это архитектура, которая работает в масштабе: это ** Интернет **.
** Полная синхронизация ** системы должна учитываться, как только она ** разработана **.
Если ** синхронизация ** между двумя системами обеспечивается ** потоком событий **, общая ** пересинхронизация ** этих систем должна быть запланирована ** во время разработки **.
Автоматический ** ** ** синхронный аудит ** (пример: с помощью выборок) позволяет ** измерять ** и ** обнаруживать ** любые возможные ** ошибки синхронизации **.
** Конфигурация ** услуг ** централизована **, их ** открытие ** обеспечивается ** справочником **.
** ** ** ** ** ** ** централизованная ** ** для всех ** окружения **.
Центральный справочник ** обеспечивает ** динамическое открытие ** ** микро-услуг **.
** ** глобальная ** масштабируемость ** зависит от этого ** каталога **.
Группы функций предоставляют ** изолированную среду **.
Группы функций поддерживают среду ** sandbox ** (текущая версия и предстоящий выпуск), чтобы другие ** команды расширялись **.
В ** некоторых не номинальных ** случаях ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** Ваша система сработает! **
Создайте его так, чтобы он был терпимым.
Ваша ** система не сработает , это неизбежно. Он должен быть разработан для этого ( Design For Failure **).
Предсказывать ** избыточность ** на всех уровнях: ** аппаратное обеспечение ** (сеть, диск и т. Д.), ** приложения ** (несколько экземпляров приложений), ** географические ** зоны, ** провайдеры ** (пример: AWS + OVH).
Предоставьте ** набор инструментов **, не налагайте строгие рамки.
** Внимание к техническим компонентам домов и поперечным **! Они являются ограничительными, дорогими и сложными в обслуживании.
** ускорители **, ** набор инструментов **, ** технические стеки ** могут быть объединены **, ** бесплатно ** Команды функций, избегая догматического подхода.
Общественный, частный или гибридный, ** облако ** (** IaaS ** или ** PaaS **) является стандартом для производства.
** Услуги PaaS ** ** предпочтительны **, ** простые ** и быстро масштабируются.
** Услуги IaaS ** позволяют решать случаи, требующие большей ** гибкости **, но требуют более оперативной работы.
Частное облако не является традиционной средой виртуализации, она полагается на ** товарное оборудование **.
Функциональные группы не управляют инфраструктурой, она ** предоставляется и поддерживается организацией **.
Проблемы с инфраструктурой не входят в ** Функциональные группы **. Инфраструктура должна быть ** предоставлена ** и ** поддерживается ** ** кросс-функциональной ** услугой.
** Контейнеры ** обеспечивают гибкость, необходимую для гетерогенной оснастки.
Контейнеры обеспечивают ** гибкость **, необходимую функциональным группам для включения ** гетерогенной оснастки ** в ** однородном контексте **.
Использование ** контейнеров ** позволяет преодолеть проблемы ** технических условий **.
Контейнеры (пример: ** Docker **) позволяют ** освобождаться ** от различий в окружающей среде.
Процесс ** развертывания ** должен быть ** агностиком ** для среды.
** Некоторые компоненты **, такие как базы данных, не должны развертываться в контейнерах. Их развертывание по-прежнему автоматизировано.
Меры должны быть ** централизованы ** и ** доступны ** всем.
** ** ** ** доступны ** для всех с разным уровнем детализации: подробное представление для соответствующей функции команды, скопления для других членов организации.
Доступ к ** метрикам не подразумевает доступ к данным о единице **, он должен контролироваться для обеспечения конфиденциальности.
** Все среды ** затронуты.
** качество программного обеспечения ** является ** ключевым фактором **.
** обзоры кода ** являются ** систематическими **. Они проводятся членами функциональной группы или другими членами организации в рамках ** Постоянного совершенствования **.
Это ** вы не проверяетесь, а ваш код **: «Вы не ваш код!».
** qualimetry ** может быть частично автоматизирован, но ничто не сравнится с ** «новым глазом» **.
** автоматическое тестирование ** является необратимым предварительным условием для непрерывного развертывания.
Автоматизированное ** тестирование ** гарантирует ** качество ** продукта ** со временем **.
Это ** предварительное условие ** для непрерывного развертывания, оно позволяет ** ** изменения ** и ** частое развертывание **.
** Производственный свиток ** становится ** анекдотическим ** событием!
** Тесты на всех уровнях **: единица, интеграция, функциональность, устойчивость, производительность.
** ** тесты ** подходят для ** разработки **.
** выступление ** тест измерение работоспособность ** со временем **.
** Устойчивость ** тесты помогают прогнозировать ** сбои **.
** Обложка ** является основным объективным показателем качества теста.
** Кодирование ** в тестах является ** хорошим ** метрикой качества кода.
Это ** необходимое условие **, но ** недостаточно **, охват ** плохой тест-теста может быть высоким, не гарантируя хорошего качества кода.
** security ** - это ** процесс **, он не должен рассматриваться в ответ на проблемы.
** эксперты по безопасности ** могут быть ** интегрированы ** непосредственно в группы функций ** при необходимости **.
** эксперты по безопасности ** доступны в организации для ** аудита **, ** осведомленности ** и ** вперед **.