Мобильная R&D практика посадки DevOps

Архитектура Эксплуатация и техническое обслуживание mPaaS
Мобильная R&D практика посадки DevOps

автор: Яо Ланьтянь (Десять зеркал), технический эксперт Ant Financial.

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

живое видео):t.cn/Ai9HuCNT

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

0. Фон

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

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

1. Статус платформы для сотрудничества в области НИОКР

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

Платформа для совместной работы в области исследований и разработок начала создаваться примерно в 2014 году и теперь поддерживает более 300 строк клиентского кода для iOS и Android, а количество разделенных пакетов превышает 300. Наше еженедельное время сборки составляет 1,4 Вт, установочный пакет будет отображаться в оттенках серого в среднем 2–3 раза в день, а количество студентов, занимающихся разработкой и тестированием, достигло почти 1000 человек.

Мы поддержали поставку Alipay, MYbank, Fortune, Koubei и других продуктов Ant Group, а набор поддерживаемых технологий эволюционировал от Android и iOS до производителей SDK, мини-программ, IoT и настольных приложений. Нижний уровень этих результатов возможностей представляет собой набор процессов сотрудничества в области исследований и разработок, которые мы ускорили, от требований до разработки, тестирования, доставки и замкнутых циклов обратной связи после выпуска.

С быстрым развитием бизнеса Alipay, от инструментов до суперприложений, объем кода вырос до 300 Вт+. С точки зрения технической архитектуры,Модульная динамическая загрузкатехнологии, что ставит перед нами вопрос, как разработать и интегрировать более 300 пакетов в разных командах в высококачественное приложение и отправить его на мобильный телефон пользователя.

2. Трехэтапный подход DevOps

Трехэтапный рабочий метод DevOps, первый шаг, мы моделируем поток создания ценности и разделяем НИОКР на5 этапов (требования, разработка, тестирование, интеграция и выпуск), определите критерии входа и выхода для каждого этапа. Например, результаты анализа требований необходимо разделить на уровни User Story, и путем рассмотрения требований каждого достигается консенсус. Затем на каждом этапе мы выделили наиболее важные действия, такие как этап разработки.Наиболее распространенными действиями разработчиков каждый день являются написание кода, проверка кода и автоматические конвейеры, запускаемые после кода MR/Push, такие как компиляция, сканирование, и автоматизированное тестирование. Эти этапы, действия на каждом этапе и сотрудничество между людьми формируют контекст нашего представления общей картины, о чем мы часто говорим.поток создания ценности.

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

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

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

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

  • Разобрать "конфигурацию зависимостей"

Как упоминалось ранее, мы реагируем на резкое увеличение потребностей бизнеса за счет разделения архитектуры и модульного взаимодействия команд. Таким образом, этот снимок экрана сделан для того, чтобы у каждого было интуитивное представление о нашей конфигурации зависимостей.Продукт каждого модуля можно понимать как Zip-пакет, состоящий из более чем 300 пакетов, управляемых в определенном выпуске установочного пакета. зависимостей. Наша интеграция требований в некотором смысле является обновлением версии модулей в этом списке зависимостей. Разделение модулей также делает нашу практику быстрой доставки небольших партий с возможностью выпуска большой версии за 2 недели.

  • модель филиала

Для управления требованиями мы можем использовать такие инструменты, как Jira и Redmine, или подключиться к внутренней платформе управления проектами. Здесь я начинаю непосредственно с действий на этапе разработки.

Давайте сначала поговорим о MR, это наша модель ветвления: "Разработка на основе ветки, выпуск на основе магистрали". На этапе разработки создайте итеративную ветвь на основе Мастера и создайте ветвь Feature на основе итеративной ветки. Перед слиянием в итеративную ветвь через MR сделайте точку карты Code Review. На этапе интеграции вы можете напрямую создайте ветку Bugfix на основе ветки Master, а затем вернитесь в ветку Master в MR. На этапе выпуска создаются теги на основе версии клиента.

1. Определение конструкции и техническая архитектура

Далее поговорим о строительстве. Я определяю сборку как процесс, посредством которого код и конфигурация выполняются в среде с помощью инструментов сборки и сценариев для создания продукта. Поэтому мы хотим сосредоточиться на этих 4 элементах».Код, скрипты сборки, среды выполнения, управление продуктом"Код и скрипты сборки предоставляются разработчиками, а нам нужно помочь управлять средой и продуктами. Например, когда IoT выдвигает требование поддерживать их построение, по сути, это подготовка Docker изображения для них, определить ввод и вывод, и разместить свои продукты.Публиковать в репозиторий Maven или облачное хранилище.

  • Сборка: техническая архитектура

