Короткое видео о практике разработки фреймворка go

задняя часть Архитектура Go
Короткое видео о практике разработки фреймворка go

Управляемое чтение: hulk — это платформа для разработки сервисов go, основанная на GDP2 (Go Develop Platform), разработанная отделом исследований и разработок Short Video. Это бизнес-ориентированная среда веб-разработки, которая предоставляет множество готовых компонентов и функций, которые можно использовать для быстрой разработки веб-сервисов. В то же время, опираясь на инфраструктуру hulk и сочетая отличные методы разработки на заводе / в отрасли, изначально была построена экосистема go, которая соответствует сценариям бизнес-приложений.

Полный текст 7330 слов, расчетное время чтения 12 минут.

===

1. Предпосылки

Фреймворк hulk был сгенерирован на фоне апгрейда сервисной архитектуры сервера «красивого видео».

1.1 Зачем нам нужно обновлять архитектуру? Какие проблемы стоят перед современной архитектурой?

В первые дни существования Haohao Video из-за потребности в быстрых и гибких итерациях разработки в бизнесе PHP использовался в качестве языка разработки для реализации внутренних сервисов.На ранней стадии были достигнуты относительно хорошие результаты итераций разработки. Однако с быстрым развитием бизнеса Kanhao и быстрым расширением серверных проектов (интерфейсы, коды и т. д.) монолитная архитектура PHP столкнулась с узкими местами и проблемами во многих аспектах, в основном отраженными в следующих аспектах:

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

2. Онлайн-эффективность: Еще одним недостатком многопользовательской разработки одной и той же кодовой базы является онлайн-ожидание.Поскольку одновременно может быть запущена только одна ветка (оценка онлайн), связанные онлайн-требования должны ждать в очереди. Это также побудило наших одноклассников изучить модель «поездки в режиме онлайн», хотя она повысила эффективность выхода в Интернет, но также увеличила риск выхода в Интернет и не решила проблему в корне;

3. Операционная эффективность: PHP имеет определенные преимущества с точки зрения эффективности разработки и гибкости, но когда поддерживаемый бизнес достигает десятков миллионов DAU и более, мы должны учитывать такие вопросы, как эффективность работы службы и затраты на ресурсы. Язык PHP слабее, чем Java, C/C++, Go и другие языки в плане поддержки многопоточности/мульти-сопрограмм, а однотипная архитектура развертывания сервисов, основанная на развертывании на физической машине, также очень эффективна с точки зрения ресурсов. расширение и сокращение использования и услуг трудно удовлетворить спрос;

4. Эффективность SRE: В случае проблем со стабильностью мы ожидаем, что сможем быстро обнаружить, определить местонахождение и быстро остановить убыток. В настоящее время мониторинг/тревога на основе sia и метод локализации проблем на основе логов все еще находятся на некотором расстоянии от идеальной цели: во-первых, учащиеся должны путешествовать по различным платформам/системам, чтобы получить подсказки к проблемам, а во-вторых, подсказки и размеры получаемой информации часто недоступны Удовлетворение потребностей быстрого и точного определения местоположения проблемы;

Эти проблемы необходимо решать с точки зрения общей бизнес-архитектуры, архитектуры развертывания, инфраструктуры и т. д. посредством «4 преобразований»:

图片


1.2 Почему бы не основывать его непосредственно на ВВП2?

图片

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


1.3 Сравнение возможностей hulk и gdp2

Далее идет простое сравнение с gdp2 по трем аспектам и предварительное понимание общих возможностей hulk и некоторых отличий от gdp2.

1.3.1 Возможности веб-сервера

В настоящее время hulk в основном обслуживает веб-приложения.Для начала давайте узнаем о возможностях веб-сервера hulk.

图片

1.3.2 Функция/компонент

Богатство функций/компонентов и их собственные возможности сильно влияют на способность платформы поддерживать бизнес-сервисы.

图片

1.3.3 Окружающая среда и инфраструктура

Фреймворк никогда не бывает «сам по себе», он должен поддерживаться окружающими инструментами и инфраструктурой.

图片

ЗАМЕТКА:

1. Good-Looking также исследовал и представил несколько отличных инструментальных систем и решений в сообществе с открытым исходным кодом при работе на ходу.Интеграция этих инфраструктур добавлена ​​​​по умолчанию в hulk;

1.3.4 Обзор сравнения

В этом разделе в основном делается несколько справочных сравнений с GDP2 с точки зрения возможностей халков. Приведенное выше сравнение можно свести к 4 пунктам:

