Cloud Computing is revolutionizing smart manufacturing by offering on-demand and scalable computer systems that facilitate plant data analysis and operational efficiency optimization. DevOps is a methodology, widely used for developing Cloud Computing systems, that streamlines software development by improving its integration, delivery, and deployment. Although cloud application designers within a DevOps team are assumed to have development and operational knowledge, this does not fall within the skills of experts that design analytics applications of plant data. The deployment environment is also relevant since, as such applications are often hosted in the Fog, the proliferation of application components may hinder their composition and validation. This work is aimed at embracing the Platform Engineering approach to provide a tailored toolkit that guides the design and development of OpenFog compliant applications for the experts in the Smart Manufacturing domain. The platform uses Model Driven Engineering techniques and a flow-based visual editor to allow application designers to graphically compose applications from components previously delivered by component developers, abstracting them from the underlying technologies. As a result, containerized applications, ready to be deployed and run by a container orchestrator, are obtained. The feasibility of the proposal is proved through an industrial case study.
Distributed computing paradigms have evolved towards low latency and highly virtualized environments. Fog Computing, as its latest iteration, enables the usage of Cloud-like services closer to the generators and consumers of data. The processing in this layer is performed by Fog Applications, which are decomposed into smaller components following the microservice paradigm and encapsulated into containers. Current state-of-the-art container orchestrators can manage hundreds of simultaneous containers. However, Kubernetes, being the de facto standard, does not consider the application itself as a top-level entity, which limits its orchestration capabilities. This raises the need to rearchitect Kubernetes to benefit from application-awareness, which refers to an orchestration method optimized for managing the applications and the set of components that comprise them. Thus, this paper proposes an application-aware and OpenFog-compliant architecture that manages applications as first-level entities during their lifecycle. Furthermore, the proposed architecture allows the definition of organizational structures to group subordinated applications based on user-defined hierarchies. This logical structuring makes it possible to outline how orchestration should be shaped to reflect the operating model of a system or an organization. The proposed architecture is implemented as a Kubernetes extension and provided as an operator.
Resumen La utilización de la computación en la Niebla está ganando terreno en el dominio de la fabricación avanzada. Este paradigma de computación distribuida habilita el análisis de los datos producidos por los activos de fabricación en los procesos industriales, acercando los servicios que suele ofrecer la Nube a los dispositivos que producen los datos, mejorando la seguridad de estos y el rendimiento de las comunicaciones. Las aplicaciones desplegadas en la Niebla suelen diseñarse como conjuntos de componentes distribuidos que aprovechan el paradigma de microservicios, generalmente encapsulados en contenedores, para adaptar su despliegue en nodos con capacidades heterogéneas. Este artículo hace uso de la Ingeniería Conducida por Modelos para proporcionar a los programadores de componentes pautas y herramientas a la hora de diseñar y desarrollar dichos componentes de aplicación, preparándolos para su posterior despliegue en forma de microservicios.