API de desarrollo en la nube

Las API ofrecen dos capacidades centrales para la nube: autoservicio y automatización. Las API simplifican el desarrollo de aplicaciones, pero existen limitaciones impuestas por la falta de estandarización.

por Stephen J. Bigelow

API de desarrollo en la nube

Las API son una forma común para que los desarrolladores de software interactúen con los servicios, sin preocuparse por el funcionamiento interno de ese servicio o del proveedor de servicios.

Si bien los usuarios de la nube pueden emplear consolas y portales para aprovisionar y controlar recursos, la nube pública también es una opción natural para las API . Echemos un vistazo más de cerca a algunas de las preguntas comunes sobre las API de desarrollo en la nube.

¿Qué son las API en la nube?

Los desarrolladores de aplicaciones utilizan APIs para acceder a los servicios en la nube a través de la comunicación basada en web. Un desarrollador escribe código que llama a la API del proveedor de la nube, pasa los parámetros y argumentos necesarios en el contexto de la llamada y luego examina la respuesta para confirmar la operación.

Una API en la nube permite a los usuarios finales acceder a la aplicación o servicio de un proveedor de nube, como infraestructura informática, recursos de almacenamiento o herramientas de supervisión. Las API definen las posibles características y funciones de esa aplicación o servicio, junto con los detalles necesarios para ejecutarlas. Normalmente, las API se basan en esquemas de comunicación REST o Simple Object Access Protocol ( SOAP ) y se basan en esquemas de autorización como OAuth 2.0 para garantizar la autenticación y la seguridad del usuario.

Piense en una API como un menú para un restaurante. Un menú, o una API, es una interfaz que utiliza para decidir qué pedir. Para hacer un pedido, no necesita un conocimiento extenso sobre cómo el restaurante o el proveedor de servicios opera detrás de escena.

Las nubes públicas se basan en la noción de autoservicio y automatización, por lo que las API son fundamentales para su funcionamiento. De hecho, AWS, Microsoft Azure, Google Cloud Platform y otras plataformas en la nube usan API para impulsar todas sus operaciones de cara al usuario, como cuando los desarrolladores crean nuevo software o cuando usan la consola. Consideremos cómo funciona una API de desarrollo en la nube en AWS como ejemplo.Piense en una API como un menú para un restaurante.

AWS proporciona una amplia gama de API que pueden impulsar cualquier operación o aprovisionamiento. Por ejemplo, la API de Amazon EC2 admite servicios que incluyen instancias de Amazon EC2, Amazon Elastic Block Store, Amazon Virtual Private Cloud y AWS VPN. La API REST de Amazon S3 es compatible con Amazon S3.

Suponga que un desarrollador de software quiere usar AWS para crear hasta tres instancias EC2 usando una imagen de máquina de Amazon llamada ami-60a54010. El desarrollador también desea ubicar esas instancias en una zona de disponibilidad en la región US East-1 y habilitar la supervisión de esas instancias de computación aprovisionadas. El comando de la API de EC2 puede aparecer como:

https://ec2.amazonaws.com/?Action=RunInstances&ImageId=ami-60a54010&MaxCount=3&MinCount=1&Placement.AvailabilityZone=us-east-1b&Monitoring.Enabled=true&AUTHPARAMS

Como se muestra arriba, el comando fundamental de la API es RunInstances , mientras que los parámetros incluyen ImageId , MaxCount , MinCount , Placement.AvailabilityZone y Monitoring.Enabled . Los detalles de cada parámetro son los argumentos de los parámetros. Puede haber cientos de comandos de API. El manual de referencia de la API de Amazon EC2 por sí solo consta de cientos de páginas de documentación.

¿Qué problemas intentan resolver las API en la nube?

El problema principal que abordan las API es la conexión. Las API conectan el software a través de una red. Cuando una empresa crea una aplicación o servicio, se puede crear e implementar una API para permitir que otro software interactúe con ese software.

