SlideShare una empresa de Scribd logo
INTEGRANDO MACHINE LEARNING Y
MICROSERVICIOS
SOBRE NOSOTROS
Julio Palma Vázquez
Desarrollador Java desde hace
más de 17 años, muy interesado
en IoT, microservicios y
arquitectura de aplicaciones. El
trabajo me ha llevado a buena
parte de España pero también a
Dinamarca, Alemania, Irlanda y
EEUU. Speaker en eventos locales
e internacionales. Implicado con
la comunidad de desarrolladores.
Gran fan de la ciencia ficción y
los juegos de rol, ciclista de
montaña y padre orgulloso. En
mis ratos libres trabajo en
Accenture Technology
Rafael Hidalgo Calero
Programador Sénior Java.
Actualmente, ando
introduciéndome en el mundo
Big Data. Defensor de la filosofía
open source. Speaker en la
pasada edición del Lambda
World, Cádiz. Trabajando en
Accenture Technology desde
2012
https://github.com/oscurowebhttps://github.com/restalion
@restalion @oscuroweb
OTRAS CHARLAS DE ACCENTURE TECHNOLOGY
Spring Cloud Microservices 101
01 Junio 02 Junio
Open Source Code Inspection, Security and
Testing Power Tools
Integrando Machine Learning en Microservicios
Selenium 1:1Desarrolla aplicaciones web sin usar HTML ni
JavaScript
Accenture Technology Stand
@juanmacintas, @restalion
Sala Colmenar 3, 11:00
@oscuroweb, @restalion
Sala Benalmádena 2, 16:00
@cloud4dev
Sala Colmenar 3, 12:00
@_deors
Sala Fuengirola 1, 17:30
@viarellano,
@thetechoddbug
Sala Canillas 13, 17:30
Podéis visitarnos en nuestro
stand a lo largo de toda la
conferencia
Introducción a Lagom y primeros pasos
@oscuroweb, David Urdiales
Sala Riogordo 1, 18:00
MACHINE LEARNING (ML)
Tratamiento de datos: selección
de labels, normalización,
categorización, etc…
División de los datos en conjuntos
de entrenamiento, validación y
test
Elección del modelo y parámetros:
Random Forest, SVM, Neural Net,
etc…
Entrenamiento
Evaluación
Obtención de datos
Exportación del
modelo
MICROSERVICIOS (µS)
Métricas
Resistencia
a errores
Servicio
DAO
Presentación
Localización de
servicios
EIS
DAO DAO
EIS EIS
Servicio Servicio Servicio
Configuración
centralizada
Logs distribuidos
Auditoría
Seguridad
(H2M y M2M)
Composición
de la solución
Gestión de
la carga
Documentación de
interfaces
UNIENDO AMBOS CONCEPTOS (ML + µS)
 El problema habitual de los algoritmos de ML es que no están pensados para soluciones en producción.
 Integración entre los distintos componentes de la solución.
 Necesitamos definir una arquitectura que nos permita aprovechar:
 Ejecuciones de los algoritmos de ML (y toda su potencia).
 Flexibilidad de las arquitecturas de µServicios.
 Todos los mecanismos de DevOps aplicables al resto de la solución.
UNA PROPUESTA DE ARQUITECTURA DE EJECUCIÓN
income-predictor-
vaadin income-predictor-service income-predictor-ml
- Expone la UI
- Consume el servicio
REST
- Expone el interfaz REST
- Lee el modelo desde el fichero
- Guarda el feedback de los
usuarios para permitir reentrenar
el algoritmo
- Servicio planificado para reentrenar el
modelo con los datos originales y el feedback
de los usuarios
- Guardado del modelo generado
UNA PROPUESTA DE ARQUITECTURA DE EJECUCIÓN
income-predictor-
vaadin income-predictor-service income-predictor-ml
 Spring Boot como framework base, completamente integrado con el resto de la aplicación.
 Apache Spark como gestor de la parte ML
 Vaadin como framework de presentación
