# Railway Cloud: Management and Orchestration Functionality Designed as Microservices
## 4 Railway Cloud Orchestration Use Cases
The deployment of the CFM services' software images begins with pre-checking, which is requested by the RMAO platform. If the pre-check procedure shows that the requested software version is acceptable, the RMAO platform is notified and, in turn, it instructs the CRM services to install the new CFM services' software. The CRM services allocate the necessary resources, install the requested software version, and perform specific testing. In the case of a successful software update, the CRM services update their software catalogue and notify the RMAO. Any failure during the deployment of the CFM services' software is reported to the RMAO. The software update process terminates with a notification to the railway cloud manager about the result. Figure 4: Flow of CFM services’ software update. Based on the analysis of basic use cases of railway cloud orchestration, requirements could be derived. As preconditions, the railway cloud hardware must be installed, pre-configured and ready, and a stable connectivity must exist. The basic requirements related to the orchestration of the railway cloud are as follows:  
* The RMAO needs to assign a unique identifier to a newly deployed railway cloud that will be used for handling the cloud registration process. * The RMAO needs to load the railway cloud platform software on the first node. * The CRM services need to load the basic railway cloud software on the other nodes to configure and activate the CFM services and to create/refresh the software catalogue. * The RMAO needs to be able to query the CRM services about the software catalogue to configure the CFM services, if required, and to register the CFM services in its catalogue. * The RMAO should be able to update information in the railway cloud catalogue (e.g., resource configurations, capacity, utilisation, etc.) or to add information about a newly installed node. * The RMAO should be able to scale the railway cloud hardware infrastructure. * The RMAO should be able to update the railway cloud platform software by triggering the software download and validation procedure. * The CRM services need to be able to perform pre-checking of the downloaded software to migrate the cloudified railway functions deployed on the affected nodes to other nodes, to update the software images, and to perform a restart if required. * The RMAO needs to be able to query and update the railway cloud functional status. * The RMAO needs to be able to update the software of the CRM services and the software of the CFM services, including the triggering of the requested software version's download, pre-checking, installing, and catalogue update. * The RMAO needs to notify the railway cloud operator about the result of the orchestration process. The requirements for the orchestration of the cloudified railway functions include the following capabilities:  
* Instantiation of the cloudified railway functions on the cloud. * Scaling of the cloudified railway functions. * Software update of the cloudified railway functions. * Termination of the cloudified railway functions. In addition to the considered basic use cases, orchestration includes functionality for railway cloud and cloudified function healing, alarm management, performance management, network connection management, provisioning, and resource optimisation. The next section presents an approach to design the railway cloud's orchestration functionality as microservices. The focus is on microservices related to the software update of CRM and CFM services.