## 2 Requirements and Challenges in the Operationalization of the Cloud Continuum
### Deployment Orchestration and Optimization  
The Cloud Continuum concept encompasses the idea of processing each application and/or application component with the most appropriate resource, from cloud computing systems to IoT devices, depending on different factors: the need for resources, proximity, etc. In this complex scenario, the selection of the optimized deployment configuration is still a challenge to be solved. The selection of the best combination of resources can be treated as an optimization problem which can be solved through different types of techniques from the three main categories: exact methods [32]; heuristics [33] and metaheuristics [34], the last ones enjoying greater popularity because of their adaptability and efficiency [35]. The literature is scarce in studies centered on the optimal deployment of microservice over heterogeneous cloud services. In [36], a NSGA-II algorithm was used to match the specific requirements of a certain Big Data application to the capabilities provided by an IaaS infrastructure and the Big Data platform deployed therein against three design aspects for the infrastructure of the Big Data application: cost, reliability and net computing capacity. Similarly, in [37], two main objectives were considered for optimization: (1) fulfilment \begin{table}
\begin{tabular}{c c c} \hline \hline
**Topic** & & **Current Challenges** \\ \hline Cloud Continuum & \(\bullet\) & Few to no available approaches supporting the Cloud Continuum at pre-deployment and operation time \\ \hline Security Assurance & \(\bullet\) & Services and tools to implement SecDevOps as a whole in a Cloud Continuum are missing \\ in Cloud/Edge/IoT & \(\bullet\) & Security and privacy assurance in Cloud/Edge/IoT \\  & \(\bullet\) & Active Data Protection in the Cloud Continuum \\ \hline \hline \end{tabular}
\end{table} 
Table 1: _Cont._of the microservices' Non-Functional-Requirements (NFRs) (location, availability, cost, performance and legal level), and (2) meeting of the characteristics set by the developers of these microservices (classification, public IP, disk space, RAM and number of cores). The optimization process described above can be enriched by having information about the behavior of the execution environment and the underlying resources at run-time, so that the optimization function can also consider this information as another dimension of incoming data. The deployment of applications in general has benefitted in the last decade from the Infrastructure-as-Code (IaC) [7] concept which aims to automate the provisioning, configuration and deployment of infrastructure resources following a machine-readable file approach. Tools for IaC process configuration files developed by Ops teams for different purposes include: Provisioning; Configuration; Deployment and Orchestration of the resources. However, there are several open issues that still need to be solved, especially when talking about automatic deployment and orchestration in the Cloud Continuum:  
* Tools [38; 39; 40; 41] for virtual and physical resources provisioning are platform dependent lacking interoperability and portability and mainly focused on cloud resources and do not consider edge nodes;
* Some Continuous Delivery and Continuous Deployment supporting tools are specific for deploying containers-based applications (Rancher [42]) while others are more generic (e.g., Apache Brooklyn, Spinnaker [43], Alien4 Cloud [44], Cloudify [45]) and can deploy both traditional and container-based applications;
* Kubernetes [46], the leading, most used and advanced orchestration platform today has been used for the orchestration of traditional cloud resources. When it comes to the edge though, new features such as low network latency [47] and self-healing need to be considered due to the edge's higher proneness to failures that impact on maintenance costs.