Chakray wso2-apm19-release-20150704 (1)
-
Upload
chakray-consulting -
Category
Documents
-
view
243 -
download
5
Transcript of 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.
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/
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.
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
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/
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.
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
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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
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.
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/
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.
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
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/
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