Chakray wso2-apm19-release-20150704 (1)

24
www.chakray.com Novedades WSO2 APM 1.9 Luis Peñarrubia Peñalba Desde Chakray Consulting hemos querido realizar una exhaustiva revisión a la nueva versión 1.9 del producto WSO2 APM (WSO2 API Manager) recién lanzada al mercado. En este documento explicaremos todas las novedades sobre uno de los productos del stack WSO2 que día a día va ganando más peso en los proyectos de integración.

Transcript of Chakray wso2-apm19-release-20150704 (1)

Page 1: Chakray wso2-apm19-release-20150704 (1)

w w w . c h a k r a y . c o m

Novedades WSO2 APM 1.9

Luis Peñarrubia Peñalba

Desde Chakray Consulting hemos querido realizar una exhaustiva revisión a la nueva versión

1.9 del producto WSO2 APM (WSO2 API Manager) recién lanzada al mercado. En este

documento explicaremos todas las novedades sobre uno de los productos del stack WSO2

que día a día va ganando más peso en los proyectos de integración.

Page 2: Chakray wso2-apm19-release-20150704 (1)

2

Por Luis Peñarrubia IT Consultant

Introducción

Desde Chakray Consulting hemos querido realizar una exhaustiva revisión a la nueva

versión 1.9 del producto WSO2 APM1 (WSO API Manager) recién lanzada al mercado.

En este documento explicaremos todas las novedades sobre uno de los productos del

stack WSO2 que día a día va ganando más peso en los proyectos de integración.

Comenzaremos realizando una pequeña introducción a WSO2 APM, a continuación

detallaremos una a una todas las novedades incorporadas y finalizaremos explicando

cómo migrar desde versiones anteriores.

1. Introducción a WSO2 APM

2. Novedades WSO2 APM 1.9

3. Migración desde versiones anteriores

4. Más información

1 http://wso2.com/api-management/

Page 3: Chakray wso2-apm19-release-20150704 (1)

3

Por Luis Peñarrubia IT Consultant

1. Introducción a WSO2 APM

WSO2 APM es una plataforma open source para la gestión de APIs. Es la herramienta

ideal para exponer y gestionar el ciclo de vida de las APIs de nuestra organización. Entre

las principales características de WSO2 APM se encuentran:

Publicación de APIs

Tienda de APIs

Gestión de la subscripción a las APIs

Gestión de los tokens de autenticación

Throttling

Estadísticas de acceso y uso de las APIs

Arquitectura distribuida y escalable

Como todos los productos del stack de WSO2, está construido sobre la premiada

plataforma WSO2 Carbon y tiene un licenciamiento Apache 2.0.

Page 4: Chakray wso2-apm19-release-20150704 (1)

4

Por Luis Peñarrubia IT Consultant

El diagrama anterior muestra la arquitectura lógica de WSO2 APM. Donde podemos

diferenciar sus 4 componentes principales.

API Publisher: Aplicación web destinada a la creación, publicación y gestión del

ciclo de vida de nuestras APIs. Es por tanto una aplicación destinada a los

desarrolladores de las APIs.

API Store: Aplicación web destinada a la evaluación y subscripción de las APIs.

Es por tanto una aplicación destinada a los consumidores de las APIs.

API Gateway: Es el componente encargado de procesar en tiempo de ejecución

las peticiones a las APIs. Aplicando la seguridad, throttling y SLAs definidos en

cada una de las APIs.

API Key Manager: Es el componente encargado de validar en tiempo de

ejecución que el token de autenticación enviado es el correcto para nuestra API.

Destacar que estos 4 componentes pueden distribuirse en diferentes servidores /

máquinas virtuales. Proporcionándonos flexibilidad y lo más importante, una gran

escalabilidad a nuestra arquitectura.

WSO2 APM no provee por si sólo de un sistema de monitorización y analítica de

nuestras APIs, pero está diseñado para ser fácilmente integrado con WSO2 BAM2 que

sí nos ofrece dichas funcionalidades.

Adicionalmente WSO2 APM puede integrarse fácilmente con WSO2 IS3 permitiendo

implementar políticas de acceso complejas a nuestras APIs, por ejemplo XACML4.

2 http://wso2.com/products/business-activity-monitor/ 3 http://wso2.com/products/identity-server/ 4 https://en.wikipedia.org/wiki/XACML

