Con la adopción de DevOps, las organizaciones han detectado que, al cambiar las decisiones y las tareas a una fase más temprana del ciclo de vida de desarrollo, pueden identificar y reducir los riesgos en sus proyectos de desarrollo. Este proceso se suele denominar "cambio a la izquierda". Como consecuencia, se pide a los desarrolladores modernos que hagan más para lanzar funciones a sus clientes. Se espera que diseñen arquitecturas de software escalables, desarrollen código seguro y eficiente, configuren la infraestructura, realicen pruebas, implementen y monitoricen sus aplicaciones, y mucho más. Aunque este enfoque genera muchos beneficios, también deja menos tiempo a los desarrolladores para escribir código, lo que puede provocar efectos no deseados en la calidad del software o retrasos en el lanzamiento de nuevas funciones.
Del mismo modo que los ingenieros de DevOps se centran en optimizar el envío de software a los clientes externos, como ingeniero de plataformas, tu prioridad es crear una plataforma que ofrezca experiencias fluidas y coherentes a tus clientes internos (es decir, a los desarrolladores). ¿Cómo es la creación de una plataforma interna? Entre tus tareas diarias se debe incluir la creación de experiencias estandarizadas para tus desarrolladores que proporcionen autonomía. De este modo, reducirás la sobrecarga cognitiva para tus clientes internos al desarrollar e implementar nuevos servicios. Una plataforma interna para desarrolladores incorpora determinadas decisiones, estándares y procesos para crear procesos para los desarrolladores. De esta forma, los desarrolladores pueden centrarse en programar y, por tanto, mejorar la experiencia de software de sus clientes. Es decir, además de mover ciertas tareas a etapas más tempranas, las organizaciones también deben desplazar parte de la responsabilidad "hacia abajo" y asignarla a niveles más bajos de la plataforma:
A la hora de desarrollar APIs para que los desarrolladores puedan sacar el máximo partido de tus plataformas, debes hacer lo siguiente:
Una buena aplicación es meditada y coherente en la oferta de productos y servicios. Oculta la complejidad y hace que su funcionamiento sea fluido y agradable de usar. El objetivo final siempre debe ser ofrecer una experiencia de calidad al usuario. Las organizaciones que desarrollan productos de éxito siempre empiezan de fuera hacia adentro, teniendo en cuenta sobre todo a sus usuarios. Para ofrecer una experiencia de calidad, es imprescindible que los desarrolladores creen aplicaciones inspiradoras. Para ello, es fundamental proporcionar APIs de calidad. Las buenas APIs eliminan las complejidades de la organización, lo que permite a los desarrolladores centrarse en crear la experiencia de usuario. Sin embargo, las buenas APIs no aparecen de la nada. Estas organizaciones también tratan sus APIs como si fueran productos digitales y dedican equipos enteros a su creación y gestión como una función clave de sus plataformas.
La plataforma que usan los desarrolladores para crear productos digitales también debe tratarse como un producto y, por tanto, los equipos de ingeniería de la plataforma también deben abordar a sus usuarios, los desarrolladores, de fuera hacia adentro para conocer sus requisitos y crear una experiencia que les resulte agradable. Tu responsabilidad como ingeniero de plataforma es crear, compilar y unificar plantillas y herramientas internas que tus desarrolladores puedan utilizar en el desarrollo de software, ya sea para desarrollar aplicaciones de frontend o servicios de backend, o para producir y consumir APIs. La función de tu equipo es establecer cómo se debe probar, proteger, desplegar y gestionar el software que está creando tu organización. Acabar con los silos facilita la creación de APIs.
Al igual que en otros aspectos del desarrollo de software, tu equipo debe disuadir a los desarrolladores de volver a crear de forma individual elementos de arquitecturas de APIs que resulten una preocupación general. En vez de eso, ofréceles un conjunto de herramientas y opciones de configuración sencillas que puedan aprovechar desde el primer momento. Estos son algunos de los aspectos de la gestión de APIs que mejor se gestionan en tu plataforma:
Apigee es una plataforma de gestión de APIs que proporciona a los equipos que utilizan plataformas y a sus clientes internos un conjunto de funciones para desarrollar, gobernar y operar APIs de forma más eficaz.
Apigee ayuda a los productores a desarrollar y gestionar las APIs que exponen su lógica empresarial. Para ello, proporciona a los desarrolladores capas adicionales de seguridad, descubrimiento y observabilidad. Los equipos de producto pueden agrupar y publicar sus APIs como conjuntos flexibles de "productos" con comportamientos de consumo variables. Apigee también ayuda a los consumidores de APIs a saber fácilmente qué productos de APIs están disponibles, consultar la documentación y comenzar a usar rápidamente el programa para empezar a desarrollar aplicaciones sin complicaciones. Ahora, con la ayuda de la IA generativa, Apigee también está rediseñando la forma en que se desarrollan las APIs, lo que facilita a los desarrolladores experimentados y nuevos la gestión de las comunicaciones entre sus sistemas.
El proceso de gestión de las APIs en Apigee comienza con la creación de proxies de APIs. Un proxy de API muestra la interfaz que utilizan los desarrolladores para acceder a los servicios de backend. En lugar de consumir esos servicios directamente, acceden a un proxy de APIs de Apigee que crea el productor. Con un proxy, puedes separar el backend de la API, lo que ofrece a los clientes una experiencia más fiable. Esto te permite actualizar y hacer cambios en tu backend sin que ello afecte a tu cliente. Los equipos de APIs pueden aprovechar las funciones que ofrece el proxy para proteger y controlar el comportamiento de sus APIs. Para que un programa de APIs se escale con éxito a medida que crece el número de equipos de producción y consumo, la plataforma debe habilitar procedimientos a través de flujos de procesamiento de automatización sin interrupciones y funciones reutilizables.
Supongamos que tu empresa quiere crear APIs nuevas que pueda monetizar para generar ingresos adicionales. Tu equipo se reúne con los desarrolladores para elaborar una estrategia exhaustiva sobre la creación de estas nuevas APIs. A continuación, el trabajo de tu equipo consiste en estandarizar estos requisitos y convertirlos en plantillas de API minuciosas que contengan políticas comunes, controles de enrutamiento del tráfico y convenciones de gestión de errores. Según el caso práctico, es posible que existan conjuntos de plantillas que puedan aplicarse. Un caso práctico habitual podría ser proporcionar políticas de almacenamiento en caché o de transformación para backends antiguos que se ejecutan en entornos on-premise. El repositorio de muestras de Apigee es un buen punto de partida. Nuestro repositorio de DevRel también incluye plantillas de proxy de ejemplo a modo de referencia. Además de las plantillas de políticas, los equipos de tu plataforma también pueden estandarizar los flujos de procesamiento que los desarrolladores consumirán para crear y desplegar sus proxies. Apigee ofrece APIs y herramientas de gestión que puedes aprovechar para crear flujos de procesamiento de CI/CD compatibles con estos procedimientos. Hemos publicado implementaciones de referencias que puedes usar como punto de partida.
Un flujo de procesamiento del proxy de API de MVP a partir del código fuente puede tener un aspecto similar a este:
Para ir un paso más allá, es posible que el flujo de procesamiento registre la API en un catálogo interno, como el centro de APIs de Apigee. El centro de APIs es una herramienta que ayuda a las organizaciones a documentar, encontrar y publicar información sobre sus APIs. El registro integrado en el hub contiene información detallada sobre cada versión de una API a medida que avanza a lo largo de su ciclo de vida, incluidas las especificaciones asociadas, los despliegues actuales, la información de propiedad y contacto, las dependencias y mucho más. Además de las propiedades integradas, los clientes pueden definir sus propias taxonomías, en las que los usuarios pueden buscar y aplicar filtros. Para mejorar aún más la calidad y la coherencia, el Centro de APIs también ofrece gráficos de resultados que ayudan a los desarrolladores a entender mejor cómo cumplen los estándares esperados los diseños de sus APIs. El registro del centro de APIs se puede sincronizar con portales internos para desarrolladores, como Backstage u otras herramientas de la plataforma interna para desarrolladores.
Por último, para los consumidores externos, el flujo de procesamiento puede publicar productos de API en un portal de API público junto con documentación adicional y guías de usuario, todo ello con estilos y branding personalizados.
Al crear APIs a gran escala, se recomienda reutilizar las políticas comunes para agilizar el desarrollo y reducir los tiempos de entrega. En Apigee, los flujos compartidos te permiten aplicar la estandarización y la coherencia en todas tus APIs. Con los flujos compartidos, puedes combinar políticas y recursos y compartirlos entre varios proxies de APIs mediante una política FlowCallout o enlaces de flujo. Los flujos compartidos se suelen desarrollar de forma independiente a los proxies de APIs. Por lo general, se ocupa de su desarrollo el equipo de la plataforma o los expertos en la materia responsables de ciertas áreas. Por ejemplo, puedes desarrollar un flujo compartido que capture un conjunto estándar de campos de solicitud y respuesta y los escriba en Cloud Logging. También puede ser un flujo de gestión de errores que genere mensajes de error y códigos de error estandarizados, o un flujo de autenticación que se integre con un proveedor de identidades externo. El desarrollo de flujos compartidos se puede automatizar, probar y desplegar usando las mismas herramientas y conceptos que los proxies de APIs. Puedes consultar otros ejemplos de flujos compartidos comunes aquí.
GitOps ganó popularidad durante el auge de DevOps. Se trata de un framework que utiliza las prácticas recomendadas, como el control de versiones mediante Git, solicitudes de extracción, flujos de procesamiento de CI/CD, automatización y políticas de cumplimiento. En este blog puedes obtener información detallada sobre las prácticas recomendadas de distribución con la API. Estas prácticas se pueden incluir en los procedimientos de los desarrolladores. Por ejemplo, un desarrollador puede diseñar una API con Duet AI para crear una especificación OpenAPI antes de enviarla a una rama de funciones, lo que activaría una solicitud de extracción. Una vez aprobada y combinada la solicitud de extracción, se pone en marcha automáticamente el flujo de procesamiento de CI/CD, y el proceso se repite en cada entorno. En Apigee, los equipos de tu plataforma pueden crear organizaciones y entornos independientes para desplegar y probar proxies a medida que avanzan en el ciclo de vida de desarrollo. Mediante una estrategia de GitOps, cada rama del repositorio de Git se puede asignar a un entorno de Apigee.
Los clientes que utilizan el modelo de pago por uso de Apigee pueden elegir entre diferentes tipos de entorno con distintas funciones. Además, pueden crear una gama de tipos de entorno para cada caso práctico.
Al alojar tu proxy y código de flujo compartido en repositorios de código fuente y utilizar GitOps, puedes crear procedimientos definidos para tus desarrolladores de APIs, lo que les permite a ellos centrarse en diseñar APIs increíbles y en implementar la lógica empresarial subyacente. Para facilitar aún más este proceso, los desarrolladores también pueden desarrollar y hacer pruebas de forma local con el complemento Cloud Code para VS Code.
Una mejor colaboración entre el desarrollador y el equipo de la plataforma libera al primero de tener que ocuparse de todo el trabajo. Al reducir la complejidad, el desarrollador puede centrarse en lo que mejor sabe hacer, lo que se traducirá en una mejor experiencia para el cliente. Si tratas tus APIs y tu plataforma como productos de tu organización, aumentarás la autonomía, la velocidad, la calidad y la innovación. Si sigues las estrategias descritas anteriormente, puedes reducir la carga de tus desarrolladores y ayudarles a crear mejores APIs. ¿Empezamos? Puedes registrarte y empezar a crear en tu propio entorno aislado gratuito de forma gratuita. ¿Quieres información más detallada sobre los precios? Consulta las nuevas tarifas de Apigee y utiliza nuestros recursos para empezar a integrar la gestión de APIs en tu plataforma para desarrolladores.