Búsqueda avanzada

Resultados de búsqueda para microservices

Extended abstract of «Microservices for Continuous Deployment, Monitoring and Validation in Cyber-Physical Systems: an Industrial Case Study for Elevators Systems»

Cyber-Physical Systems (CPSs) are systems that integrate digital cyber computations with physical processes. The software embedded in CPSs has a long life-cycle, requiring constant evolution to support new requirements, bug fixes, and deal with hardware obsolescence. To date, the development of software for CPSs is fragmented, which makes it extremely expensive. This could be substantially enhanced by tightly connecting the development and operation phases, as is done in other software engineering domains (e.g., web engineering through DevOps). Nevertheless, there are still complex issues that make it difficult to use DevOps techniques in the CPS domain, such as those related to hardware-software co-design. To pave the way towards DevOps in the CPS domain, in this paper we instantiate part of the reference architecture presented in the H2020 Adeptness project, which is based on microservices that allow for the continuous deployment, monitoring and validation of CPSs. To this end, we elaborate a systematic methodology that considers as input both domain expertise and a previously defined taxonomy for DevOps in the CPS domain. We obtain a generic microservice template that can be used in any kind of CPS. In addition, we instantiate this architecture in the context of an industrial case study from the elevation domain.

Autores: Aitor Gartziandia / Jon Ayerdi / Aitor Arrieta / Shaukat Ali / Tao Yue / Aitor Agirre / Goiuria Sagardui / Maite Arratibel / 
Palabras Clave: Cyber-Physical Systems - DevOps - microservices

Towards the automation of design time capacity analysis over microservices architectures

Microservices architectures are now widely used by a great number of developers. They often consume external services offered by third parties, which usually impose limitations on the number of requests that they can serve. These limitations have an impact on the capacity of the architecture, which is determined by the number of requests that it can handle, among other factors. This paper aims to automate the capacity analysis over microservices architectures at design time, following an analytical approach. We present a generic CSOP model that can be used to analyze the capacity of any architecture. We also evaluate our proposal using a real architecture.

Autores: Rafael Fresno-Aranda / Pablo Fernández / Antonio Ruiz-Cortés / 
Palabras Clave: Architecture - automation - Capacity - Limitations - microservices

Supporting Tools for Microservices Composition through the choreography of BPMN fragments (Demo)

Microservices must be composed to provide users with complex and elaborated functionalities. According to the decentralized nature of micro-services, choreographies is the most appropriate style to achieve such com-position. However, this style forces to distribute the flow logic of the com-position among the participating microservices making difficult its analysis and update. The Business Process Model and Notation (BPMN) provides a graphical notation widely used in academia and industry to specify business processes. Within the microservice composition context, this notation can be used to create the big picture of such compositions. However, this notation is usually considered in orchestration-based solutions, and orchestration can be a drawback to achieve the decoupling pursued by a microservice architecture. Therefore, in this demo paper we present the architectural solution and its realization in Java/Spring technology to support an approach that allows defining a microservice composition keeping the benefits of both composition mechanisms, i.e., orchestration and choreography. Specifically, the supporting tool allows 1) defining the microservice com-position in a BPMN model to have the big picture of the whole composition, which facilitates further analysis and maintenance when requirements change, and 2) splitting this BPMN model into fragments that are distributed among microservices in order to be executed by following an event-based choreography of BPMN fragments, which provide a high degree of de-coupling and independence to implement and maintain microservices. This composition approach is supported by a microservice architecture defined to achieve that both descriptions of a composition (big picture and split one) coexist.

Autores: Pedro Valderas / Victoria Torres / Vicente Pelechano / 
Palabras Clave: Architecture - BPMN - Choreography - composition - microservices

Human Microservices: A framework for turning humans into service providers (Summary)

During the last decade, the mobile application market has grown steadily thanksto the massive use of smartphones and the emergence of cloud computing foroffloading computation tasks and improving the quality of experience. Nevertheless, the increasing amount of information exchanged, the stringent requirements of many IoT applications, and the need for these applications to adapt their behaviour in real time to the user’s context set these architectural assumptions a challenge. Paradigms such as mobile, mist, and edge computing have recently been proposed to exploit the computational and storage capabilities of current smartphones and IoT devices in order to onload some tasks onto them, reducing the overhead on both the cloud and the network. Currently, the application of these paradigms requires skilled developers as there lack standards and tools facilitating their development.This communication introduces Human Microservices as a framework facilitating the deployment of APIs on companion devices in order to provide personal and updated information that can be consumed by other entities. The framework improves the integration of humans in the IoT loop and facilitates the deployment of computation units in devices closer to end users. The proposed framework is based on existing standards in order to improve software quality and shorten the learning curve.

