Разработчики NAB добиваются прогресса в поиске способов создания и развертывания кода в облаке, несмотря на сильно заблокированную ИТ-среду и ограниченные возможности запуска инструментов на локальных компьютерах.
Выступая в кулуарах саммита AWS в Сиднее, старший консультант по автоматизации и DevOps Лупко Трпески отметил, что NAB проделал большой путь в области опыта разработчиков за те 18 месяцев, что он проработал в банке.
Многое было сказано о переходе NAB к публичному облаку — от его Облачной гильдии, которая обучила 4200 человек в год, до его целей повторно разместить 35 процентов ИТ-приложений в облаке в течение трех-пяти лет.
Но «народная» сторона проекта была раскрыта лишь недавно.
На саммите AWS в США в конце прошлого года NAB показала, что использует много технического персонала AWS для выполнения миграционных работ после того, как десятилетие ИТ-аутсорсинга оставило ее с небольшим количеством собственных квалифицированных внутренних ресурсов.
Появление банка на Сиднейской версии AWS Summit на этой неделе показывает, что те, кто присоединился к внутренней рабочей силе NAB, столкнулись с проблемами, пытаясь работать в пределах безопасной среды банка.
“Первый день [в НАБ] для меня 18 месяцев назад был действительно сложным”, — вспоминал Трпески.
— Мы не смогли ничего развернуть. На самом деле было очень трудно установить что — либо на свой ноутбук — а у нас были только ноутбуки с Windows, — так что никаких инструментов не было.
“Получить доступ к учетным записям [AWS] было сложно, а потом, когда вы были в этих учетных записях, было действительно очень трудно развернуть сервисы.”
Разработчики привыкли к свободе выбора инструментов и возможности работать на Mac или ПК. Однако по прибытии в NAB они быстро обнаружили, что среда была только для Windows и что повышенные привилегии-включая права администратора над ноутбуком, который они использовали, — не были вариантом.
“Мы действительно боролись, когда были на окнах”, — сказал Трпески.
“[NAB] дал вам Windows и Word, и вы могли писать документы и проверять свою электронную почту, но вы не могли делать там ничего другого. Я не хочу говорить конкретно об этом.
“Но, по сути, мы обнаружили, что единственное, что мы можем сделать, это установить вещи, которые не требуют от нас локального доступа администратора.
“Мы обнаружили, что можем использовать Cygwin или Babun и устанавливать их без доступа локального администратора, и это позволит нам создавать инструменты, такие как AWS CLI [интерфейс командной строки], на наших ноутбуках и иметь эмулируемую среду Linux.”
Разработчики теперь также используют интегрированную среду разработки (IDE), размещенную в AWS. Банк является усыновителем AWS Cloud9, который позволяет разработчикам писать, запускать и отлаживать код в браузере.
“Если вы находитесь в Америке или Европе, вы можете запустить [Cloud9] как сервис AWS, но если вы находитесь в Австралии, вам придется создавать его самостоятельно, так что это веб-IDE, работающая на EC2”, — сказал Трпески.
“Запуск Cloud9 в качестве IDE в нашей среде AWS позволил нам сделать больше, чем мы могли бы сделать на наших ноутбуках.”
Трпески сказал, что Cloud9 был “игровым чейнджером” для разработчиков банка, но это был один из компонентов более широкого ряда изменений, направленных на облегчение жизни разработчиков.
Недавно банк смягчил свое правило только для Windows и с помощью проекта под названием Mac@NAB теперь позволяет разработчикам использовать компьютеры Apple.
Это привело к тому, что были опробованы и введены некоторые дополнительные свободы, включая возможность запускать Docker локально на ноутбуках разработчиков.
“Это был первый раз, когда мы смогли сделать это, и это произошло только около трех месяцев назад”, — сказал Трпески.
Однако Трпески отметил, что “просто иметь возможность устанавливать вещи локально было для нас недостаточно.”
Продолжая тему блокировки, доступ к учетным записям и среде AWS NAB также является сложной задачей.
“В традиционной организации вы бы получили учетную запись AWS, у нее были бы интернет-шлюзы, а у вас были бы частные и публичные подсети и NAT-шлюзы, и если вам что-то нужно, вы могли бы просто пойти и взять это из Интернета”, — сказал Трпески.
“У нас пока нет тем. У нас есть только частная инфраструктура. Все подключения к нашим учетным записям осуществляются через AWS DirectConnect, и единственными портами, к которым мы действительно можем получить доступ в наших приложениях VPC [virtual private clouds], являются порт 80 и порт 443, так что даже если бы вы захотели использовать SSH [secure shell] в экземпляре в наших производственных средах приложений, вы не смогли бы этого сделать.
“Это так безопасно, потому что это то, что люди ожидают от нас [как от банка], но это также может сделать вещи действительно сложными для человека DevOps.”
Трпески продолжил: “Поскольку у нас нет подключения к Интернету в наших учетных записях, мы должны получить доступ ко всем службам через конечные точки VPC.» Конечная точка VPC позволяет пользователям частным образом подключать VPC к поддерживаемым сервисам AWS.
“Таким образом, чтобы действительно получить файлы в корзину S3 или иметь возможность попасть в наши шлюзы API, мы должны фактически находиться в среде AWS”, — сказал он.
NAB частично решила эту проблему, используя Cloud9 не только в качестве IDE, но и в качестве хоста bastion; по сути, в качестве основной точки доступа, из которой можно получить доступ к другим частям среды AWS.
“Раньше у нас были бастионы в общих учетных записях, и у нас был специальный бастион, который команда безопасности установила бы для нас, мы могли бы войти в этот бастион, а затем этот бастион позволил бы нам войти в наши производственные VPC”, — сказал Трпески.
“С Cloud9 мы обнаружили, что на самом деле все еще можем поддерживать эту роль бастиона, но у нас есть что-то, что делает это лучше.
“Таким образом, вы можете использовать Cloud9 как бастион, но вы также можете использовать его как полностью функциональную IDE.”
Увеличение Cloud9
В дополнение к Cloud9, Трпески сказал, что другие проекты также сделали жизнь разработчиков проще.
“У нас был непрерывный проект соответствия требованиям, в котором команда безопасности может использовать лямбда-функции в наших учетных записях для фактического мониторинга ролей IAM [identity and access management], которые мы создаем, и если что-то в этих ролях IAM не соответствует нашим стандартам соответствия, она динамически изменяет роль IAM, чтобы она соответствовала нашим стандартам”, — сказал он.
Результатом этого для разработчиков стало то, что они впервые смогли “создать [свои] собственные роли IAM.”
Трпески сказал, что еще один продукт разрабатывается внутри компании NAB, чтобы обеспечить “полностью автономный производственный конвейер, начиная с devtest и заканчивая нашими производственными счетами”.
Это было упомянуто на саммите в США, где NAB заявила, что установила «ограждения», которые оставались невидимыми для прикладных команд, если только не был нарушен определенный предел.
“У него есть сценические ворота, где мы можем запустить его через контроль безопасности, мы можем запустить его через соответствие требованиям, и мы можем запустить его через software assurance”, — сказал он.
“Это то, чего у нас не было 12 месяцев назад, и мы действительно могли сделать это только потому, что сотрудничали с AWS для создания этих продуктов, чтобы NAB могла безопасно и надежно запускать сервисы в нашей среде.”