1. Многие базовые возможности, халка переиспользует gdp, такие как: bns, net, codec и т.д.;

2. Для некоторых общих/расширенных компонентов hulk инкапсулирует и расширяет их дважды в соответствии с бизнес-требованиями, такими как: httpsserver, ral, redis, mysql и т. д.;

3. Для некоторых бизнес-требований, которые gdp в настоящее время не поддерживает, разрабатывает и интегрирует, таких как: запланированные задачи, центр конфигурации, управление услугами и т. д.;

4. Ссылаясь на практику работы с открытым исходным кодом в отрасли, были введены некоторые новые инфраструктуры: такие как кластер prometheus+grafana, сторожевой кластер, система обнаружения неисправностей и т. д.;

GDP2 состоит из десятков модулей, из-за ограниченного времени управление отдельными функциональными точками может отклоняться.

===

2. Понять Халка

2.1 Идеи дизайна

图片


2.2 Структура кадра

С функциональной точки зрения общие возможности Халка можно разделить на четыре уровня:

图片

2.2.1 Основные компоненты

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

  • компонент журнала: по умолчанию поддерживает формат печати, совместимый с PHP (для настройки мониторинга и оповещения sia), а также совместим с форматом, к которому обращается ftrace (запрос журнала и местоположение проблемы);

  • Облачный мониторинг: Поддерживает prometheus по умолчанию, собирает многомерные метрики по всем запросам интерфейсов, redis, ral и другим удаленным вызовам и отображает их через grafana;

  • Центр конфигурации: через центр конфигурации конфигурация может быть доставлена ​​и введена в действие в режиме реального времени. В настоящее время поддерживается Apollo/iConf, а поддерживаемые функции включают в себя управление версиями, горячий выпуск, выпуск оттенков серого, управление правами, аудит и аудит и т. д.;

  • Отслеживание/местоположение событий: С помощью часового некоторые неисправности мы можем обнаружить за секунды. Hulk сохраняет относительно полную локальную информацию в информации об исключении — такую ​​как стек вызовов, запрос, информация о кластере и экземпляре и т. д., благодаря чему можно напрямую определить причину проблемы;

2.2.2 Общие компоненты

Возможности компонентов этого уровня являются общими и обеспечивают некоторый контроль управления и возможности аспектов:

  • компонент ral: модуль ral hulk инкапсулирует основную функцию ral GDP2, и в то же время ral улучшен: а) обеспечивает функции инициализации ral и отложенной загрузки ral через строки вместо файлов; б) предоставляет несколько возможностей ловушек, таких как prometheus мониторинг сбора информации, объединения, понижения версии и т. д.;

  • Служба управления: Структура управления услугами основана на Sentinel (компонент потока защиты высокой доступности с открытым исходным кодом Ali) и для создания центра распределения, в основном для трафика в качестве отправной точки, чтобы помочь в измерении ограничения тока, формирования трафика, плавких предохранителей, понижения в должности и другой поддержки. стабильность микро и услуг, а также обеспечивает динамическое управление;

  • пул сопрограмм: а) может автоматически планировать массивные сопрограммы, повторно использовать горутины, сокращать сбор мусора, б) может изящно справляться с паникой и предотвращать сбои программы в) обеспечивать: отправку задач, получать количество запущенных горутин, инкапсулировать группу ожидания для поддержки планирования задач сопрограмм и других функций;

  • уведомление о событии: Фреймворк интегрирован с Ruflow. Пользователь настраивает токен робота в проекте и может напрямую использовать компонент ruliu для отправки сигналов тревоги/уведомлений в указанную группу потоков. Например, компонент потокового вещания в сочетании с часовым может сообщить нам о проблеме с программой в первый раз и быстро определить местонахождение проблемы;

2.2.3 Компоненты расширения

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

1.компоненты Redis: Модуль инкапсуляции GDP2 redis основан на функциональном расширении, в нем предусмотрено:

a) metrics hook, контролировать все запросы redis (prometheus) управление (латентность/p99/qps/распределение кода ошибки и т. д.);

b) sentry hook, который поддерживает отправку ошибок Redis в sentry при записи журнала ошибок;

c) крюк понижения, который поддерживает понижение уровня доступа к Redis по кластеру/экземпляру/процентному измерению;

г) крюк предохранителя, который поддерживает настройки прерывателя цепи для зависимых служб по кластеру/экземпляру/коэффициенту ошибок/низкой частоте запросов;