DESPLIEGUE DEL PROYECTO
income-predictor-
vaadin income-predictor-service income-predictor-ml
git jenkins docker-registry
- Utilizamos git como
repositorio de código.
- Los desarrolladores
trabajan utilizando
git-flow.
- Jenkins está conectado
a git.
- Cada vez que un
subimos código se
lanza el pipeline.
- El último paso del
pipe es guardar la
imagen generada en
el registry
El despliegue se realiza a partir de
la imagen que tenemos en el Docker
registry
DEMO
 https://github.com/oscuroweb/opensouthcode-ml-microservices
VENTAJAS DE LA ARQUITECTURA
 Uso de frameworks bien conocidos en el desarrollo de microservicios.
 Integración con los entornos de CI, y gestión de la calidad.
 Todo el código Java puede utilizar la potencia de las herramientas de gestión de la calidad.
 Al utilizar Docker simplificamos los despliegues y unificamos los distintos entornos.
 El uso de interfaces REST para la integración nos permite utilizar un entorno políglota en el que parte de
la solución esté escrita en Java y otra en lenguajes como Python, R, … “solo” tenemos que exponer un
interfaz que sea consumible por el resto de la solución.

Más contenido relacionado

La actualidad más candente

마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법
Young Soo Lee
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Yana Brodetski
 
オブジェクト指向入門1
オブジェクト指向入門1オブジェクト指向入門1
オブジェクト指向入門1
Kenta Hattori
 
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
VirtualTech Japan Inc.
 
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
KyeongmanKang
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
Jeongsang Baek
 
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Amazon Web Services
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
Jeongkyu Shin
 
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
Tsuyoshi Hirayama
 
주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기
InfraEngineer
 
Natural Language Processing (NLP) - Introduction
Natural Language Processing (NLP) - IntroductionNatural Language Processing (NLP) - Introduction
Natural Language Processing (NLP) - Introduction
Aritra Mukherjee
 
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWSKRUG - AWS한국사용자모임
 
WPF MVVM Review
WPF MVVM ReviewWPF MVVM Review
WPF MVVM Review
Takayuki Kondou
 
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
株式会社MonotaRO Tech Team
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
AWSKRUG - AWS한국사용자모임
 
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворковМодуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Yana Brodetski
 
Python Programming: Data Structure
Python Programming: Data StructurePython Programming: Data Structure
Python Programming: Data Structure
Chan Shik Lim
 
Graffity 採用候補者の皆様へ
Graffity 採用候補者の皆様へGraffity 採用候補者の皆様へ
Graffity 採用候補者の皆様へ
Graffity Inc
 

La actualidad más candente (18)

마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
 
オブジェクト指向入門1
オブジェクト指向入門1オブジェクト指向入門1
オブジェクト指向入門1
 
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
 
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
Jira + Confluence + Bitbucket으로 이슈 트래킹 걸음마 떼기
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
第79回 Machine Learning 15minutes ! 生成AIをエンタープライズで活用するWatsonx.aiの紹介
 
주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기주니어의 쿠버네티스 생태계에서 살아남기
주니어의 쿠버네티스 생태계에서 살아남기
 
Natural Language Processing (NLP) - Introduction
Natural Language Processing (NLP) - IntroductionNatural Language Processing (NLP) - Introduction
Natural Language Processing (NLP) - Introduction
 
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
 
WPF MVVM Review
WPF MVVM ReviewWPF MVVM Review
WPF MVVM Review
 
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
 
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворковМодуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
 
Python Programming: Data Structure
Python Programming: Data StructurePython Programming: Data Structure
Python Programming: Data Structure
 
Graffity 採用候補者の皆様へ
Graffity 採用候補者の皆様へGraffity 採用候補者の皆様へ
Graffity 採用候補者の皆様へ
 

Similar a Integrando Machine Learning y Microservicios

Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
Rafa Hidalgo
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
Andres Solorzano
 
Spsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochilaSpsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochila
Robert Bermejo Blasco
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de Android
Javier Muñoz
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
Travis Alford
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
Luciano Moreira da Cruz
 
