Как приложение Alipay создает мобильные DevOps?

Alipay
Эта статья представляет собой интервью InfoQ с Хун Фэном, техническим экспертом Ant Financial, который поделится «Практикой мобильных исследований и разработок DevOps в приложении Alipay» на QCon Shanghai 2019. Добро пожаловать, обратите внимание.

В статье на сайте Microsoft MSDN говорится: «Идеальная среда для мобильного приложения требует двух условий: одно — точно знать, какие потребности немедленно возникают у клиента, а второе — чтобы код, написанный для удовлетворения этих потребностей, мог быть доставлен немедленно. Проще говоря, для этих клиентов нет разрыва между потребительским спросом, разработкой и доставкой».

Идеальная среда для разработки мобильных приложений, упомянутая в этом абзаце, удовлетворяется DevOps, поэтому модель НИОКР некоторых сверхкрупномасштабных приложений, особенно персонал НИОКР с частичным сотрудничеством НИОКР на основе проекта и НИОКР со многими модулями, начинают тормозить.Потихоньку изучайте систему DevOps. Итак, чем разработка DevOps для мобильных устройств отличается от разработки Web DevOps? В чем сложности построения мобильного DevOps? Как мобильный DevOps справляется с натиском новых технологий? …Чтобы ответить на эти вопросы, InfoQ взял интервью у Хун Фэна, технического эксперта Ant Financial.



Мобильный DevOps против веб-DevOps

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

Причина, по которой это происходит, полагает Рюк, заключается в том, что Web DevOps имеет более стабильную среду выполнения и проверки, и обычно все процессы разработки, проверки, доставки и другие процессы можно проводить прямо на сервере. Самая большая проблема мобильного DevOps заключается в том, что мобильные приложения не имеют стабильной среды проверки.Большинство мобильных приложений можно использовать на нескольких устройствах, что означает работу с различными техническими характеристиками, версиями операционной системы, размерами экрана и т. д. В настоящее время существуют две основные операционные системы для мобильных терминалов, а именно Android и iOS. Среди них Android известен своим собственным управлением.Каждый производитель устройств создал свою собственную операционную систему, и стандартные устройства очень разные.iOS также имеет несколько вариантов, а версии ОС стандартных устройств охватывают широкий диапазон. Кроме того, мобильные приложения также обладают характеристиками взаимодействия человека с компьютером, такими как популярные в настоящее время технологии, такие как сканирование кода и распознавание лиц, поэтому как свести к минимуму ручное вмешательство в мобильные DevOps, сделать все более плавным и улучшить общую производительность. D эффективности, это проблема, о которой мы должны думать.

Хотя в построении мобильных DevOps есть некоторые трудности, на самом деле мобильная разработка и DevOps естественным образом подходят друг другу, потому что разработка клиентов, особенно интеллектуальных терминалов, является новой областью, а итеративное обновление технологий происходит относительно быстро. невозможно выполнить откат и понижение версии в режиме реального времени, поэтому основная конструкция клиентских продуктов в основном сосредоточена на сотрудничестве в области НИОКР, эффективности НИОКР, внедрении новых технологий, обеспечении качества и т. д., что также совпадает с целями построения DevOps.

Помимо того, подходит ли DevOps для разработки мобильных приложений, я думаю, многих людей будет волновать вопрос о том, когда создавать DevOps. Рюк считает: «Основной целью DevOps является повышение общей эффективности НИОКР, поэтому лучшее время для применения DevOps — это когда бизнес компании развивается параллельно, а масштаб достигает десятков человек. Потому что в это время эффективность НИОКР предприятия и качество станет узким местом. Чтобы преодолеть это узкое место, многие сотрудники будут вкладывать средства в исследования и разработки инструментов для достижения определенных возможностей автоматизации. Неизбежно, что будет много повторяющихся работ по созданию колес. В настоящее время DevOps строительство осуществляется и унифицированное закрытие, вы можете не изобретать велосипед ».

Alipay Mobile DevOps Строительство

DevOps тесно связан с развитием бизнеса, DevOps без бизнес-сценариев — пустая болтовня, поэтому построение DevOps в Alipay тоже начинается на определенном этапе развития бизнеса.

По словам Люка, развитие технологий и бизнеса Alipay можно условно разделить на следующие процессы:

  • предварительная стадия

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

  • средняя стадия

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

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

При построении DevOps Alipay в основном сосредоточилась на трех аспектах: сотрудничестве в области исследований и разработок, эффективности исследований и разработок и обеспечении качества.

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

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

Сложности построения мобильного DevOps

Директор по исследованиям Gartner Джейсон Вонг однажды отметил в своем блоге: «Не все DevOps-компании будут использовать DevOps для разработки мобильных приложений. Согласно результатам опроса Gartner, только 42% тех, кто внедряет DevOps, говорят, что DevOps используется для поддержки разработки мобильных приложений». Почему в сценарии разработки мобильных приложений так мало практики DevOps?

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

В конкретное построение мобильного DevOps Рюк полагает, что входят следующие трудности:

Во-первых, стек технологий мобильных приложений фрагментирован. Android и iOS — это два совершенно разных стека технологий. Как унифицировать процесс исследований и разработок двух технологических стеков — сложная задача. Решение Alipay заключается в абстрагировании мобильной модели НИОКР, такой как унифицированная абстрактная модульная конструкция, унифицированная модель управления зависимостями, унифицированный итеративный поток НИОКР и т. д. Конкретные различия заключаются в пути реализации каждой модели, например, совещание по созданию модуля Android. Путем маршрутизации конфигурации на сервер Linux для сборки через Docker сборка модуля iOS строится через конфигурацию маршрутизации на физическую машину Mac.

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

В-третьих, непрерывная интеграция также является одной из трудностей построения мобильного DevOps. Непрерывная интеграция требует возможности быстрой и стабильной обратной связи, поэтому в узле непрерывной интеграции Alipay выбрала единую точку прорыва и провела множество оптимизаций, таких как производительность конструкции и т. д. оборудование, чтобы поддерживать больше устройств и повысить стабильность и пропускная способность; столкнувшись с подключением различных возможностей службы проверки внутри группы, он также использует инструменты CI, такие как Gitlab CI и Github Action в отрасли, для разработки собственного инструмента оркестровки CI для разработки Одноклассники по тестированию обеспечивают сверхвысокий опыт; задача выполнения DSL мы напрямую используем Jenkins Pipeline, чтобы не дублировать колесо.

Кроме того, в последние годы быстро развиваются новые технологии в мобильных приложениях, такие как экосистема React от Facebook, Flutter от Google, а также недавно популярный компилятор Huawei Ark и система Hongmeng. сценарии и технические уровни воды в то время, поэтому появление новых технологий оказывает большее влияние на экологию и выбор технологий.

Чтобы противостоять изменениям, связанным с новыми технологиями, при построении мобильного DevOps необходимо разделить связанные и несвязанные части новых технологий, чтобы свести к минимуму их влияние. Например, с точки зрения инженерии качества, связанной с терминальной техникой, Alipay заранее проведет предварительные исследования и технические заделы.Например, в области статического анализа раньше были только языки Java и OC, но с появлением малых программ также доступны языки JavaScript и TypeScript, постепенно вводится, и в то же время будет выполняться статический анализ и нативный анализ языка фронтенда для обеспечения качества всего клиентского продукта ; с точки зрения неконечных технологий, будут соответствующие возможности совместной работы в команде, включая контроль спроса, управление филиалами, управление зависимостями, управление персоналом и т. д.