Autores: Sergio Laso / Javier Berrocal / Jose García-Alonso / Carlos Canal / Juan Manuel Murillo / 
Palabras Clave: End Devices - Human in the Loop - microservices - Mist Computing - mobile computing

A microservice composition approach based on the choreography of BPMN fragments

This paper faces the challenge of defining a microservice composition approach that provides the benefits of orchestration and choreography composition mechanisms. The main goal is to provide a solution that allows developers to have a centralized model that describes the big picture of a microservice composition and also to have the possibility of executing the composition defined in this model through an event-based choreography. The modeling language used to create such centralized model is the one provided by the BPMN process diagram. In particular, we introduce a proposal that provides the possibility of 1) defining the microservice composition in a BPMN model to have the big picture of the whole composition, which facilitates further analysis and maintenance when requirements change, and 2) executing the BPMN model by following an event-based choreography to provide a high degree of decoupling and independence to implement and maintain microservices. To this end, the paper presents (1) a set of guidelines to create microservice compositions in BPMN models, split them into fragments, and distribute these fragments among microservices to be executed through an event-based choreography, (2) a microservice architecture defined to support the coexistence of the two descriptions of a composition (i.e., the big picture and the split one), and (3) tool support in order to implement the proposed microservice architecture in Java/Spring technology.

Autores: Pedro Valderas / Victoria Torres / Vicente Pelechano / 
Palabras Clave: BPMN - Choreography - composition - microservices

Easy security management over microservices architectures based on OpenAPI Specification

Nowadays, many developers around the world use RESTful APIs along microservices architectures. These APIs are increasingly being described using the OpenAPI Specification standard. Moreover, they usually require some level of security. However, maintaining security settings across the entire architecture can be a time-consuming task. For example, adding a new role to the application may lead to modifying the settings for each API. This approach presents various drawbacks, such as low scalability. We have found this problem while working on an institutional web page. This is why we are developing an extension for OpenAPI which allows for easier security management on microservices applications. Furthermore, the in-progress Node.js module will perform automatic validation of JSON Web Tokens. JWTs are a simple and standard way to implement access control. Using them along with the aforementioned extension will greatly reduce development time. By providing some configuration parameters, a single API or a whole infrastructure will be more secure. This will also cause bigger applications to be more scalable and easy to maintain.

Autores: Rafael Fresno / 
Palabras Clave: API - Extension - microservices - OpenAPI - REST - security - Standard

Resource optimization of container orchestration: a case study in multi-cloud microservices-based applications (Summary)

Los microservicios han resultado ser un nuevo paradigma de programación adoptado ampliamente durante los últimos años. Consiste en desarrollar una aplicación mediante un conjunto de servicios ligeros e independientes que pueden desplegarse y escalarse en múltiples proveedores de cloud (multicloud). El uso de múltiples proveedores puede suponer una mayor ventaja en términos de coste y disponibilidad, entre otras, pero también conlleva riesgos asociados con la degradación del servicio. Por ello, el uso de políticas de asignación de recursos es importante para mitigar estos inconvenientes.

Este trabajo propone el uso de un algoritmo genético (Non-dominated Sorting Genetic Algorithm II, NSGA-II) para optimizar la asignación de microservicios a máquinas virtuales de cada uno de los proveedores, de forma que se consiga minimizar las siguientes métricas: el coste de despliegue; los tiempos de comunicación entre los microservicos de una misma aplicación debido a despliegues en distintos proveedores de cloud; y el tiempo medio de recuperación, es decir, el tiempo entre la caída y despliegue de una nueva instancia vuelva a estar operativa.

Mediante la simulación de distintos experimentos, hemos probado que la asignación de recursos con NSGA-II obtiene una mejor minimización de los objetivos evaluados junto a una mayor diversidad de soluciones de asignación de recursos, en comparación con un algoritmo voraz. Por tanto, el trabajo concluye que el uso del algoritmo genético (NSGA-II) es adecuado para mejorar la asignación de microservicios y máquinas virtuales en entornos multicloud.