Page 5: Chakray wso2-apm19-release-20150704 (1)

5

Por Luis Peñarrubia IT Consultant

2. Novedades WSO2 APM 1.9

La nueva versión 1.9 de WSO2 APM ha sido publicada hace escasos días,

concretamente el 17 de Junio. Entre las principales novedades se encuentran:

Integración con servidores externos de autenticación y gestión de tokens

(Oauth25).

Actualización a Swagger6 2.0.

Versionado de APIs por grupos.

Compartición de aplicaciones y suscripciones entre usuarios del mismo grupo.

Exportación e importación de APIs

2.1. API de ejemplo

En esta versión de incluye una API de ejemplo que puede ser desplegada con un simple

clic de botón. Muy útil para la realización de demos o para las personas que

desconozcan el producto y quieran familiarizarse con él.

5 http://oauth.net/2/ 6 http://swagger.io/

Page 6: Chakray wso2-apm19-release-20150704 (1)

6

Por Luis Peñarrubia IT Consultant

2.2. Creación de APIs

En las versiones anteriores debíamos crear nuestras APIs desde cero. Es decir, aunque

dispusiésemos de la definición de nuestra API, era necesario introducirla manualmente

en el sistema. Se han añadido dos opciones más, especialmente pensadas para

acelerar la creación de APIs de las cuales ya disponemos de su definición.

Si disponemos de la definición de nuestra API en formato Swagger, simplemente

deberemos importarla. Pudiendo importar la definición desde un fichero o una URL.

Page 7: Chakray wso2-apm19-release-20150704 (1)

7

Por Luis Peñarrubia IT Consultant

De la misma forma, si disponemos del WSDL7 de un endpoint SOAP8, también

podremos importarlo y de esta forma, facilitar la creación de la API.

2.3. Editor Swagger

Se ha incorporado un potente editor Swagger, de manera que además de gráficamente,

podemos modificar la definición de nuestra API directamente en Swagger.

El editor Swagger está dividido en dos columnas. En la columna de la izquierda se

encuentra la definición de la API en formato YAML y en la columna de la derecha su

representación gráfica.

7 http://www.w3.org/TR/wsdl 8 https://en.wikipedia.org/wiki/SOAP

Page 8: Chakray wso2-apm19-release-20150704 (1)

8

Por Luis Peñarrubia IT Consultant

Desde dicho editor podemos modificar la definición de la API y descargarla en formato

YAML o JSON. Todos los cambios que realicemos se verán inmediatamente reflejados

en la representación gráfica.

Como ya se ha adelantado, en esta versión se actualizado la versión soportada de

Swagger de la 1.2 a la 2.0.

2.4. Versionado de API por grupos

Otra importante novedad es que en esta versión podemos definir la versión de nuestra

API como parte de nuestro contexto. Es decir, podemos especificar la versión de nuestra

API al principio, en medio o al final del contexto. Permitiéndonos agrupar nuestras APIs

por grupos.

Page 9: Chakray wso2-apm19-release-20150704 (1)

9

Por Luis Peñarrubia IT Consultant

Recordemos que en las versiones anteriores, la versión de la API se podía especificar

únicamente después del contexto.

2.5. Implementación de APIs

Desde la versión 1.7 de WSO2 APM, para la creación de una API debemos seguir tres

pasos: Diseño, Implementación y Gestión.

Todas las novedades vistas hasta el momento hacían referencia al paso de diseño de

la API. En cuanto a la implementación de la API, en esta versión no se incorporan

nuevas funcionalidades, pero sí se ha mejorado a nivel de interfaz gráfica, quedando

más claros los pasos a seguir.

Page 10: Chakray wso2-apm19-release-20150704 (1)

10

Por Luis Peñarrubia IT Consultant

En el caso que nuestra API ya se encuentre implementada, deberemos especificar los

datos de conexión a su endpoint: tipo de endpoint, URL, seguridad, etc.

En cambio, si aún no se encuentra implementada nuestra API, podremos prototiparla.

Es decir, podremos apuntar a un endpoint prototipo de la API o podremos implementar

un servicio mock9 de la API utilizando Javascript.

9 https://en.wikipedia.org/wiki/Mock_object

Page 11: Chakray wso2-apm19-release-20150704 (1)

11

Por Luis Peñarrubia IT Consultant