2.компонент mysql: Компонент mysql основан на инкапсуляции GDP2 mysql и gorm_adapter.Помимо существующих возможностей, были расширены следующие функции:

а) Предоставляет крючок метрик, для мониторинга управления всеми запросами mysql (prometheus) (латентность/p99/qps/распределение кода ошибки и т.д.);

б) обеспечивает часовой крюк, который поддерживает отправку ошибок mysql в sentry при записи журнала ошибок;

3. Распределенная блокировка: Hulk предоставляет реализацию распределенной блокировки на основе Redis. Соединение redis — это модификация модуля redis на основе GDP2, а функция распределенной блокировки предназначена для инкапсуляции redsync проекта с открытым исходным кодом;

4. Запланированные задачи: Поддержка двух режимов задач на время;

а) Работа с распределенными блокировками: для синхронизированных задач, развернутых с несколькими экземплярами, если задачи не являются идемпотентными, необходимо использовать распределенные блокировки для управления операцией планирования задач;

б) Работа без распределенных блокировок: в этом режиме, если развернуто несколько экземпляров, запланированные задачи одновременно на всех экземплярах будут выполняться одновременно;

2.2.4 http server

Hulk (в настоящее время предоставляет только возможности http-сервера) предоставляет много общего и эффективного промежуточного программного обеспечения http и предоставляет некоторые интерфейсы управления. В некоторых особых случаях эти интерфейсы управления могут использоваться для вмешательства в работу служб во время выполнения:

  • logger_middleware: Он используется для записи HTTP-запросов, ответов, информации о затратах времени и другой информации, а также поддерживает модификацию политик печати журналов в режиме реального времени, например печать по idc/ip/percentage/uid/cuid и другим измерениям;

  • timer_middleware: используется для мониторинга и скрытых точек http-запросов.Может выводить метрики, такие как доступность, tp99, трафик, звук, код ошибки и т. д. Измерения включают уровень обслуживания/idc/экземпляр и т. д.;

  • recover_middleware: используется для захвата события боли в ссылке HTTP-запроса и настройки логики обработчика паники.Например, путем объединения часового и потока можно обнаружить и определить местонахождение события паники в режиме реального времени;

  • flow_control_middleware: компонент ограничения тока интерфейса, который может ограничивать ток интерфейса в соответствии с измерением idc/instance через центр конфигурации или интерфейс управления;

  • timeout_middleware: с помощью этого промежуточного программного обеспечения или в сочетании с центром конфигурации вы можете контролировать время ожидания интерфейса в соответствии с измерением idc;

  • Другое промежуточное ПО может просматривать документацию по Халку.

    (E.g. -internal_user_middleware, jager_opentracing_middleware, thirtparty_auth_middleware, b2logger_middleware и т. Д.)

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

2.3 Базовая экология

В течение почти года строительства мы изначально построили экосистему go, основанную на инфраструктуре hulk и в соответствии с привлекательными бизнес-сценариями, в том числе:

  • Спецификация стандартного каталога: Чтобы избежать несогласованности в структуре каждого проекта, уменьшить сложность и нагрузку на обслуживание проекта;

  • Генератор кода: Генератор кода, основанный на структуре hulk, стандартных спецификациях каталога и спецификациях использования компонентов. Цель состоит в том, чтобы уменьшить нестандартное использование общих модулей / компонентов и решить проблемы общего кодирования процесса и несоответствия обработки;

  • hklib: красивая общая библиотека lib, которая предоставляет некоторые общие функции (также включает некоторые общие/базовые функции/функции orp в процессе преобразования PHP в go), а также предоставляет более 50 клиентов вызовов для мидл-офисных служб, сокращая дублирование кода для повышения эффективности НИОКР и ремонтопригодности;

  • инфраструктура: кластер prometheus+thanos, сервис sentry, кластер apollo, платформа для анализа производительности пироскопа и т. д.;

  • iconf: красивый центр конфигурации собственной разработки, в дополнение к согласованию с Apollo с открытым исходным кодом, он также добавляет/улучшает некоторые функции, такие как выпуск ключевых измерений, более безопасное получение конфигурации, более простая рабочая страница, выпуск уровня класса и т. д.;

  • artemis: Визуализация услуг и интеллектуальная система определения местоположения неисправностей, в которой вы можете увидеть архитектуру развертывания услуг, внутреннюю цепочку вызовов услуг, многомерный и детальный мониторинг в режиме, близком к реальному времени, и ключевые журналы. В случае сбоя доступности некоторые проблемы сбоя могут быть обнаружены до причины и конкретного кода за считанные секунды;

