Sustainability Aware Microservices

A system with a 30_Knowledge/Microservices architecture comes with an overhead in terms of memory usage, startup time, etc. in comparison to one monolithic application.

Questions:

Make microservices energy-aware

Research:

vitali.etal.2023.enrichingcloudnativeapplications (pg. 2)

The design of adaptive applications, able to change their workflow according to the current workload and energy mix, is necessary to empower green applications from an application provider perspective.

vitali.etal.2023.enrichingcloudnativeapplications (pg. 2)

Cloud-native applications empower the design and execution of scalable, loosely coupled, resilient, manageable, and observable applications [8]. These applications generate complex workflows as a consequence of the microservice architectural style. Specific characteristics of these applications can be exploited to improve energy efficiency.

Sustainable Application Design Process (SADP)

vitali.etal.2023.enrichingcloudnativeapplications (comment) (pg. 3)

Sustainable Application Design Process (SADP):

  • Sustainable Awareness: requirements and capabilities → assign correct amount of computational resources and best deployment location

  • Microservice Classification: optional or mandatory → application workflow can be adapted according to the current execution context or if there is a green energy sources shortage

  • Microservice Enrichment: multiple implementations with different functional and non-functional properties → adaptive workflow

vitali.2022.greenerapplicationsenabling (pg. 7)

Step 1 is a first step towards sustainable applications. It consists in adding basic sustainability-aware information to the application design. The goal is to enrich the application model with additional information that can drive the deployment decisions of the cloud provider when the single components are deployed. This information is not only related to the energy aspect, but also to functional and QoS requirements.

vitali.2022.greenerapplicationsenabling (pg. 7)

Step 2. The application designer provides information on which components of the application are mandatory and which are optional: MM ∪ MO ⊆ M where MM is the set of mandatory microservices and MO is the set of optional microservices.

vitali.2022.greenerapplicationsenabling (pg. 8)

Step 3. It consists in the enrichment of the microservices composing the application through the definition of different modalities of execution for each component. Alternative execution modalities can be defined for a single microservice and the one to enact might depend on the current context.

vitali.2022.greenerapplicationsenabling (comment) (pg. 8)

Proposal: Use three different execution modalities (versions):

  • Normal: basic execution modality
  • High-Performance: the service does more than needed, e.g. taking previous activities into account to provide better QoE
  • Low-Power: Simplified version aiming at reducing the amount of energy consumed, e.g. by skipping sub-activities
vitali.2022.greenerapplicationsenabling (pg. 13)

The outcome of the design step will be an annotated and enriched BPMN model containing all the relevant information for the management of sustainability-aware applications. BPMN models can be translated in machine-readable formats like XML or JSON, including annotations and task types that will enrich the description of each task. It is thus possible to translate the model into a set of features that can be exploited by an orchestrator. As an example, a BPMN-driven microservice coordination approach is provided by some existing tools in the state of the art. For instance, Camunda and Zeebee are workflow engines supporting BPMN and DMN for designing workflow orchestrations.

Sustainable Application Design Architecture (SADA)

vitali.etal.2023.enrichingcloudnativeapplications (pg. 4)

The architecture is characterized by three main subsystems, each one responsible for one of the phases of the application management and addressed to one of the actors defined in Section III:

  • Sustainable Application Design, addressed to the application designer;
  • Web Service Development Framework, addressed to the application developer;
  • Sustainability-Aware Deployment System, addressed to the infrastructure provider.
vitali.etal.2023.enrichingcloudnativeapplications (pg. 5)

The Web Service Development Framework subsystem defines how to enrich the microservices composing the application with the metadata expressed in the design. It also enables the application designer and developer to exchange sustainability information.

vitali.etal.2023.enrichingcloudnativeapplications (pg. 6)

The Carbon-Aware Deployment System is the connection point between the Infrastructure Provider, who is in charge of deploying the application, and the Application Designer and Developer, who designs the adaptive workflows.