Autores: Carlos Guerrero / Isaac Lera / Carlos Juiz / 
Palabras Clave: Cloud Computing - Container orchestration - Genetic algorithm - microservices - multi-objective optimization

Desarrollando una arquitectura de microservicios mediante MDE

En los últimos años, la industria del software ha apostado por la migración hacia las aplicaciones basadas en servicios y su despliegue en la nube por su promesa de obtener alta disponibilidad y escalabilidad. Tanto las aplicaciones Web como las móviles utilizan partes servidoras basadas en fachadas REST o SOA que en muchas ocasiones crecen tanto a nivel de servicios como de datos lo que complica su mantenibilidad. En este sentido, ha aparecido recientemente un estilo arquitectónico denominado microservicios que propone la división horizontal de la funcionalidad de una aplicación en una colección de servicios que gestionan separadamente su propia lógica y sus datos. Esta división permite explotar la escalabilidad de la nube a nivel de servicio y abordar los cambios más rápidamente. A pesar de sus beneficios, este estilo arquitectónico presenta algunas desventajas como la dificultad de agregar datos de diferentes microservicios y el mantenimiento de la consistencia entre las diferentes orígenes de datos. Para abordar estos dos retos, este trabajo presenta una solución MDE basada en una evolución del modelo de servicios de OOH4RIA. Este modelo permite tanto acelerar la creación de microservicios como facilitar el mantenimiento en la comunicación y la composición de datos de diferentes orígenes.

Autores: Santiago Meliá / Jesús M. Hermida / Cristina Cachero / Jaume Aragonés / 
Palabras Clave: microservices - Model-Driven Engineering - REST - SOA - web services

Visual CPS: Sistemas Ciber-Físicos en la Nube con Soporte a la Variabilidad y Multitenencia

En los últimos años, nuestra sociedad está cambiando a gran velocidad. Cada vez son más los dispositivos que interactúan con nosotros y el entorno para ofrecernos servicios ampliados respecto a los servicios de información tradicionales. Esta nueva era de Internet de las Cosas (Internet of Things – IoT) y de servicios al ciudadano a través de internet, con la nueva concepción de los sistemas inteligentes (smart buildings, grids, cities y spaces), necesitan cada vez de más recursos computacionales y software. En este sentido, Cloud Computing ofrece una serie de características en cuanto escalabilidad y flexibilidad, acceso a recursos a través de Internet (off-premises) sin necesidad de ser instalados y gestionados localmente (on-premises) [1] que son fundamentales para soportar tales sistemas. Los servicios proporcionados por la nube son infraestructura (IaaS), plataforma de desarrollo (PaaS) y software (SaaS). Una de las características más significativas de SaaS (Software as a Service) es la multitenencia, la cual promueve las economías de escala mediante la compartición de una serie de recursos entre múltiples usuarios o grupos de usuarios denominados tenants. Cada tenant podría personalizar ciertas partes del software para satisfacer requisitos individuales. Este concepto no es nuevo, y ha sido abordado ampliamente por la ingeniería de líneas de producto [8] y la gestión de la variabilidad. La variabilidad de un producto software se puede definir como la capacidad de este para cambiar y ser utilizado en múltiples contextos. Resulta de gran importancia el dotar al software de mecanismos para soportar distintos grados de variabilidad para poder ofrecer una personalización ajustada a las necesidades específicas de los usuarios. En este artículo se presenta una herramienta para la creación y gestión de sistemas ciber-físicos en la nube con soporte a múltiples tenants y variabilidad entre los tenants llamada Visual CPS. Un sistema ciber-físico es aquel sistema en el que se embebe o integra capacidad de cómputo con el objetivo de interactuar el software con el mundo físico, obteniendo una comunicación bidireccional entre estos dos. Para soportar dichas características la herramienta se basa en el concepto de multitenencia de la plataforma de nube GPaaS [7] y en el diseño arquitectónico basado en el estilo de microservicios [2] que se define como una aplicación compuesta por componentes independientes, ligeros y muy especializados orquestados para proporcionar la funcionalidad de la aplicación global.

Autores: Héctor Humanes / Jessica Díaz / Carlos Fernández / Agustín Yagüe / 
Palabras Clave: Ciber physical system - Cloud Computing - microservices - Multitenancy - Variability

No encuentra los resultados que busca? Prueba nuestra Búsqueda avanzada