2.6. Publicando a múltiples Gateways

En el último paso de la creación de una API, el paso de Gestión, se ha añadido una

interesante novedad. Ahora podemos publicar nuestra API en diferentes Gateways

desde la interfaz gráfica, ya sean de tipo productivo, de prueba o híbridos.

Permitiéndonos acceder a la misma API desde diferentes entornos, utilizando

obviamente los correspondientes tokens de cada uno de ellos.

Page 12: Chakray wso2-apm19-release-20150704 (1)

12

Por Luis Peñarrubia IT Consultant

2.7. Business Owner

En esta versión se introduce el concepto de Business Owner (dueño de la API). En el

último paso de la creación de la API, paso de Gestión, podemos definir dicha

información.

En versiones anteriores no existía este metadato, de forma que en el API Store, los

consumidores de la API veían como dueño de la API el usuario que la había publicado.

Page 13: Chakray wso2-apm19-release-20150704 (1)

13

Por Luis Peñarrubia IT Consultant

En cambio, en esta versión los consumidores verán en el API Store el Business Owner

como dueño de la API. Remarcar que si no se define un Busines Owner de la API,

seguirá apareciendo el usuario que publica la API como su dueño.

2.8. Importación y exportación de APIs

En esta versión se incorpora una herramienta construida en JAX-RS10 para la

importación y exportación de APIs.

10 https://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services

Page 14: Chakray wso2-apm19-release-20150704 (1)

14

Por Luis Peñarrubia IT Consultant

Está útil herramienta nos permitirá exportar nuestra API e importarla en diferentes

entornos. Es decir, una vez tengamos finalizada la API en el entorno de desarrollo,

podremos exportarla e importarla en los posteriores entornos (por ejemplo, pre-

producción y producción).

Remarcar que en la exportación no perderemos ninguna información de la API. Es decir,

las imágenes, metadatos, custom sequences, documentos, etc. asociados a la API

también se exportarán.

Para más información sobre esta herramienta:

https://docs.wso2.com/display/AM190/Export+and+Import+APIs

2.9. Integración son Key Servers externos

Una de las destacadas novedades en esta versión, es que WSO2 APM puede integrarse

con Key Servers externos para el registro de aplicaciones, generación y validación de

tokens.

Esta funcionalidad está especialmente pensada para organizaciones que ya disponen

de su Key Server y ya disponen de claves para sus APIS.

Page 15: Chakray wso2-apm19-release-20150704 (1)

15

Por Luis Peñarrubia IT Consultant

Como se puede ver en el diagrama anterior, el API Gateway continúa delegando la

validación de tokens en el API Key Manager. De la misma manera, el API Store continúa

delegando el registro de aplicaciones y la generación de tokens en el API Key Manager.

Finalmente el API Key Manager será quien delegará dichas funciones en el Key Server

externo.

Para integrar el API Key Manager con el Key Server externo de deben implementar dos

interfaces.

La interfaz KeyManager es la encargada de implementar las acciones requeridas por el

API Store (registro de aplicaciones y generación de tokens). Mientras que la interfaz

KeyValidationHandler es la encargada de implementar las acciones requeridas por el

API Gateway (validación de tokens).

2.10. Mapeo de aplicaciones a claves existentes

Esta nueva funcionalidad está orientada a aquellos que dispongan de su Key Server

externo y quieran reutilizar sus claves existentes.

Page 16: Chakray wso2-apm19-release-20150704 (1)

16

Por Luis Peñarrubia IT Consultant

Simplemente deberemos indicar en nuestra suscripción que queremos proveer las

claves en vez de generarlas.

El mapeo a realizar es muy sencillo. El ClientId existente será el Consumer key y el

ClientSecret existente será el Consumer secret.

2.11. Cambio de contraseña

Se ha incorporado la funcionalidad de cambio de contraseña de nuestro usuario en el

API Store. Recordemos que esto no era posible en versiones anteriores.

Page 17: Chakray wso2-apm19-release-20150704 (1)

17

Por Luis Peñarrubia IT Consultant

2.12. Compartiendo aplicaciones y suscripciones

En versiones anteriores, las aplicaciones y suscripciones creadas por un usuario

únicamente eran visibles por él. En esta versión, las aplicaciones y suscripciones son

compartidas entre los usuarios del mismo grupo.

Por defecto el grupo al que pertenece un usuario es su Organización, la cual podemos

