RSS El blog de tecnología de A... Nota

RSS El blog de tecnología de Airbnb - Medium

La ingeniería de Airbnb es un portafolio de artículos del equipo de ingeniería de Airbnb que discuten sobre diversas tecnologías, innovaciones y estudios de caso de la industria. El sitio ofrece a los lectores un análisis detallado y perspectivas sobre los diferentes enfoques y desafíos que enfrentan en términos de ingeniería de software, desarrollo de productos, escalabilidad, rendimiento y más. El blog también cubre nuevas tendencias en tecnología, liderazgo y colaboración en equipo, brindando sabiduría para mejorar a las empresas de tecnología.

Hilo de notas

CdXz5zHNQW_RVap6w2FjE.jpeg
Airbnb adoptó recientemente Bazel, la herramienta de compilación de código abierto de Google, como su sistema de compilación universal en las plataformas de backend, web y iOS. El gran repositorio monolítico de la empresa, que consta de más de 11 millones de líneas de código, presentaba desafíos con scripts de compilación personalizados y lógica de caché que eran difíciles de mantener y no escalaban bien. Para abordar estos problemas, Airbnb migró a Bazel, que ofrecía sofisticación, paralelismo, caché y rendimiento.El proceso de migración comenzó en 2021, pero no había un precedente industrial público para integrar Bazel con la web a gran escala fuera de Google. El equipo tuvo que superar problemas de rendimiento al transmitir archivos grandes al entorno remoto y estableció principios de migración que incluían mejorar o mantener el rendimiento general y reducir el impacto en los desarrolladores que contribuían al repositorio monolítico durante la transición.Para preparar el repositorio para Bazel, el equipo realizó la ruptura de ciclos y la generación automática de archivos BUILD.bazel. También migró los trabajos de CI a Bazel, comenzando con la comprobación de tipos, la comprobación de estilo y las pruebas unitarias. El equipo habilitó TypeScript, ESLint y Jest, e introdujo la caché para reducir el tamaño de entrada y mejorar el rendimiento.Para evitar retrocesos, el equipo movió las pruebas de "ocultas" a "requeridas" a través de un atributo de regla y aseguró una única fuente de verdad al no ejecutar pruebas bajo la configuración de Jest que se estaba reemplazando. También escribió un script para comparar antes y después de Bazel para determinar la preparación para la migración utilizando métricas como el tiempo de ejecución de las pruebas, las estadísticas de cobertura de código y la tasa de fallos.En paralelo con la migración de CI, el equipo aseguró que los desarrolladores puedan ejecutar Bazel localmente para reproducir e iterar sobre los fallos de CI. Entregaron una experiencia de Bazel local que es igual o superior a la experiencia de desarrollo existente y el rendimiento, lo que permite a los desarrolladores seguir utilizando herramientas familiares y optar por Bazel cuando sea beneficioso.
Airbnb ha transformado la forma en que las personas viajan por todo el mundo, pero proporcionar a los huéspedes opciones relevantes en sus resultados de búsqueda se ha vuelto cada vez más complejo debido a las diversas ubicaciones y tipos de propiedades en su inventario. Para abordar este desafío, Airbnb pasó de utilizar heurísticas simples a técnicas avanzadas de aprendizaje automático y aprendizaje por refuerzo para transformar su proceso de recuperación de ubicaciones.Inicialmente, Airbnb confió en heurísticas para definir áreas del mapa en función del tipo de búsqueda, pero estas heurísticas tenían limitaciones y no podían diferenciar entre diferentes tipos de búsquedas ni adaptarse bien a nuevos datos.Luego, Airbnb exploró estadísticas para mejorar la recuperación de ubicaciones creando un conjunto de datos para cada destino de viaje que registraba dónde los huéspedes reservaban listados cuando buscaban ese destino. Sin embargo, este enfoque estadístico todavía tenía limitaciones y trataba todas las búsquedas de una ubicación de la misma manera, independientemente de los parámetros de búsqueda específicos. Esto llevó a Airbnb a creer que la recuperación de ubicaciones puede requerir técnicas más avanzadas como el aprendizaje automático.Airbnb construyó un modelo de aprendizaje automático que podía aprender de varios parámetros de búsqueda, como el número de huéspedes y la duración de la estancia, y predecir áreas del mapa más relevantes para cada búsqueda. El sistema de aprendizaje automático aumentó la recuperación de listados reservados en un 7,12% y redujo el tamaño del área de recuperación del mapa en un 40,83%, lo que resultó en un impacto acumulado de +1,8% en reservas no canceladas en la plataforma.Luego, Airbnb introdujo el aprendizaje por refuerzo en el proceso de recuperación de ubicaciones, lo que permitió que el sistema aprendiera continuamente de las interacciones de los huéspedes y ajustara el área de recuperación del mapa en función del comportamiento de reserva de los huéspedes. El sistema de aprendizaje por refuerzo exploró con éxito más ubicaciones menos viajadas y exploró menos ubicaciones que son buscadas y reservadas con frecuencia, lo que resultó en un aumento acumulado del 0,51% en reservas no canceladas y un aumento del 0,71% en la tasa de viajes de 5 estrellas.El viaje de Airbnb desde heurísticas simples hasta modelos de aprendizaje automático y aprendizaje por refuerzo sofisticados demuestra el poder de los enfoques basados en datos para transformar sistemas complejos. La transformación resulta en un aumento acumulado del 2,66% en reservas no canceladas, un logro importante para una empresa que opera a la escala de Airbnb.