Чтобы стимулировать внедрение API, было очень важно создать удобный портал для разработчиков с хорошей документацией и достаточными функциями поиска. Мы изучили лучшие мировые практики. Кроме того, мы вложили средства в обучение наших разработчиков, чтобы с самого начала ознакомить их с порталом для разработчиков, а также с руководящими принципами и стандартами API. Мы хотели заложить правильный фундамент, чтобы в нужный момент можно было легко масштабировать компанию.
После первых небольших успехов в решении внутренних и внешних задач потребность бизнеса значительно возросла. Им нужны были дополнительные API, причем быстро, поэтому мы разработали гибкий процесс бюджетирования и определения приоритетов, чтобы удовлетворить возросший спрос.
Одной из наших главных задач было найти подходящих специалистов для работы с API. Полностью переработать архитектуру интеграции, создать платформу управления API и портал для разработчиков, а также постоянно расставлять приоритеты в первоначальном бэклоге API - это очень сложные задачи. С одной стороны, нам нужны были опытные инженеры, разбирающиеся в технологических деталях, а с другой - опытные владельцы продуктов, чтобы обеспечить лазерную фокусировку на правильных приоритетах.
Вначале было много опасений по поводу того, что в Дубае удастся сформировать необходимый кадровый резерв, поскольку технологические кадры не так легко найти. Однако нам удалось добиться этого благодаря сбалансированному сочетанию найма и развития имеющихся талантов. Одним из ключевых элементов нашего успеха стало создание специализированных учебных программ для различных необходимых нам ролей с сочетанием внутренних и внешних курсов, а также программ сертификации.
Позже мы столкнулись с проблемой повышения производительности наших agile API-отрядов. Когда мы начинали, для наших команд было приемлемо создавать один API за два-три недельных спринта. Однако, чтобы следовать нашей дорожной карте, нам нужно было значительно повысить производительность. Мы использовали инструменты автоматизации DevOps для оптимизации интеграции и обеспечения непрерывного развертывания и доставки и удвоили объем выпускаемых API".
-Сауд Аль Дхавиани, директор по технологиям, Emirates NDB
Использование облачной платформы данных. Платформа данных "буферизирует" транзакции вне основных систем. Она объединяет данные для аналитически интенсивных приложений и обеспечивает асинхронное использование данных. Такие буферы могут быть созданы с помощью озера данных или распределенной сетки данных, которая представляет собой экосистему, состоящую из оптимально подходящих платформ, созданных с учетом предполагаемого использования данных и рабочих нагрузок в каждой бизнес-области (см. главу 26 об архитектуре данных).
В более продвинутой архитектуре данных существует дополнительная буферизация с созданием продуктов данных, которые обеспечивают высокое качество данных и упрощенное потребление (см. главу 25 о продуктах данных).
На рисунке 17.2 представлен обзор современной архитектуры приложения, реализованной производителем медицинского оборудования для своего потребительского приложения. Шлюз на входе контролирует входящий трафик и обеспечивает безопасность. Уровень API определяет, какие сервисы приложения запрашиваются. Облачная платформа данных организована как хранилище больших объемов данных в озере данных и более специализированных продуктов данных, готовых к потреблению пользователем или приложением (например, данные о клиенте, медицинском изделии и местоположении для обеспечения соответствия местным нормам).
На рисунке 17.3 показана подробная схема, иллюстрирующая, как была собрана архитектура. Обычно на таком уровне детализации работают архитекторы решений и инженеры полного стека. Эта архитектура была построена в Azure с добавлением лучших в своем классе и/или открытых инструментов. Сопоставление один к одному между примерами 17.2 и 17.3 не должно вызвать затруднений. Все руководители компаний должны понимать архитектуру своего решения на уровне иллюстрации 17.2, а архитекторы и инженеры - на уровне иллюстрации 17.3.
От ручного к автоматизированному с помощью кода. Нельзя недооценивать стоимость ручного создания инфраструктуры или ручной сборки и развертывания программного обеспечения. Этот процесс не только медленный и громоздкий, но и чреват ошибками. Чтобы устранить эти проблемы, ведущие компании внедряют автоматизацию инфраструктуры и автоматизацию доставки программного обеспечения: