Roadmap about migration of public services into the cloudA step by step roadmap for Public Authorities to help them as they plan, determine effort and budget, select the appropriate services, make the required internal organisational changes and finally execute the migration into cloud.
Specifications for migration
Cloud migration is an application landscape redesign that changes not only the way IT administrators interact with the public organisation’s systems but also the way applicatios interact with each other and are delivered to end users (Brophy, 2016). The decision on migrating an application to the cloud requires a deeper understanding of the application architecture, the operational requirements, the business requirements, and the security requirements in order to make the most well-informed decisions (EPA, 2017).
As already mentioned in the cloud migration strategy description, before starting the migration process it is essential to assess the already used hosting environment. The analysis covers both the network (e.g. configuration, connectivity requirements from the municipality premises to the cloud environment, and supplementary services such as SMTP, DNS and WWW) and architecture (e.g. use of resources, underlining technologies, licenses, and security mechanisms) of the service.
SPECIFICATIONS FOR CLOUD MIGRATION
Public authorities should define the functional and technical characteristics that will host the applications on the new Cloud Environment. Before the migration process public authorities should collect the following information per application:
Functional description: a brief description of the implemented functions and the users of the application
Availability: the current version of the application and a link to a deployment available on the Internet (if any)
- The list of technologies used for implementing the application (e.g. operating system, programming languages, database engines, etc.)
- Resource information like amount of RAM required, disk space, number of vCPUs, etc.
- Deployment information like the number of servers for running the application, high availability solutions, load balancing solutions etc.
Together with the hosting environment it is crucial to analyse the applications’ readiness for the cloud. Aspects, such as customization, regulatory compliance, complex service architectures and service maturity are carefully investigated, as they would negatively impact the cloudification process. A crucial aspect is the availability of both the application’s source code and documentation (installation manual, code dependencies, required software packages, etc.). Finally, the commitment of the application’s development and support team should be ensured.
Next, public authorities should define the functional and technical characteristics of the Virtual Machines that will host the applications on the new Cloud Environment. The analysis of the functional requirements covers technical details (e.g. Operating System, Scripting Language, Database, Web/Application Server, Data Formats, Frameworks/Libraries and External Services used), interoperability issues, and static characteristics such as hard-coded IP address and directory paths.
Furthermore, the analysis of the non-functional requirements addresses issues related to the proper functioning of the application such as security, regulatory compliance, performance, availability, backup; privacy, reusability, and interoperability. An estimation of the use of resources regarding RAM, Disk Space, CPUs, Bandwidth, Hits/Month, Registered Users, Max On-line Users, and Average On-line Users contributes to the calculation of the expected workload per application. An important characteristic that should be examined in this step is if the application’s design supports its deployment in multiple servers. In that case the application will take full advantage of the performance benefits that cloud offers. An example of the information that should be collected per application is given in the Tables below.
This analysis of the functional and technical requirements also highlights potential obstacles to the transformation or the porting of the applications to the cloud due to technical or functional reasons. For example, applications implemented with legacy technologies might require licenses for using commercial software products. When porting an application to the cloud, one should make sure that is does not constitute an infringement of the licensing rights that the application proponent(s) have in place with the software vendor. From a functional point of view, a potential problem might be the use of sensitive information, such as personal data that could raise privacy and security issues.
Besides the implementation of extensive security controls like unauthorised access prevention, data encryption and ad hoc firewall policy, there still remain questions about where data is being located.
|Web/Application Servers||Tomcat, Apache, Geoserver|
|Application Lifecycle Tools||IDE: Eclipse
Version Control: git
Build Management: –
|Open Source Code Repository||N/A|
|Disk Storage [GB]||60|
|Network usage [GB]||N/A|
|Maximum On-line Users||N/A|
|Average On-line Users||N/A|
All the abovementioned reqirements also define the tools for managing the applications (e.g. administering, monitoring, automating etc.) and the components of the solution itself. More details about such tools can be found in the installation and cloud administration sections.