Gofore

Migrating from AWS to Finnish cloud provider UpCloud

Gofore migrated Skill Radar, its skills analytics system, from AWS to UpCloud. The project gave us first-hand experience of how a Finnish cloud provider performs in a real production environment, and of what moving to a European cloud really involves. 

The project was an investment in expertise. It allows us to help our customers make informed cloud decisions based on hands-on production experience, not just service promises. 

THE CHALLENGE

What does moving to a Finnish cloud take?

Skill Radar is an internal tool developed at Gofore to manage, visualise and guide the development of our people’s skills. The system had been running on AWS. We wanted to find out how UpCloud performs in a real production environment and what moving to a Finnish cloud involves in practice. 

We were particularly interested in UpCloud’s EU data residency and European ownership, its GDPR-friendly approach, its readiness for emerging EU regulation, its competitive pricing and the performance of its PaaS components. We wanted to assess the service through practical experience rather than service promises alone. 

Our aim was to follow the same path as in a customer project: from the request for proposal and offer through architecture design and technical implementation to production migration and day-to-day operations. Skill Radar was a good fit. It is an important internal tool but not a business-critical system, which made it a sound choice for learning. 

THE SOLUTION

An architecture built on UpCloud’s managed services

We built Skill Radar’s new architecture on UpCloud’s managed services: Managed Kubernetes as the container platform, Managed PostgreSQL for the database, Managed Load Balancer for load balancing and Managed Object Storage for log storage. 

Where UpCloud did not offer an equivalent managed service, we used established, platform-independent solutions: Bitbucket Packages for Docker images, External Secrets Operator with AWS Parameter Store for secrets management, and kube-prometheus-stack (Prometheus, Grafana, Loki, Alloy) for metrics and logs. These are widely used Kubernetes components that work on any platform. 

 

Purpose  AWS equivalent  UpCloud solution  Status 
Container platform  ECS  Managed Kubernetes  ✓ Managed service 
Database  RDS PostgreSQL  Managed PostgreSQL  ✓ Managed service 
Load balancing + SSL  ALB  Managed Load Balancer  ✓ Managed service 
Object storage / logs  S3  Managed Object Storage  ~ Partial S3 support 
Docker registry  ECR  Bitbucket Packages  ✗ No UpCloud service 
Secrets management  Parameter Store  AWS Parameter Store + External Secrets Operator  ✗ No UpCloud service 
Monitoring & logging  CloudWatch  Prometheus + Grafana + Loki + Alloy  ✗ No UpCloud service 
DNS  Route 53  Route 53 (retained on AWS)  ✗ No DNS service 

 

UpCloud offers a narrower range of managed services than the hyperscalers. Take this into account early when you plan the architecture and allocate resources. 

Responsibilities in a Kubernetes environment 

UpCloud maintains the Managed Kubernetes control plane and provides version upgrades. Data plane updates can run automatically or be scheduled manually to suit your own timetable. The operator remains responsible for the lifecycle of application-level add-ons such as the ingress proxy (Traefik), External Secrets Operator and kube-prometheus-stack. That covers their installation, configuration and updates. This is standard Kubernetes practice on any platform, but it needs to be resourced from the outset. 

→ Lesson learned 

Plan resources for add-on lifecycle management from the start. Every add-on needs ongoing monitoring of its security updates and its compatibility with Kubernetes versions. 

Access management 

UpCloud’s identity model differs from those of the hyperscalers. Usernames are globally unique across the whole ecosystem, and one username cannot be used across multiple accounts. In practice, each purpose needs its own credentials: console login, API tokens, Object Storage keys and Kubernetes certificates. Each of these has its own lifecycle. 

→ Lesson learned 

Plan credential management and rotation processes at the start of the project. Agreeing on responsibilities early makes day-to-day management straightforward. 

Object Storage: S3 compatibility in practice 

UpCloud’s Object Storage uses the S3 API, but the implementation is only partial. Among other things, we ran into Terraform provider bugs and unreliable versioning, which meant we had to introduce lifecycle configurations. The management console is minimal, and versioning status and lifecycle configurations are not directly visible. 

→ Lesson learned 

Test S3 integrations and versioning features thoroughly before going into production. 

Production migration on 15 June 2026 

The migration took place during a controlled maintenance window outside office hours. We migrated the database using a PostgreSQL dump, deployed the application to the Kubernetes cluster and routed traffic to UpCloud’s Load Balancer. The whole operation fitted comfortably within the planned eight-hour window, and a rollback plan was ready throughout.  

“It is great to see Gofore take such a concrete step with UpCloud. This project shows in practice how a Finnish cloud performs in a demanding production environment, and what collaboration between Finnish technology companies can achieve. We want to keep building partnerships like this and developing our services together with our customers.”

Teemu Toppola, Chief Product Officer, UpCloud, Gofore

THE OUTCOME

A working production environment and first-hand experience

Skill Radar moved to UpCloud as planned in June 2026. The migration was completed without data loss, and the system has run reliably since its first day in production. 

Managed PostgreSQL performed flawlessly, with automated backups, straightforward management and dependable performance. The Load Balancer was clear and easy to use, and SSL termination ran smoothly. Managed Kubernetes provides a cloud-native Kubernetes platform, with UpCloud responsible for the control plane. 

The project also showed us what to prepare for. The operator is responsible for the lifecycle of Kubernetes add-ons, separate credentials for different services need careful planning, and the S3 compatibility of Object Storage should be tested in advance. None of these are obstacles. They are practical details that are worth knowing before a project begins. 

Working closely with UpCloud, we gained first-hand experience of the entire journey, from the proposal process and architecture design to production migration and ongoing operations. That experience helps us know which questions to ask before choosing a cloud provider and what a move to UpCloud involves. 

“UpCloud offers a clear alternative for systems that need European data residency and a Kubernetes-native architecture. UpCloud also supports redundant multi-zone architectures, although this project did not require one.” – Gofore Cloud Team 

Considering a move to UpCloud?

We can help with procurement, architecture design, technical implementation and production migration, whether you are starting from AWS, Azure, GCP, another cloud environment or a traditional data centre. Get in touch and let’s talk about your next steps.

Key figures

  • 4 UpCloud managed services: Managed Kubernetes, Managed PostgreSQL, Managed Load Balancer and Managed Object Storage.
  • 8 infrastructure areas moved from AWS to UpCloud or replaced with a new solution.
  • 4 areas implemented with solutions from outside UpCloud: Docker registry, secrets management, monitoring and logging, and DNS.
  • 3 key lessons: Kubernetes add-on lifecycle management, credential planning and S3 compatibility testing.

Project highlights

Objective

To find out through hands-on production experience how Finnish cloud provider UpCloud performs and what a move from AWS involves. Skill Radar followed the same path as a customer project, from the request for proposal to day-to-day operations, so that Gofore can help its customers make informed cloud decisions.

Solution

Skill Radar’s architecture was built on UpCloud’s managed services for Kubernetes, PostgreSQL, load balancing and object storage. Where UpCloud had no equivalent service, we used established, platform-independent Kubernetes components. The database was migrated with a PostgreSQL dump during a controlled maintenance window, and a rollback plan was ready throughout.

Outcome

Skill Radar moved to UpCloud as planned in June 2026. No data was lost in the migration, and the system has run reliably since its first day in production. The project gave us first-hand experience of the entire journey, together with UpCloud. It also showed what to prepare for in advance when moving to a new cloud.

Contact us!

Ewa Tawaststjerna

Director, Digital Government

ewa.tawaststjerna@gofore.com

+358 407600392

Back to top