Банковская группа ANZ провела последние два года, устраняя внутренние “привратники”, которые замедляли прогресс нового кода, внедряя автоматизацию и устраняя необходимость для разработчиков тянуть марафон 18-часовых субботних вечеров, чтобы запустить материал в производство.
Подробности этого проекта были получены от банка в течение последнего года, в том числе на региональном форуме Red Hat в прошлом месяце, где банк получил награду поставщика.
Проект начался как способ “увеличить скорость выпуска программного обеспечения”, сказал Red Hat, и увидел, что банк мигрирует “более 25 сервисов в контейнеры в течение девяти месяцев” 2017 года.
Технологический стек, лежащий в основе этой платформы, — контейнерная платформа Red Hat OpenShift, а также ряд других технологий Red Hat.
“ANZ сообщает, что он сократил время развертывания с нескольких часов до нескольких минут, позволил командам разработчиков развернуть свой собственный код в производство, автоматизировал настройку и обеспечил развертывание с нулевым временем простоя”, — сказал Red Hat.
Презентация, проведенная банком в августе, которая только что была обнародована, дает один из самых подробных взглядов на проект.
Руководитель технологического направления Platform engineering Майк Берри сказал, что проект обязан своим самым ранним происхождением промышленной шумихе вокруг Docker.
“Еще в 2016 году мы думали, что должны сделать » Докер в производстве’ … потому что мы думаем, что это будет здорово”, — сказала Берри.
— Потом мы заговорили о требованиях. Мы рассмотрели несколько различных способов сделать это — Rancher был большим в то время, мы посмотрели на Docker Data Center, но затем мы также посмотрели на OpenShift и решили пойти с этим.
“Одна из причин этого заключается в том, что OpenShift-это своего рода версия Kubernetes под брендом Red Hat, поэтому, если вы хотите делать что-то с OpenShift и с Kubernetes, это одно и то же, но Red Hat дает вам несколько дополнительных наворотов для этого.
“И затем, если вы посмотрите на кодовую базу прямо сейчас для Kubernetes, то номер один [вкладчик] — это Google, вкладывающий в нее много коммитов, но компания номер два на самом деле Red Hat, и поэтому у них есть некоторый опыт там.”
Берри знал, что докера и “крутого” Кубернетеса будет недостаточно, чтобы продать проект, поэтому его команда искала «другие причины» для начала использования.
“Для нас нашими причинами были более быстрые развертывания, особенно с нулевым временем простоя; повышенная стабильность наших сред, так что если вы потеряете сервер, это не конец света; более производственные среды-это трудно, если вы вручную строите биты и куски здесь и там, чтобы сделать их все одинаковыми; и больший сквозной контроль жизненного цикла приложения”, — сказал он.
Удаление блокировщиков
У ANZ были проблемы с “привратниками” в различных внутренних командах, замедляющих внедрение нового кода в производство.
Берри привел пример работы, которая должна была выполняться на пяти серверах каждое утро с 2 часов ночи.
“Чтобы достичь этой цели в нашей организации — а этой организации, к счастью, больше не существует, это было в прошлом году, но в то время все это было подлинно на 100 процентов — вы должны были [задействовать все] эти разные команды”, — сказал он.
“Вы можете заполнить форму, чтобы привлечь их, или отправить им электронное письмо или телефонный звонок, или, возможно, поговорить по Скайпу.
Первые два месяца этого процесса будут “потрачены впустую, пытаясь заставить пять серверов выполнить задание”.
“В течение следующих двух месяцев мы должны были найти коды оплаты, определить, был ли назначен человек, отвечающий за управление проектом, и решить все виды вопросов, которые не имели никакого отношения к технологии”, — сказал Берри.
“Итак, мы подходим к концу этого процесса, и есть два телефонных звонка, потому что я могу сказать вам, что эти команды не любят звонить друг другу, есть четыре различных формы, которые вы заполняете, чтобы взаимодействовать с людьми, есть 17 разговоров по Скайпу, есть 106 электронных писем и 62 рабочих дня — я даже не считаю выходные или рождественские каникулы — и ни один сервер не был завершен”.
Берри сказал, что не может свалить всю вину за задержки на другие внутренние команды.
— Честно говоря, мы действительно изменили наши требования в ходе этого процесса. Мы сказали, что нам нужно не пять серверов, а девять. Так что отчасти это моя вина, — признал он.
Живопись по номерам
Но процесс был слишком сложным, и Берри смог убедить бизнес в этом, графически представив процесс — и огромные задержки — руководству ANZ.
“Если у вас есть данные в электронной таблице, превратите их в красивую картинку, и тогда ваши менеджеры поймут, о чем вы говорите, и тогда они согласятся, что это неправильно, и мы это изменим”, — сказал он.
Таким образом, этот график показал, что когда запрос на инфраструктуру был подан, он пошел “в пул людей, где в конечном итоге он попадает к кому — то, кто действительно смотрит на него, а затем что происходит, если он не совсем правильный-он проходит снова и снова. В конце концов он выходит с другого конца, может быть, в какой-то момент с тем, что вы хотели.”
— Тем больше людей и команд на пути отсюда сюда … тем дольше это займет, — сказала Берри.
“Это было мотивацией для нас за [развертыванием] Kubernetes, потому что я могу подойти к разработчику и сказать: «Вы просто делаете все, что хотите, в этом контейнере, а затем я собираюсь построить систему, которая автоматически проталкивает это. Вам не нужно говорить с людьми об этой штуке, это будет автоматически».”
Берри отметил, что переход на контейнерное развертывание является не только технологической, но и культурной проблемой.
“Мы должны были поговорить с командами и сказать:” Послушайте, у нас есть новая технология, вы больше не привратник, ваша работа-создавать автоматизацию», — сказал Берри.
“Если вы хотите провести аудит нашей системы, перейдите к журналам, вы можете посмотреть их в любое время, когда захотите, но не останавливайте нас и не проводите совещания о необходимости утверждения вещей.”
Другие извлеченные уроки
Берри использовал свою презентацию, чтобы разобраться с рядом уроков, которые ANZ извлекла из своего опыта оркестровки Kubernetes и контейнеров.
Один из них состоял в том, чтобы сделать его простым — банк начал развертывать только две службы на Kubernetes, и это в конечном итоге сработало хорошо, так как ANZ испытывал проблемы с регистрацией один раз в производство.
“Нельзя просто развернуть все в Kubernetes и надеяться на лучшее»,” сказал Берри.
“Мы немного поторопились с этим, и это была наша постпродакшн-живая проблема.
“Когда мы впервые настроили ведение журнала, это было не очень хорошо, и были всевозможные проблемы с пропускной способностью … Большинство журналов прошли, но не все, и если вы работаете в банке, вам действительно нужны все.
— Итак, наш табель успеваемости был «нуждается в улучшении». Урок заключается в том, что вам нужно планировать ведение журнала. Регистрация не происходит волшебным образом — она не будет автоматической.”
Для АНЦА то, что он не перенес все сразу на Кубернетес, давало ему некоторую передышку.
“Когда у вас есть только две службы, это действительно не так уж плохо. Но у нас было больше готовых вещей, и если бы мы просто развернули их все и вышли в эфир, то все было бы намного хуже и гораздо труднее исправить”, — сказал Берри.
“В этой экосистеме есть много новых вещей, которые нужно изучить, и вы узнаете, только делая это. Лесозаготовки были для нас единственным сюрпризом.”
Время представлять
Берри сказал, что банк также представил Kubernetes с сильным внутренним представительством как на стороне развития, так и на стороне операций банка.
— Вам нужны люди на вашей стороне, которые готовы сражаться за эту новую вещь, — сказала Берри.
“Вещи, которые являются новыми и захватывающими в технологических организациях, которые являются большими и явно сложными [не испытывают] успеха без некоторых хороших союзников на вашей стороне.”
Контейнеризация также принесла некоторые технические проблемы, и Берри сказал, что потребовалось разумное количество образования и подготовки.
Это включало в себя развеивание внутреннего мышления о том, что “контейнеры есть … маленькие виртуальные серверы”.
“Особенно для контейнеров, они должны быть неизменными — вы никогда не меняете контейнер, вы не прыгаете, если он плохо работает, и не добавляете что-то, чтобы исправить его. Вы получаете свой образ, находите что-то неправильное, меняете свой образ, повторно развертываете его, и теперь у вас работает новый контейнер”, — сказал Берри.
“Другая [характеристика контейнеров-они] эфемерны. Эфемерность означает, что контейнеры могут быть остановлены, уничтожены или заменены в любой момент времени.”
Берри сказал, что понимание характеристик контейнеров и отличий от виртуальных серверов важно для разработчиков, знающих, что они должны и не должны контейнеризировать.
АНЗ провел несколько практических виртуальных тренингов, чтобы усилить это; виртуальная природа — с помощью видео, телефонных звонков и Слабины — была необходима, так как разработчики АНЗ фанатели по всему Мельбурну, Сиднею, Бангалору и Чэнду.
“У нас есть все наши люди на телефонном звонке и слабине, где один из моей команды сделает сломанную сборку CI [continuous integration], даст ее всем и заставит их заставить ее работать”, — сказал Берри.
“Мы обсуждаем, как вы могли бы устранить это.
“Потому что это не бег, который учит вас чему-либо об автоматизации, потому что он просто работает. Это то, как вы исправляете его, если он ломается [вот где вы учитесь].”
Большой прирост скорости
Результаты развертывания Kubernetes и автоматизированного развертывания кода были ярко выражены.
Разработчики ANZ перешли от ночных дежурств по выходным к возможности запустить код в производство в рабочее время примерно за час.
“Это все еще очень распространено, но если бы вы были в большой компании, вы могли бы сделать старый 18-часовой субботний вечер, чтобы доставить вещь в производство”, — сказал Берри.
“Некоторым людям это нравится — мы все соберемся вместе, возьмем что-нибудь на вынос и развернем какое-нибудь программное обеспечение. Я лучше буду дома.
“Сейчас мы делаем развертывание через час, но это в рабочее время, и мы проверяем и проверяем это. Это очень хорошо.”
Теперь банк также “редко требует” плановых или незапланированных отключений своих сред разработки и тестирования.
“Поскольку люди так сильно меняли бы ситуацию в тестовой среде, у нас всегда было бы «это плановый сбой, все в порядке». Я говорю: «Нет, он все еще отключен». То, что ты все спланировал, не делает ситуацию лучше, — сказала Берри.
— И хотя мы очень тщательно планировали перебои, они все равно остаются перебоями.
— Теперь они ушли. Даже если у нас произойдет сбой — потому что это не идеальный мир, все рушится — в новом мире или, по крайней мере, в Кубернетесе рушится только этот элемент, а не все. Так лучше.”
Новые среды раньше “требовали времени” для создания и проверки, и ANZ Bank сократил этот процесс с нескольких месяцев до “одного дня”.
Берри был особенно доволен тем, что теперь банк мог быстро реагировать на возникающие у него проблемы. Хотя он отметил, что это не было специально благодаря Kubernetes, проект стал частью более широких усилий по улучшению непрерывной интеграции и непрерывной доставки (CI/CD).
“Для меня самое главное-это то, что у нас была проблема безопасности, которую мы нашли, мы протолкнули ее через полный цикл за один день”, — сказал он.
“Если у вас есть действительно важная вещь, которую нужно пройти, у нас есть система, которая позволяет в тот же день.”