После понимания элементов строительства техническая архитектура становится очень ясной.Вышеупомянутый тип строительного бизнеса, который мы поддерживаем, планирование является основной возможностью выполнения, Docker и MacOS являются средами, которые мы задействуем, и Jenkins используется для соединения этих операций. машины. Управление средой в основном осуществляется с помощью Docker, а Windows очень хорошо поддерживает Docker, наша IDE построена на Windows Docker. У нас более 30 компьютеров Mac Pro, и мы используем Ansible для предварительной настройки и обновления программного обеспечения для лучшего управления.

  • Сборка: Демо

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

2. Проектирование архитектуры автоматизированного конвейера

От построения единого здания возможностей он постепенно расширился до потребностей статического сканирования, автоматического тестирования, проверки размера пакета, сканирования безопасности и других требований проверки. Сначала мы подумали о конвейере непрерывной интеграции, изучили основные инструменты CI, такие как Jenkins, Gitlab, Drone, CircleCI и TravisCI, и, наконец, решили разработать платформу CI для подключения сервисов проверки различных команд внутри компании. Из этой схемы архитектуры видно, что ядром CI является определение и анализ конвейера Pipeline, выполнение проверки и протокол доступа для подключения каждой службы. Верхний уровень — это поддерживаемые бизнес-типы и настройки механизма запуска конвейера.

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

  • Автоматизированный конвейер: демонстрация списка

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

  • Автоматизированный конвейер: демо-пример

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

3. Сообщение: Здоровье

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

  • Показатель качества публикации

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

  • Сообщение: Параметры качества

Это дизайн нашего измерения качества для справки.

3. Резюме

Наконец, краткое изложение. Вышеупомянутое содержание сначала представляет текущую ситуацию с исследованиями и разработками клиентов Alipay. Благодаря «трехэтапному методу работы» DevOps первый шагРабочий процесс прямого моделирования, разобралисьТребования, разработка, тестирование, интеграция, релизЭти 5 этапов и важные действия на каждом этапе образуют контекстную карту потока создания ценности и относятся к методам гибкой разработки для организации нашей информационной архитектуры продукта. Затем он фокусируется на разработке и реализации нашего конвейера построения и непрерывной интеграции, а также реализует механизм обратной обратной связи «трехэтапного метода работы» посредством оркестровки конвейера и проектирования точек качества на этапе выпуска. Трехшаговый метод работы. Третий шаг непрерывного обучения и совершенствования может быть достигнут на основе первых двух шагов.

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

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

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

Из-за нехватки места мы не можем раскрывать многие технические моменты один за другим. Вы можете узнать больше о mPaaS из технических документов или нажать «прочитать исходный текст»:speciality.ant fin.com/docs/2/4954…

Рекомендуемые мероприятия: Конференция по разработке тестов MTSC 2019

MTSC2019 5-я Китайская конференция по тестированию и развитию мобильного Интернета пройдет в Пекинском международном конференц-центре с 28 по 29 июня. Более 50 экспертов по тестированию из Google, BAT, TMD и других ведущих интернет-компаний поделятся интересными темами, касающимися тестирования мобильной автоматизации. , тестирование на стороне сервера, контроль качества, высокотехнологичные технологии тестирования (AI+, тестирование больших данных, тестирование IoT) и другие темы.

Ряд технических экспертов из Ant Financial поделятся интересными темами на конференции, расшифруют эволюцию внутреннего мобильного теста Ant Financial 2.0+, как система окраски кода в реальном времени завершает обнаружение покрытия кода и т. д. Я с нетерпением жду возможности пообщаться с вами. .

Читать в прошлом

«Начало | Обзор системы основных компонентов сервера mPaaS компании Ant Financial»

«Основные компоненты сервера Ant Financial mPaaS: анализ архитектуры сквозного доступа к мобильной сети в условиях параллелизма на уровне миллиардов»

«Основные компоненты mPaaS: как Alipay создает систему анализа общественного мнения для мобильных продуктов? 》

«Основные компоненты сервера mPaaS: анализ архитектуры службы мобильного анализа MAS»

«Проект системы компонентов Ant Financial для 100 миллионов одновременных сценариев»

«Эволюция автоматизированного сбора и анализа журналов в приложении Alipay»

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

QRCode

Группа Dingding: номер группы поиска «23124039» через Dingding

С нетерпением жду вашего присоединения ~