2.4 Каркасное приложение

В настоящее время все сервисы коротких видео построены на основе hulk, и есть некоторые поэтапные выходы и преимущества с точки зрения ресурсов, производительности интерфейса и доступности.

Статус приложения hulk framework:

图片

Преимущества ресурсов и производительности:

图片

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

2.4 сервисная архитектура халка


На следующей диаграмме показана архитектурная панорама микросервиса (на основе hulk):

  • Каждый функциональный компонент в структуре ориентирован на различные бизнес-сценарии и требования, а связанные функциональные компоненты можно легко использовать в бизнес-логике;

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

图片

Инициализация компонентов hulk и интеграция с окружающей инфраструктурой в основном могут быть выполнены через переменные среды/файлы конфигурации.

===

3. Возможности и приложения фреймворка

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

3.1 Как улучшить качество кода?

Качество кода может прямо или косвенно иметь следующие последствия:

  • Качество кода будет напрямую повлиять на расходы на обслуживание кода;

  • Качество кода повлияет на вероятность ошибок в программе;

  • Качество кода повлияет на эффективность программы;

Фреймворк hulk улучшает качество кода благодаря следующим трем аспектам.

3.1.1 Организационная структура нормативного кодекса

Сократите затраты на обслуживание проекта и повысьте эффективность НИОКР.

  • через стандартные характеристики каталога, чтобы определить общий (http-сервис) макет проекта, чтобы избежать явления одного или нескольких макетов на человека, а также явление "цветения" окончательной структуры проекта;

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

3.1.2 Соглашения о кодировании и статические проверки

Улучшите читаемость кода и уменьшите количество ошибок в низкоуровневом коде.

  • Соблюдайте спецификацию кодирования Baidu Go + дополнительную спецификацию бизнес-кодирования;

  • Используйте инструменты проверки кода GDP: go_fmt, goc;

3.1.3 Поддержка платформы измерения давления и анализа производительности

Определите границы стресса для сервисов и определите потенциальные проблемы с производительностью.

  • Платформа стресс-тестирования и тестирования производительности (тестовая среда): nGrinder

图片

  • Платформа анализа эффективности программы:пироскоп. Благодаря самоинтегрируемому интерфейсу управления hulk функцию «непрерывной работы» онлайн-экземпляров можно включать и выключать в режиме реального времени для выявления проблем с производительностью в сети:

图片

3.2 Как повысить скорость итерации разработки?

  • Как позволить разработчикам сосредоточиться на бизнес-логике и реализации?

  • Как заставить разработчиков быстро реагировать и выполнять требования к продукту?

Платформа hulk обеспечивает следующую поддержку для повышения скорости итерации.

3.2.1 Богатые практичные компоненты/функции

Повышайте эффективность НИОКР, избегайте проб и ошибок и сокращайте число ошибок.

  • Компоненты расширения программы: расширенные функции redis/mysql, расширенные вызовы ral и т. д. Пример — мониторинг redis на рисунке ниже, показатели мониторинга автоматически собираются и рассчитываются компонентом hulk redis:

图片

  • Отличные компоненты с открытым исходным кодом: часовой, прометей+графана, аполлон, пул сопрограмм и т.д. Пример — prometheus+grafana: инфраструктура hulk поддерживает prometheus по умолчанию и может автоматически рассчитывать и собирать метрики, такие как доступность сервисов, количество запросов в секунду, затраты времени и коды ошибок:

图片

  • Богатое ПО промежуточного слоя http.

3.2.2 Настраиваемая поддержка с низким кодом

Сократите количество модификаций кода и работу в Интернете, а также улучшите скорость ответа и выполнения требований.

  • Большинство компонентов фреймворка hulk можно инициализировать с помощью переменных среды/файлов конфигурации;

  • Переменные данные и конфигурация в бизнес-логике могут быть доставлены и введены в действие в режиме реального времени через apollo/iconf, без модификации кода и длительного онлайн-процесса. Пример. Конфигурация может быть доставлена ​​и введена в действие в режиме реального времени с помощью встроенной функции центра конфигурации:

图片


3.3 Как быстро воспринимать и найти проблемы?

  • Как разработчики могут быстро обнаруживать проблемы в сервисах и как серьезные проблемы воспринимать в режиме реального времени?

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

Чтобы повысить эффективность SRE, hulk обеспечивает поддержку следующих аспектов.

