40
Las APIs en el mundo Cloud Marco Antonio Sanz

El mundo cloud y las apis

  • Upload
    meetup

  • View
    314

  • Download
    4

Embed Size (px)

Citation preview

Las APIs en el mundo Cloud

Marco Antonio Sanz

Índice

❏ ¿Quienes somos?❏ ¿Por qué unir el mundo Cloud y las Apis?❏ ¿Qué es el Cloud?❏ Tipos de Cloud❏ Iaas, Saas, Paas❏ Consideraciones en el desarrollo❏ Api Managers

¿Quienes somos?

Grupo de meetuphttp://www.meetup.com/API-Addicts/

Meetups realizados❏ MADA. Metodología ágil de

definición de APIs❏ Taller: Definición de APIs❏ Taller: Desarrolla tu primera API❏ Seguridad en las APIs❏ Las APis en el mundo Big Data❏ Las APis en el mundo Cloud❏ Apis como modelo de negocio❏ Define y desarrolla tu primera API

Marco Antonio Sanz:http://es.linkedin.com/pub/marco-antonio-sanz-molina-prados/18/335/97/

Patrocinadores

¿qué nos ofrece?➢ know - how de apis➢ Experiencia en el gobierno de Apis➢ Ejemplos de arquitecturas➢ Experiencia en el mundo Cloud

Calle Velasco 13

Tlf: 658 89 75 [email protected] · www.cloudappi.net

¿Por qué unir Cloud y las Apis?

➢ Demanda variable○ Apis públicas○ Backend

➢ Demanda fija???○ Apis internas○ Apis partners

Source: http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf

¿Qué es el mundo Cloud?

Cloud Computing permite el aprovisionamiento dinámico de recursos (computación, almacenamiento…)

Características principales

❏ Elasticidad❏ Pago por uso❏ Configurabilidad (API / web)❏ Seguridad❏ Asignación de recursos bajo

demanda

¿Tipos de Cloud?

● Cloud públicas○ Pago por uso○ Máximo grado de escalabilidad○ Economía de escala○ Fiabilidad○ Flexibilidad○ Independencia de localización

● Cloud privadas○ Mayor seguridad y privacidad○ Mayor control○ Aprovechamiento de infraestructura actual

● Cloud híbridas○ Auna lo mejor de ambas soluciones, utilizando

los recursos de la cloud públicas sólo cuando es necesario

Fuente:http://www.interoute.es/cloud-article/what-hybrid-cloud

¿Tipos de Cloud?

● No hay una regla fija● Dependerá del tamaño de la

empresa y de la infraestructura

● Dependerá de los conocimientos de administración y desarrollo

¿Qué tipo escojo para mi Api?

¿Iaas, Saas, Paas?

● IaaS: Infraestructure as a Service

○ AWS○ Windows Azure○ Google Cloud Platform

● PaaS: Platform as a Service○ App Engine○ Windows Azure○ Heroku

● SaaS: Software as a Service○ Apigee○ Amazon SES

¿Iaas, Saas, Paas?

❏ ¿Existe un administrador de sistemas?

❏ ¿Tengo conocimientos del PaaS?

❏ ¿qué presupuesto tienes?

❏ ¿qué flexibilidad necesitas?

❏ ¿Existe una política de no casarse con ningún cloud dentro de la organización?

❏ ¿Necesitas algún servicio que sólo te puede dar un determinado Cloud?

¿Qué escojo para mi Api?

¿Iaas, Saas, Paas?

AWS

¿Iaas, Saas, Paas?

Google

¿Iaas, Saas, Paas?

Windows Azure

¿Iaas, Saas, Paas?

Open Stack

¿Iaas, Saas, Paas?

Open Stack Red Hat

¿Iaas, Saas, Paas?

¿Cual escojo?

❏ Coste (incluir costes de administración)

❏ ¿Mi Api necesita de algún servicio?

❏ Requisitos legales

❏ ¿Qué control tengo que tener sobre los recursos?

❏ ¿Qué recursos necesitos?

❏ ¿Qué conocimiento tienen los desarrolladores?

❏ ¿Qué requisitos de Big Data tengo?

Consideraciones en el desarrollo

❏ Las Apis deben ser stateless

❏ Autenticación y autorización. ¿Voy a utilizar un Api Manager?