Liquid Day - Microservicios y contenedores
Liquid Day - Microservicios y contenedoresLiquid Day - Microservicios y contenedores
Liquid Day - Microservicios y contenedores
Software Guru
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
Mauro Parra-Miranda
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Bruno Capuano
 
M vs m
M vs mM vs m
M vs m
Paco Ocampo
 
Informe tecnología
Informe tecnologíaInforme tecnología
Informe tecnología
Daniela Martinez Valencia
 
CV Santiago Barrio
CV Santiago BarrioCV Santiago Barrio
CV Santiago Barrio
Santiago Barrio González
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
Imanol Iza Martin
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Santi Macias Rodriguez
 
Introducción a la programacion.pdf
Introducción a la programacion.pdfIntroducción a la programacion.pdf
Introducción a la programacion.pdf
IvanaTrento
 
Front end developer
Front end developerFront end developer
Front end developer
Skynet Erp
 
Myappgen
MyappgenMyappgen
Cruz uliseslarragaramirezcv
Cruz uliseslarragaramirezcvCruz uliseslarragaramirezcv
Cruz uliseslarragaramirezcv
CruzUlisesLrragaRamr
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
Gerardo Linares
 
Overview Alljoyn SDK presented at SedeLab Webimar.
 Overview Alljoyn SDK presented at SedeLab Webimar. Overview Alljoyn SDK presented at SedeLab Webimar.
Overview Alljoyn SDK presented at SedeLab Webimar.
Felipe Martinez Alvarez
 

Similar a Integrando Machine Learning y Microservicios (20)

Commit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine LearningCommit 2018 - Integrando Microservicios y Machine Learning
Commit 2018 - Integrando Microservicios y Machine Learning
 
Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018Propuesta de Plataforma IoT - UCA Cuenca 2018
Propuesta de Plataforma IoT - UCA Cuenca 2018
 
Spsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochilaSpsmad2016:Un SharePoint enla mochila
Spsmad2016:Un SharePoint enla mochila
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de Android
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
 
Liquid Day - Microservicios y contenedores
Liquid Day - Microservicios y contenedoresLiquid Day - Microservicios y contenedores
Liquid Day - Microservicios y contenedores
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
 
M vs m
M vs mM vs m
M vs m
 
Informe tecnología
Informe tecnologíaInforme tecnología
Informe tecnología
 
CV Santiago Barrio
CV Santiago BarrioCV Santiago Barrio
CV Santiago Barrio
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 
Introducción a la programacion.pdf
Introducción a la programacion.pdfIntroducción a la programacion.pdf
Introducción a la programacion.pdf
 
Front end developer
Front end developerFront end developer
Front end developer
 
Myappgen
MyappgenMyappgen
Myappgen
 
Cruz uliseslarragaramirezcv
Cruz uliseslarragaramirezcvCruz uliseslarragaramirezcv
Cruz uliseslarragaramirezcv
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Overview Alljoyn SDK presented at SedeLab Webimar.
 Overview Alljoyn SDK presented at SedeLab Webimar. Overview Alljoyn SDK presented at SedeLab Webimar.
Overview Alljoyn SDK presented at SedeLab Webimar.
 

