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

Михир Шах, директор по разработке программного обеспечения

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

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

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

Облако - это сердце инфраструктуры Capital One

Capital One в этом году стал первым банком США, сообщившим о том, что мы отказались от устаревших центров обработки данных и полностью перешли на общедоступное облако с AWS. Около восьми лет назад мы осознали, что технологический ландшафт претерпевает сдвиг. Мы знали, что по мере развития новых технологий у клиентов будут расти ожидания в отношении того, какие виды персонализированного опыта в реальном времени по запросу должны предоставлять их банки. Если бы мы внесли только постепенные изменения в наш технологический стек, нам было бы трудно угнаться за спросом, не говоря уже о том, чтобы задавать кривую в нашей отрасли.

Мы также знали, что это преобразование будет нелегким. Capital One - крупнейший прямой банк Америки с 70 миллионами клиентских счетов. Мы являемся вторым по величине кредитным учреждением, предоставляющим автокредиты, и третьим по величине эмитентом кредитных карт в США.

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

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

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

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

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

Повышение устойчивости мобильного приложения Capital One

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

Есть много способов обеспечить и спроектировать эту отказоустойчивость - и поскольку мы являемся организацией с открытым исходным кодом, мы выбрали инструменты таких перспективных организаций, как Netflix Eureka и HashiCorp Consul, Hashicorp Nomad, и Fabio помогают нам в достижении наших целей по отказоустойчивости мобильного приложения Capital One.

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

Балансировка весов с помощью машинного обучения

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

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

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

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

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

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

Технология, потому что это человек

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

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

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

РАСКРЫТИЕ ИНФОРМАЦИИ: © 2021 Capital One. Мнения принадлежат отдельному автору. Если в этом посте не указано иное, Capital One не является аффилированным лицом и не поддерживается ни одной из упомянутых компаний. Все используемые или отображаемые товарные знаки и другая интеллектуальная собственность являются собственностью соответствующих владельцев.

Первоначально опубликовано на https://www.capitalone.com.