Las API se diseñan e implementan cuando un servicio es utilizado por múltiples aplicaciones y muchos usuarios desean acceder al mismo servicio. Esto es ideal para la nube pública, donde innumerables usuarios podrían acceder a un servicio como AWS Lambda , o transferir datos a un servicio de almacenamiento.El problema principal que abordan las API es la conexión.

Las API también son adecuadas para aplicaciones que se implementan como múltiples componentes distribuidos. Los componentes de la aplicación recurren a las API de los demás. De esta manera, los componentes se pueden actualizar, escalar de forma independiente y ubicar en ubicaciones distribuidas para un mayor rendimiento y disponibilidad. Un ejemplo de esto son las aplicaciones de microservicios basadas en contenedores que dependen de las API para la comunicación de contenedor a contenedor .

Diferentes aplicaciones dentro de una empresa pueden compartir la misma API. Por ejemplo, varias implementaciones de bases de datos pueden usar la misma API para acceder a la base de datos. Sin embargo, las API suelen ser software exclusivo y especialmente diseñado que rara vez se estandariza entre empresas y desarrolladores. La API desarrollada por una empresa para admitir una aplicación no funcionará para las aplicaciones desarrolladas por otra empresa. Este enfoque es la base de muchos de los problemas relacionados con las API de proveedores de nube, el bloqueo de proveedores y la estandarización de API de nube.

¿Cuáles son las implicaciones financieras del desarrollo de API en la nube?

Los desarrolladores pueden crear aplicaciones potentes más rápido que nunca con las API. Para los proveedores de servicios, las API mantienen el control y la seguridad de los datos. Los proveedores también pueden realizar un seguimiento del uso de la API , lo que la convierte en una fuente de ingresos valiosa y en crecimiento. Cada vez que un desarrollador usa la API de un proveedor, es probable que esté pagando algo por esa llamada, o por cada mil llamadas o cualquiera que sea el caso.

Por ejemplo, el software diseñado para procesar y renderizar datos geográficos podría emplear un servicio en la nube, como Google Maps, para proporcionar mapeo visual y capacidades de ubicación. Esto alivia la necesidad de que una empresa cree sus propios mapas y algoritmos de mapeo, pero no es necesariamente gratuito. Otras plataformas importantes como Facebook, Twitter, Netflix y muchos otros proveedores tienen API que permiten a los desarrolladores externos acceder a servicios y datos.

¿Cómo se clasifican las API en el desarrollo en la nube?

Hay varias formas de clasificar las API. Una forma popular es distinguir entre API específicas del proveedor y API multiplataforma. Una API de nube específica del proveedor está destinada a respaldar los servicios de un proveedor de nube en particular . Por ejemplo, la API de REST de Microsoft Azure está dedicada a los servicios que ofrece la nube pública de Azure, como Azure DevOps, Cosmos DB y Azure Blob Storage . Se puede desarrollar una API en la nube específica del proveedor para abordar todos los matices y características de esa plataforma. Sin embargo, solo funcionará con ese proveedor.

En comparación, una API multiplataforma está destinada a proporcionar una funcionalidad idéntica entre dos o más proveedores de nube. Ejemplos de API multiplataforma incluyen Simple Cloud, parte de Zend Technologies, Apache’s jclouds y Apache’s Libcloud . Los desarrolladores pueden emplear los mismos comandos y parámetros para realizar las mismas tareas independientemente del proveedor de nube real. Sin embargo, esto a menudo conduce a una funcionalidad y un control limitados, por lo que las API específicas del proveedor siguen siendo el tipo de API más popular para los desarrolladores.

Las API de la nube también se pueden clasificar por tipo, como infraestructura, plataforma y software. Las API de IaaS se centran en el aprovisionamiento de recursos informáticos y de almacenamiento. Las API de PaaS están dedicadas a proporcionar arquitecturas o servicios de back-end, como bases de datos. Y las API de SaaS, o aplicaciones, están destinadas a proporcionar conectividad o interoperabilidad con un producto o suite de software, como Microsoft 365.

¿Cómo facilitan las API en la nube la migración de datos?