definir en su perfil.

Page 18: Chakray wso2-apm19-release-20150704 (1)

18

Por Luis Peñarrubia IT Consultant

Si queremos que el grupo de un usuario se decida siguiendo otros criterios (grupo del

LDAP11, SAML12 basado en SSO13, Audit login, etc.), simplemente deberemos configurar

nuestro GroupingExtractor.

Remarcar que el grupo al que pertenece un usuario se decide en el momento en el que

se hace login en la API Store. Por tanto, nuestro custom GroupingExtractor deberá

implementar la interfaz LoginPostExecutor.

11 https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol 12 https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language 13 https://en.wikipedia.org/wiki/Single_sign-on

Page 19: Chakray wso2-apm19-release-20150704 (1)

19

Por Luis Peñarrubia IT Consultant

2.13. Scopes de la API

Los Scopes fueron introducidos hace un par de releases y nos permiten definir diferentes

políticas de acceso a nivel de resource de la API. Hasta el momento, en el API Store no

era posible saber los Scopes de una API a no ser que el developer lo detallará

explícitamente en su documentación.

En esta versión, además de poder ver los Scopes definidos en la API, podemos

asociar los tokens a los Scopes de la API.

Page 20: Chakray wso2-apm19-release-20150704 (1)

20

Por Luis Peñarrubia IT Consultant

2.14. UI para configurar API Analytics

Como en versiones anteriores, la analítica de las APIs sigue delegándose en WSO2

BAM. En esta versión, se ha mejorado su integración añadiendo una interfaz gráfica (UI)

en el Admin Dashboard, con campos autocompletables que nos facilitan su

configuración, y más importante aún, nos evitan tener que editar manualmente ficheros

de configuración. Esto nos permite realizar toda la configuración necesaria en caliente

sin necesidad de reiniciar el servidor.

Una vez realizada correctamente la configuración, se instalará automáticamente en

WSO2 BAM el toolbox. Recordemos que esto debía hacerse manualmente en las

versiones anteriores.

2.15. Mejorados los gráficos para Analytics

Los gráficos que se muestra en el API Publisher también han sido actualizados y

mejorados. En esta versión los gráficos utilizan D3js14 como librería gráfica.

14 http://d3js.org/

Page 21: Chakray wso2-apm19-release-20150704 (1)

21

Por Luis Peñarrubia IT Consultant

2.15. Mejorada integración con WSO2 IS

En el caso que utilicemos WSO2 IS como Key Manager, su integración se ha

simplificado y mejorado en esta versión. Las aplicaciones que creemos en el API Store,

se mapearan automáticamente en WSO2 IS como service provider. Permitiendo por

tanto el uso de funcionalidades propias de un service provider, como login basado en

SAML o login Social entre muchas otras.

Page 22: Chakray wso2-apm19-release-20150704 (1)

22

Por Luis Peñarrubia IT Consultant

3. Migración desde versiones anteriores

Como ya ocurría en las versiones anteriores, si ya disponemos de una instalación de

WSO2 APM funcionando y queremos migrarla a la última versión, deberemos migrarla

de forma incremental. Es decir, deberemos ir realizando la migración release a release.

Por ejemplo, si tenemos en marcha la versión 1.7, deberemos realizar la migración a la

1.8 y finalmente de la 1.8 a la 1.9.

En la migración deberemos migrar nuestra configuración actual, actualizar el producto

a la nueva versión, migrar los tenants, los external stores, Google analytics y workflows.

Todos los pasos a seguir están perfectamente explicados en la web de WSO2:

https://docs.wso2.com/display/AM190/Upgrading+from+the+Previous+Release

Page 23: Chakray wso2-apm19-release-20150704 (1)

23

Por Luis Peñarrubia IT Consultant

4. Más información

Product site: http://wso2.com/api-management/

Product download: http://wso2.com/api-management/try-it/

Product documentation: https://docs.wso2.com/display/AM190/

Webinars: http://wso2.com/events/webinars/

Page 24: Chakray wso2-apm19-release-20150704 (1)

24

Por Luis Peñarrubia IT Consultant

Autor:

Luis Peñarrubia

IT Consultant

Chakray Consulting

www.chakray.com

LinkedIn: http://www.linkedin.com/in/luispenarrubia

Twitter: @LuisPenarrubia