❏ Se debe utilizar el mínimo recurso de computo. ¿La Api necesita más recursos de memoria o de CPU?

❏ Hay que tener cuidado a la hora de almacenar información. ¿Se pueden perder los datos al autoescalar?

❏ Datos estáticos, utilizar un CDN

❏ Normativa legal

❏ Revisar los controles de elasticidad. ¿Podemos conocer la demanda?

❏ Optimización de coste. Se desarrolla pensando en el Cloud

¿Quién no ha calculado el coste utilizando la calculadora de AWS?

Consideraciones en el desarrollo

¿Quién no ha calculado el coste utilizando la calculadora de AWS?

Consideraciones en el desarrollo

Cálculo de costes y mejor instancia

Consideraciones en el desarrollo

❏ Calcular estadísticamente qué servicios se van a utilizar.

❏ Calcular número medio de peticiones hora❏ Estresar (normalmente una hora)

❏ Instancia de más memoria❏ Instancia de más CPU

❏ Sí con una instancia no se alcanzan las peticiones medias, probar la instancia mayor.

❏ ¿Qué obtenemos?❏ Coste por petición❏ Coste apróx

Verificando el cloud

Consideraciones en el desarrollo

❏ Calculamos estadísticamente el máximo de peticiones /hora

❏ Al redimensionar la infraestructura para peticiones media, deberíamos autoescalar

❏ Comprobamos que se autoescala correctamente

❏ Calculamos costes

¿Debo de utilizar un Api Manager?

Api Managers

❏ Dependerá del negocio de la API y sobre todo, de la estrategia de la organización.

❏ Por regla general, todas las APIs que se expongan al exterior deberían ser securizadas por un API Manager.

❏ Las Apis internas a una organización también es aconsejable, debido al mayor control sobre las API

Tipos de Api Manager

Api Managers

On Premise

SaaS

Tipos de Api Manager

Api Managers

Comparativa

Api Managers

Comparativa

Source: http://www.developereconomics.com/api-management-tools-how-to-find-the-one-for-you/

Api Managers

➢ Solución que actúa de proxy entre el API y el cliente.

➢ Gobierno de los productos expuestos:■ Gestión del ciclo de vida■ Gestión de AAA■ Control de cuotas y monetización

➢ Visibilidad y métricas

Características principales

Api Managers

➢ Solución en la nube que actúa de proxy entre el API y el cliente.

➢ Facilidad en la inclusión de políticas de seguridad estándares.

➢ Diferentes mecanismos de autenticación:○ Apikey○ OAuth 2.0

Características principales

Api Managers

➢ Solución on premise (en la nube en modo beta) que actúa de proxy entre el API y el cliente.

➢ Permite la codificación de políticas de seguridad.

➢ Mecanismo de autenticación mediante OAuth 2.0.

Características principales

Api Managers

➢ Integrado con el Cloud➢ Portal del desarrollador➢ Protege y securiza las Apis

Azure Api Management

Api Managers

Ejemplos

Netflix

Ejemplos

Gobierno de Apis

Ejemplos

Arquitectura MEAN

Píldora de conocimiento

Microservicios

Servicios “pequeños” y fáciles de abordar. Cada servicio debe ser monolítico.

Píldora de conocimiento

Docker

Sistema de virtualización ligero

❏ Permite realizar contenedores portables.

❏ Lo están implementando los principales Cloud.

❏ Ideal para microservicios

➢ Web principal de apigee : http://apigee.com➢ Web principal de wso2: http://wso2.com➢ Azure: http://azure.microsoft.com/es-es/documentation➢ AWS: http://aws.amazon.com/es/➢ GAE: https://cloud.google.com/appengine/docs➢ Open Stack: https://www.openstack.org/➢ Red Hat Open Stack: http://www.redhat.com/en/insights/openstack➢ Microservicios: http://www.arquitecturajava.com/que-es-un-microservicio/➢ Docker: https://openwebinars.net/docker-que-es-sus-principales-caracteristicas/

Enlaces de interés

Ruegos y preguntas

Contacta en:

Email: [email protected]

Web:

http://www.meetup.com/APIAddicts

Siguenos en:

➢ Linkedin: ApiAddicts

➢ Twitter: @apiaddicts

➢ Facebook: APIAddicts

➢ Meetup: APIAddicts

Contacta