La portabilidad de las aplicaciones es un concepto central de la computación en la nube moderna y aborda el bloqueo de los proveedores . Los usuarios de la nube pueden querer reubicar los datos en los servicios de otro proveedor si tienen mejores capacidades o precios más bajos. Por ejemplo, una empresa puede optar por mover un conjunto de datos a otra nube si ofrece mejores servicios de inteligencia artificial y aprendizaje automático.

Las API manejan la dinámica real de ejecutar la migración. Las API crean y aseguran un recurso de almacenamiento de destino en una región de nube deseada y luego implementan el proceso de copia. Estos procesos se pueden realizar mediante programación a través de un script. Las acciones ejecutadas por dicho programa invariablemente interactuarían con los proveedores de la nube de origen y destino a través de sus respectivas API, porque todo en la nube pública ocurre a través de las API de todos modos.El progreso hacia cualquier punto en común en el desarrollo de API en la nube ha sido increíblemente lento.

Pero existen servicios en la nube destinados a acelerar la migración de datos en la nube, como AWS Transfer Family o el Servicio de transferencia de Google para datos en la nube. Dichos servicios pueden simplificar el proceso de migración, aunque los servicios seguirán empleando API de proveedores de nube.

En última instancia, las migraciones de datos requieren el uso de API e implican una estrategia comercial clara y una planificación significativa para comprender las compensaciones comerciales, los impactos en el rendimiento y los costos de almacenamiento y movimiento de datos en la nube relacionados con cualquier migración de datos en la nube.

¿Cuáles son algunos de los estándares emergentes en las API de desarrollo en la nube?

Los estándares son atractivos porque cualquier producto o servicio que se adhiera a ellos se comportará de una manera conocida y bien entendida. Los estándares de la nube son fundamentales para las ideas de interoperabilidad y portabilidad de la nube . Por lo tanto, los estándares de API en la nube facilitan a las organizaciones el uso de múltiples nubes.

Sin embargo, las normas suelen ser más una negociación que un obstáculo técnico. Al igual que con cualquier servicio, son los diferenciadores (las características y capacidades solo disponibles con un determinado proveedor) los que hacen que un servicio de nube pública se destaque. Si cada proveedor ofreciera el mismo conjunto de servicios de la misma manera, se perderían los diferenciadores competitivos. De manera similar, la estandarización exige compartir la propiedad intelectual, lo que sería un trago amargo para los proveedores, dadas las inversiones que han realizado en sus plataformas.

El progreso hacia cualquier punto en común en el desarrollo de API en la nube ha sido increíblemente lento porque el mercado de la nube pública es propiedad de tres proveedores principales: AWS, Microsoft y Google. La estandarización solo es económicamente atractiva cuando hay muchos proveedores en competencia y la industria se vería afectada o la adopción fallaría sin ella. Este no es realmente el caso en el mercado actual de la nube pública.

Gráfico: cuota de mercado mundial de la nube pública

Hay algunas iniciativas de estándares que evolucionan silenciosamente, como las API de nube multiplataforma mencionadas anteriormente. Sin embargo, es más probable que los proveedores de la nube adopten estándares de la industria que impulsen un mayor uso o faciliten la implementación de aplicaciones en sus plataformas. Por ejemplo, la adopción de un estándar tecnológico predominante, como Open Virtualization Format ( OVF ), facilita a los usuarios de la nube la creación de imágenes de máquinas adecuadas para una implementación rápida y escalable en la nube. El nombre del archivo de imagen de la máquina que se utiliza como argumento para un parámetro de API suele ser un archivo .ovf, aunque también se pueden admitir otros formatos comunes.

En otros casos, las API en el desarrollo de la nube buscarán respaldar comportamientos críticos como los estándares de seguridad y autenticación, incluidos HIPAA, Estándar de seguridad de datos de la industria de tarjetas de pago, Programa federal de gestión de riesgos y autorizaciones y muchos otros. Las organizaciones que operan en esas industrias estarán mejor equipadas para adoptar una infraestructura de nube pública si esas plataformas se adhieren a los estándares regulatorios.

Fuente: https://searchcloudcomputing.techtarget.com/tip/An-FAQ-on-cloud-APIs-and-application-development

Deja un comentario