</> CodeBooks
    ← Volver a DevOps y contenedores (página 1)
    Portada de Beginning Bazel

    Beginning Bazel

    P.J. McNerney

    Editorial
    Apress
    Año
    2019
    Páginas
    ~192
    Nivel
    Básico

    De qué trata

    Introducción práctica y concisa al sistema de compilación y pruebas de código abierto Bazel (la versión pública de Blaze desarrollada por Google). Publicada por Apress a finales de 2019, la obra se sitúa en los primeros lanzamientos estables de Bazel (versiones 1.x) y está dirigida a ingenieros de software, especialistas en DevOps y líderes técnicos que necesitan compilar y probar proyectos multilenguaje a gran escala. Para aprovechar el libro se requieren conocimientos básicos del uso de la terminal de comandos y nociones de programación en Java, Go o C++.

    El recorrido cubre desde la instalación de Bazel en Linux, macOS y Windows hasta los conceptos fundamentales de la herramienta: espacios de trabajo (WORKSPACE), archivos de configuración BUILD, sintaxis Starlark, paquetes y destinos de compilación (targets). McNerney profundiza en la gestión de dependencias externas, la organización de monorrepositorios y la integración de toolchains para diversos lenguajes y plataformas. Se detallan reglas oficiales para compilar proyectos en Java y Go, la definición y serialización de esquemas agnósticos con Protocol Buffers (Protobuf), la comunicación remota con gRPC y la configuración de compilaciones para aplicaciones móviles nativas en Android (Android SDK) e iOS (reglas para Xcode).

    A través de ejemplos de código progresivos alojados en su repositorio oficial, el lector construye programas cliente/servidor, canalizaciones de generación de código RPC y empaquetados para plataformas móviles bajo un mismo árbol de dependencias reproducible. El libro destaca por desmitificar la curva de aprendizaje de Bazel y enseñar cómo acelerar drásticamente los tiempos de compilación mediante el almacenamiento en caché determinista y hermético. Como contrapartida, no profundiza en la creación de reglas Starlark complejas desde cero ni en la administración de granjas de ejecución remota masivas, y conviene tener en cuenta que en versiones actuales de Bazel el archivo WORKSPACE ha evolucionado hacia Bzlmod (MODULE.bazel), aunque los fundamentos de grafo de compilación y hermeticidad siguen intactos.

    • Bazel
    • Sistemas de compilación
    • Java
    • Go
    • Protocol Buffers
    • gRPC
    • Monorrepositorios
    • Archivos BUILD y WORKSPACE
    • Compilación para Android
    • Compilación para iOS
    • Caché hermética

    ¿Cómo enseña?

    TeóricoPráctico

    Con proyectos

    • ✗ Sin ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Cliente y servidor Echo

    Programa cliente/servidor que demuestra la división de código en paquetes, la gestión de dependencias locales y la definición de reglas de ejecución y prueba en Bazel con Go y Java.

    Servicio de mensajería con gRPC y Protobuf

    Implementación de comunicación cliente/servidor que aprovecha las reglas de Bazel para compilar archivos .proto y generar automáticamente el código de transporte gRPC.

    Flujos de compilación móvil para Android e iOS

    Estructuración y compilación de proyectos móviles cliente utilizando las reglas nativas de Bazel para empaquetar binarios de Android y aplicaciones para iOS.

    Más de DevOps y contenedores con nivel Básico