Integrando Machine Learning y Microservicios

  • 1. INTEGRANDO MACHINE LEARNING Y MICROSERVICIOS
  • 2. SOBRE NOSOTROS Julio Palma Vázquez Desarrollador Java desde hace más de 17 años, muy interesado en IoT, microservicios y arquitectura de aplicaciones. El trabajo me ha llevado a buena parte de España pero también a Dinamarca, Alemania, Irlanda y EEUU. Speaker en eventos locales e internacionales. Implicado con la comunidad de desarrolladores. Gran fan de la ciencia ficción y los juegos de rol, ciclista de montaña y padre orgulloso. En mis ratos libres trabajo en Accenture Technology Rafael Hidalgo Calero Programador Sénior Java. Actualmente, ando introduciéndome en el mundo Big Data. Defensor de la filosofía open source. Speaker en la pasada edición del Lambda World, Cádiz. Trabajando en Accenture Technology desde 2012 https://github.com/oscurowebhttps://github.com/restalion @restalion @oscuroweb
  • 3. OTRAS CHARLAS DE ACCENTURE TECHNOLOGY Spring Cloud Microservices 101 01 Junio 02 Junio Open Source Code Inspection, Security and Testing Power Tools Integrando Machine Learning en Microservicios Selenium 1:1Desarrolla aplicaciones web sin usar HTML ni JavaScript Accenture Technology Stand @juanmacintas, @restalion Sala Colmenar 3, 11:00 @oscuroweb, @restalion Sala Benalmádena 2, 16:00 @cloud4dev Sala Colmenar 3, 12:00 @_deors Sala Fuengirola 1, 17:30 @viarellano, @thetechoddbug Sala Canillas 13, 17:30 Podéis visitarnos en nuestro stand a lo largo de toda la conferencia Introducción a Lagom y primeros pasos @oscuroweb, David Urdiales Sala Riogordo 1, 18:00
  • 4. MACHINE LEARNING (ML) Tratamiento de datos: selección de labels, normalización, categorización, etc… División de los datos en conjuntos de entrenamiento, validación y test Elección del modelo y parámetros: Random Forest, SVM, Neural Net, etc… Entrenamiento Evaluación Obtención de datos Exportación del modelo
  • 5. MICROSERVICIOS (µS) Métricas Resistencia a errores Servicio DAO Presentación Localización de servicios EIS DAO DAO EIS EIS Servicio Servicio Servicio Configuración centralizada Logs distribuidos Auditoría Seguridad (H2M y M2M) Composición de la solución Gestión de la carga Documentación de interfaces
  • 6. UNIENDO AMBOS CONCEPTOS (ML + µS)  El problema habitual de los algoritmos de ML es que no están pensados para soluciones en producción.  Integración entre los distintos componentes de la solución.  Necesitamos definir una arquitectura que nos permita aprovechar:  Ejecuciones de los algoritmos de ML (y toda su potencia).  Flexibilidad de las arquitecturas de µServicios.  Todos los mecanismos de DevOps aplicables al resto de la solución.
  • 7. UNA PROPUESTA DE ARQUITECTURA DE EJECUCIÓN income-predictor- vaadin income-predictor-service income-predictor-ml - Expone la UI - Consume el servicio REST - Expone el interfaz REST - Lee el modelo desde el fichero - Guarda el feedback de los usuarios para permitir reentrenar el algoritmo - Servicio planificado para reentrenar el modelo con los datos originales y el feedback de los usuarios - Guardado del modelo generado
  • 8. UNA PROPUESTA DE ARQUITECTURA DE EJECUCIÓN income-predictor- vaadin income-predictor-service income-predictor-ml  Spring Boot como framework base, completamente integrado con el resto de la aplicación.  Apache Spark como gestor de la parte ML  Vaadin como framework de presentación
  • 9. DESPLIEGUE DEL PROYECTO income-predictor- vaadin income-predictor-service income-predictor-ml git jenkins docker-registry - Utilizamos git como repositorio de código. - Los desarrolladores trabajan utilizando git-flow. - Jenkins está conectado a git. - Cada vez que un subimos código se lanza el pipeline. - El último paso del pipe es guardar la imagen generada en el registry El despliegue se realiza a partir de la imagen que tenemos en el Docker registry
  • 11. VENTAJAS DE LA ARQUITECTURA  Uso de frameworks bien conocidos en el desarrollo de microservicios.  Integración con los entornos de CI, y gestión de la calidad.  Todo el código Java puede utilizar la potencia de las herramientas de gestión de la calidad.  Al utilizar Docker simplificamos los despliegues y unificamos los distintos entornos.  El uso de interfaces REST para la integración nos permite utilizar un entorno políglota en el que parte de la solución esté escrita en Java y otra en lenguajes como Python, R, … “solo” tenemos que exponer un interfaz que sea consumible por el resto de la solución.