3.3.1 Идеальные возможности отслеживания событий, позиционирования и уведомлений

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

  • компонент отслеживания событий в реальном времени: sentry. HULK предоставляет функции компонентов Sentry, которые могут использоваться как журналы для печати. ​​Информация в Sentry включает в себя стек вызова кода, контекст, пользовательскую ключевую информацию и т. Д.

图片

  • Рекламный компонент:рулиу. Одна строка конфигурации токена может активировать функцию Ruliu, которая может отправлять некоторую информацию, требующую немедленного внимания, группе Ruliu в режиме реального времени.В то же время ее также можно комбинировать с часовым для реализации восприятия и позиционирования в реальном времени. ненормальные проблемы:

图片

3.3.2 поддержка мониторинга prometheus+sia

Благодаря дополнению prometheus и noah он поддерживает многомерный и всесторонний мониторинг и может получать больше информации о стабильности службы.

  • prometheus предоставляет разработчикам гибкую и многомерную информацию для мониторинга бизнеса;

  • sia может предоставить разработчикам индикаторы стабильности службы на основе журналов и информацию о мониторинге ресурсов, таких как контейнеры и сети;

3.3.3 Функция запроса и анализа журнала FTRACE

Hulk по умолчанию поддерживает формат журнала платформы ftrace.

  • С помощью ftrace вы можете легко и эффективно запрашивать информацию журнала пользовательского измерения;

图片

  • С помощью команды pdo2 вы можете получить и запросить информацию журнала пользовательских правил;

3.4 Визуализация услуг на основе Hulk и интеллектуальная система определения местоположения неисправностей

Artemis — это интеллектуальная система отслеживания местоположения сервисов и неисправностей, разработанная нами на основе hulk.Он объединяет визуализацию архитектуры развертывания сервисов, многомерный мониторинг почти в реальном времени, ключевые журналы, цепочки вызовов сервисов и другую информацию, что позволяет быстро, эффективно, точное обнаружение и проблемы со стабильностью позиционирования.

Система подключена к нескольким серверным службам, таким как Kankan/Quanquan/Duka, что значительно повышает эффективность поиска неисправностей. В некоторых сценариях сбоя проблема может быть обнаружена за секунды, и может быть указана строка кода проблемы.

3.4.1 Архитектура развертывания службы

Через список экземпляров вы можете получить список idc, список экземпляров и сведения о службе, а также предоставить удобные и эффективные инструкции по входу и входу в систему для отладки:

图片

3.4.2 Многомерный мониторинг в режиме, близком к реальному времени

Мониторинг почти в реальном времени, предоставляемый artemis, может предоставить больше информации об измерениях, которую не могут предоставить sia и prometheus, например:

  • Количество запросов в секунду, трудоемкость и доступность нижестоящего (или нижестоящего экземпляра) RAL по URI;

  • информация мониторинга URI или RAL экземпляра службы;

图片

3.4.3 Ключевые журналы

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

图片图片

3.4.4 Цепочка служебных вызовов

С помощью фреймворка hulk Artemis также может получить URI и информацию о вызовах RAL, от которых зависит URI, чтобы построить цепочку вызовов запроса и отобразить соответствующую информацию о метриках в цепочке вызовов в режиме реального времени:

图片

Ссылки разного цвета обозначают разную доступность: красный - 1 9 и ниже, желтый - 2 9, синий - 3 9, серый - 4 9. Через цепочку вызовов службы вы можете очень интуитивно увидеть, какой интерфейс имеет проблему в службе, а какой нисходящий поток влияет на доступность этого интерфейса.

3.4.5 Варианты использования

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

图片

===

4. Резюме

===========

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

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

Предложения о работе:

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

Добро пожаловать в отдел коротких видео исследований и разработок, требуется социальный набор, стажировка и набор в школу.

Электронная почта для доставки резюме:geektalk@baidu.com(Замечания по доставке [короткое видео])

Рекомендуемое чтение:

Подробное объяснение схемы гарантии согласованности в автономном режиме для сотен миллиардов моделей.

Как быстро найти программу Core?

Анализ успешной практики применения Baidu BaikalDB в Тунчэн-элонге

---------- END ----------

Байду Гик говорит

Официальный технический общедоступный аккаунт Baidu доступен онлайн!

Технические галантереи · Отраслевая информация · Интернет-салон · Отраслевая конференция

Информация о найме · Внутренняя информация · Технические книги · Периферийные устройства Baidu

Приглашаем студентов обратить внимание