Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
APIOps es una metodología que aplica los conceptos de GitOps y DevOps a la implementación de API. Al igual que DevOps, APIOps ayuda a los miembros del equipo a realizar cambios fácilmente e implementarlos de forma iterativa y automatizada. Esta arquitectura muestra cómo puede mejorar todo el ciclo de vida de la API y la calidad de la API mediante APIOps.
Arquitectura
Descargue un archivo de Visio de esta arquitectura.
Flujo de trabajo
Los operadores de API ejecutan la canalización de extractor de para sincronizar el repositorio de Git con la instancia de API Management y rellenar el repositorio de Git con objetos de API Management en el formato necesario.
Si se detecta un cambio de API en la instancia de API Management, se crea una solicitud de incorporación de cambios (PR) para que los operadores la revisen. Los operadores combinan los cambios en el repositorio de Git.
Los desarrolladores de API clonan el repositorio de Git, crean una rama y crean definiciones de API mediante la especificación de OpenAPI o las herramientas que prefieran.
Si un desarrollador envía cambios al repositorio, se crea un PR para su revisión.
El PR se puede aprobar o revisar automáticamente, dependiendo del nivel de control que se requiera.
Una vez aprobados y fusionados los cambios, la canalización de publicación implementa los últimos cambios en la instancia de API Management.
Los operadores de la API crean y modifican las políticas de API Management, diagnósticos, productos y otros objetos relevantes, y luego confirman los cambios.
Los cambios se revisan y se fusionan después de su aprobación.
Después de fusionar los cambios, la canalización de publicación implementa los cambios utilizando el proceso de definición de la API.
Componentes
Azure API Management es un servicio administrado que crea puertas de enlace de API coherentes para los servicios back-end. En esta arquitectura, enruta las llamadas API, comprueba las credenciales, aplica cuotas de uso y registra metadatos. Sirve como plataforma central para administrar y publicar API.
Azure DevOps es un conjunto de herramientas y servicios de desarrollo que administra el ciclo de vida de desarrollo. En esta arquitectura, admite la planeación, la administración de código y la implementación automatizada de LAS API, lo que permite a los equipos colaborar y simplificar la entrega de API.
Azure Pipelines es un servicio basado en la nube que permite la integración continua y la entrega continua (CI/CD). En esta arquitectura, automatiza las pruebas, la compilación e implementación de cambios de API en la instancia de API Management.
Azure Repos es un conjunto de herramientas de control de versiones, incluido Git estándar, que puede usar para administrar el código. En esta arquitectura, almacena definiciones de API, directivas y configuraciones. Sirve como la única fuente confiable de información para todos los cambios y permite la auditoría y la colaboración a través de solicitudes de incorporación de cambios.
Alternativas
Esta solución admite Azure Repos para proporcionar funcionalidad de Git y Azure Pipelines para flujos de trabajo de CI/CD.
También admite GitHub para el control de código fuente y la colaboración, junto con Acciones de GitHub para automatizar las canalizaciones de compilación, prueba e implementación.
Puede usar cualquier tecnología comparable que proporcione funcionalidades de CI/CD y control de versiones similares.
Detalles del escenario
APIOps usa el control de versiones para administrar las API y crear una pista de auditoría de los cambios en las API, las directivas y las operaciones.
Los desarrolladores de API que usan la metodología APIOps revisan y auditan las API antes y con más frecuencia, detectando y resolviendo desviaciones de los estándares de API con mayor rapidez para mejorar las especificaciones y la calidad de la API. Cuantas más API se construyan y desplieguen con un enfoque de APIOps, mayor será la coherencia entre las API.
Posibles casos de uso
- Cualquier organización que desarrolle y administre las API. Puede empezar a usar APIOps incluso con una sola API expuesta en API Management.
- Sectores altamente regulados: seguros, banca, finanzas, gobierno
Consideraciones
Estas consideraciones implementan los pilares de Azure Well-Architected Framework, que es un conjunto de principios rectores que puede usar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Well-Architected Framework.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el uso indebido de sus valiosos datos y sistemas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para seguridad.
Esta solución proporciona varias ventajas relacionadas con la seguridad. Los desarrolladores individuales, e incluso los operadores, no acceden directamente a la instancia de API Management para aplicar cambios o actualizaciones. Los usuarios envían los cambios a un repositorio Git, y el extractor y los canales de publicación los leen y los aplican a la instancia de API Management. Este enfoque sigue el procedimiento recomendado de seguridad de privilegios mínimos al no conceder permisos de escritura a los equipos en la instancia del servicio API Management. En escenarios de diagnóstico o de solución de problemas, puede conceder permisos elevados durante un tiempo limitado en función de cada caso.
Para asegurarse de que las instancias de API Management usan procedimientos recomendados para la seguridad, puede ampliar esta solución para aplicar los procedimientos recomendados de API mediante herramientas que no son de Microsoft y pruebas unitarias. Los equipos pueden proporcionar comentarios oportunos a través de la revisión de PR si los cambios propuestos en una API o política infringen las normas.
Además de la tarea de configurar los permisos del repositorio, considere la posibilidad de implementar las siguientes medidas de seguridad en los repositorios Git que se sincronizan con las instancias de API Management:
- Revisión de solicitud de incorporación de cambios (PR): use ramas y proteja las ramas que representan el estado de las instancias de API Management de tener cambios insertados en ellas directamente. Exigir que los PR tengan al menos un revisor para hacer cumplir el principio de los cuatro ojos.
- Historial inmutable: solo permite nuevas confirmaciones sobre los cambios existentes. El historial inmutable es especialmente importante para fines de auditoría.
- Autenticación multifactor: requerir que los usuarios activen la autenticación en dos fases.
- Confirmaciones firmadas: permite solo confirmaciones firmadas que no se pueden modificar después del hecho.
Optimización de costos
La optimización de costos se centra en formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costos.
Use la calculadora de precios de Azure para calcular los costos de los componentes de Azure en esta arquitectura.
Los costos de licencias de Azure DevOps deben tenerse en cuenta para los equipos que implementan APIOps. Todos los usuarios que participan en el proceso de APIOps deben tener una licencia de Azure DevOps adecuada. Para más información, consulte Precios de Azure DevOps.
Para obtener información sobre precios y licencias al usar GitHub, consulte Precios de GitHub y licencias de GitHub Enterprise.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la excelencia operativa.
APIOps puede aumentar la productividad de DevOps para el desarrollo y la implementación de API. Una de las características más útiles es la capacidad de usar operaciones de Git para revertir los cambios que se comportan inesperadamente. El grafo de confirmaciones contiene todos las confirmaciones, por lo que puede ayudar con el análisis final.
Los operadores de API suelen administrar varios entornos para el mismo conjunto de API. Es normal tener varias etapas de una API implementadas en diferentes instancias de API Management o en una instancia compartida de API Management. El repositorio de Git, que es el único origen de certeza, muestra qué versiones de las aplicaciones están implementadas actualmente en un clúster.
Cuando alguien hace una PR en el repositorio Git, el operador de la API sabe que tiene un nuevo código que revisar. Por ejemplo, cuando un desarrollador toma la especificación de OpenAPI y compila la implementación de la API, agregan este nuevo código al repositorio. Los operadores pueden revisar el PR y asegurarse de que la API que se envió para su revisión cumple con los procedimientos recomendados y estándares más adecuados.
APIOps tiene muchos beneficios, pero a medida que crecen los entornos de API Management, también lo hace la complejidad de su administración. Esta solución ayuda a satisfacer desafíos como:
- Mantener una visión general de todos los entornos e instancias de API Management.
- Realizar un seguimiento de los cambios críticos en las API y políticas.
- Crear una pista de auditoría para todos los cambios implementados.
Implementación de este escenario
Para obtener instrucciones paso a paso sobre cómo configurar canalizaciones de extractor y publicador, consulte la documentación de APIOps para Azure API Management .
El flujo de trabajo de implementación incluye:
- Extracción de configuraciones de API de API Management.
- Creación de pull requests para su revisión.
- Publicación de cambios aprobados a través de canalizaciones de CI/CD.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autores principales:
- Wael Kdouh | Arquitecto principal de soluciones
- Rishabh Saha | Arquitecto principal de soluciones
Para ver perfiles de LinkedIn no públicos, inicie sesión en LinkedIn.
Pasos siguientes
- APIOps para Azure API Management
- CI/CD para la gestión de API mediante plantillas de Azure Resource Manager
- Introducción a GitOps