Я захожу в переговорную, собираясь обсудить с Джоном проблемы по соответствию SOX-404 и вопросы безопасности «Единорога». На нем оксфордская рубашка, жилет и запонки. Джон выглядит так, будто только что снимался для Vanity Fair и, похоже, каждый день продолжает брить голову.
«Я поражен, как быстро были преодолены трудности, связанные с безопасностью «Единорога», – говорит он. – Однако по сравнению с «Фениксом», все они – легкая задачка. Цикл настолько короткий, что порой мы можем фиксировать какие-либо сбои в течение часа. Обычно это занимает день или два. А вот восстановление «Феникса» напоминает мне выдергивание зубов безо всякой анестезии. Обычно нам приходилось ждать около квартала, чтобы реализовать какие-то значительные изменения, и постоянно крутиться, пытаясь исправить что-то в случае чрезвычайной ситуации.
На самом деле, – продолжает Джон, – процесс исправления ошибок настолько прост, потому что мы можем перестроить все что угодно, всего лишь нажатием кнопки. Если случится неисправность, то мы еще раз можем все перестроить с нуля».
Я киваю: «Иногда я тоже поражаюсь тому, что мы можем делать благодаря коротким циклам «Единорога». В «Феникс» мы вносим исправления и реализуем запуски раз в квартал. Но за последние пять недель мы осуществили около двадцати изменений в коде «Единорога» и в развертывании на рабочие сервера. Это уже становится обычным делом. Как ты и сказал – полная противоположность «Фениксу».
Джон отвечает: «Большая часть опасений, которые были у меня относительно «Единорога», теперь не кажутся мне актуальными. Мы запустили регулярные проверки, желая убедиться в том, что разработчики, имеющие ежедневный доступ к рабочей среде, имеют лишь права на чтение, и мы добились значительных успехов в интеграции наших тестов безопасности в процессы конструирования. Я практически уверен, что любые изменения, которые могли бы задеть безопасность данных или модули распознавания, быстро были бы засечены. – Он откидывается назад, скрестив руки за головой: – Я волновался как не знаю кто, когда думал о проверке безопасности «Единорога». Частично мои опасения были связаны с тем, что раньше нам требовался месяц только на составление отчета о безопасности приложения. В случае чрезвычайной необходимости, вроде проверок аудита, мы могли обернуться за неделю.
Но идея о десяти развертываниях в день! – восклицает он. – Полное безумие! Однако вы заставили нас автоматизировать процесс тестирования безопасности, и мы интегрировали его в те же процессы, которые Уильям использует для своих тестирований. После этого мы проводим тестирование каждый раз, когда разработчики составляют новый код».
Затем он добавляет: «Ты должен знать, что мы совсем недавно закрыли последние проблемы, связанные с аудитом на соответствие SOX-404. Мы смогли доказать аудиторам (отчасти спасибо новому процессу контроля за изменениями, который ты запустил), что весь текущий контроль очень жесткий, и мы закрыли все аудиторские проблемы, накопившиеся за три года. С улыбкой Джон говорит: – Поздравляю, Билл. Ты сделал то, что не удалось ни одному твоему предшественнику, – мы наконец стряхнули с себя аудиторов!»
К моему удивлению, короткая предпраздничная неделя проходит как по маслу. Прежде чем в среду все отправляются на каникулы, большая маркетинговая кампания «Единорога» уже готова. Код по-прежнему работает в десять раз медленнее, чем нужно, но нас это пока устраивает.
Пришлось нам понервничать, когда тестировщики выяснили, что мы рекомендовали клиентам уже распроданные товары. Случилась бы настоящая катастрофа, если покупатели, кликающие на товары в промоакции, выяснили бы, что они уже проданы. Невероятно, но разработчики придумали решение за день и внедрили его за час.
Сейчас 18:00, я уже собрал вещи, с волнением ожидая длинных выходных.
Мы все их заслужили.
28 ноября, пятница
В середине дня, в четверг, прямо посреди Дня благодарения, мы уже знали, что мы в беде. Ночная промоакция «Единорога» прошла с невероятным успехом. Ответ от респондентов был настолько высоким, что трафик на нашем сайте увеличился до рекордных уровней, и это повлекло за собой сбой в электронной системе оплаты.
Мы инициировали экстренный сбор по поводу возникшей ситуации и задействовали все способы решения проблемы с оплатой заказов, включая использование большего количества серверов и отключение вычислительных возможностей.
По иронии один из разработчиков предложил отключить рекомендации в реальном времени, над которыми мы так долго работали. Зачем они нужны, говорил он если наши клиенты не могут выполнить транзакцию?
Мэгги довольно быстро с ним согласилась, но потребовалось еще два часа работы, чтобы написать и запустить это изменение. Зато теперь данную опцию можно было включить или отключить в настройках конфигурации, и, следовательно, в следующий раз мы могли бы сделать это за минуту, не переписывая код.
Вот что я называю проектированием для IT-сопровождения! Становится все легче и легче управлять кодом, уже запущенным в работу.
Мы также продолжили оптимизировать запросы к базам данных и освободили сайт от тяжелой графики, разгружая наши серверы. Ближе к вечеру в День Благодарения обслуживание клиентов улучшилось до приемлемого уровня.
Настоящий кошмар случился на следующее утро. И хотя на календаре был официальный выходной, я вызвал всех своих сотрудников в офис.