Skill Radarin uusi arkkitehtuuri rakennettiin UpCloudin hallittujen palveluiden varaan: konttialustaksi valittiin Managed Kubernetes, tietokannaksi Managed PostgreSQL, kuormantasaukseen Managed Load Balancer ja lokien tallennuksessa hyödynnettiin Managed Object Storagea.
Siellä missä UpCloudilta puuttui vastaava hallittu palvelu, hyödynsimme vakiintuneita alustariippumattomia ratkaisuja: Docker-imageille Bitbucket Packagesia, salaisuuksien hallintaan External Secrets Operatoria yhdistettynä AWS Parameter Storeen, ja metriikka- sekä lokidatalle kube-prometheus-stackia (Prometheus, Grafana, Loki, Alloy). Nämä ovat laajasti käytettyjä Kubernetes-ympäristöjen komponentteja, jotka toimivat alustasta riippumatta.
| Käyttötarkoitus |
AWS-vastaavuus |
UpCloud-ratkaisu |
Tila |
| Konttiplatform |
ECS |
Managed Kubernetes |
✓ Hallittu palvelu |
| Tietokanta |
RDS PostgreSQL |
Managed PostgreSQL |
✓ Hallittu palvelu |
| Kuormantasaus + SSL |
ALB |
Managed Load Balancer |
✓ Hallittu palvelu |
| Objektitallennus / lokit |
S3 |
Managed Object Storage |
~ Osittainen S3-tuki |
| Docker-rekisteri |
ECR |
Bitbucket Packages |
✗ Ei UpCloud-palvelua |
| Salaisuuksien hallinta |
Parameter Store |
AWS Param. Store + External Secrets Op. |
✗ Ei UpCloud-palvelua |
| Monitorointi & lokitus |
CloudWatch |
Prometheus + Grafana + Loki + Alloy |
✗ Ei UpCloud-palvelua |
| DNS |
Route 53 |
Route 53 (säilytettiin AWS:ssä) |
✗ Ei DNS-palvelua |
UpCloudin hallittujen palveluiden valikoima on hyperscalereita rajatumpi, mikä on hyvä huomioida arkkitehtuurissa ja resurssoinnissa etukäteen.
Kubernetes-ympäristön vastuunjako
UpCloud vastaa Managed Kubernetes control planen ylläpidosta ja versiopäivitysten tarjoamisesta. Data planen päivitykset voi ajastaa joko automaattisesti tai manuaalisesti oman aikataulun mukaan. Sovellustason lisäosien elinkaari – Ingress Proxy (Traefik), External Secrets Operator, kube-prometheus-stack – jää operaattorin vastuulle: asennukset, konfiguraatiot ja päivitykset erikseen. Tämä on normaali Kubernetes-toimintamalli riippumatta alustasta, mutta se on syytä resurssoida etukäteen.
→ Oppi
Resursoi lisäosien elinkaaren hallinta etukäteen. Jokaisen add-onin tietoturvapäivitykset ja Kubernetes-versioyhteensopivuudet vaativat jatkuvaa seurantaa.
Käyttöoikeuksien hallinta
UpCloudin identiteettimalli poikkeaa hyperscalereista: käyttäjätunnukset ovat globaalisti uniikkeja koko ekosysteemissä, eikä samaa tunnusta voi käyttää useammassa tilissä. Käytännössä eri käyttötarkoituksiin tarvitaan erilliset tunnistautumisvälineet – konsoliin kirjautuminen, API-token, Object Storage -avaimet, Kubernetes-sertifikaatti – joilla jokaisella on oma elinkaarensa.
→ Oppi
Suunnittele tunnisteiden hallinta ja rotaatioprosessit projektin alussa. Vastuiden etukäteinen määrittely tekee hallinnasta suoraviivaista.
Object Storage: S3-yhteensopivuus käytännössä
UpCloudin Object Storage käyttää S3-rajapintaa, mutta rajapinnan toteutus on osittainen. Törmäsimme muun muassa Terraform-provider-bugeihin ja epäluotettavaan versiointiin, mikä edellytti lifecycle-konfiguraatioiden käyttöönottoa. Hallintakonsoli on minimalistinen: versioinnin tila ja lifecycle-konfiguraatiot eivät näy suoraan.
→ Oppi
Testaa S3-integraatiot ja versionointiin liittyvät toiminnot huolellisesti ennen tuotantokäyttöä.
Tuotantosiirto 15.6.2026
Siirto toteutettiin 2026 kontrolloidun käyttökatkon aikana toimistoaikojen ulkopuolella. Tietokanta siirrettiin PostgreSQL-dumpilla, sovellus otettiin käyttöön Kubernetes-klusterissa ja liikenne ohjattiin UpCloudin Load Balanceriin. Koko operaatio mahtui hyvin sille varattuun kahdeksantuntiseen aikaikkunaan – rollback-suunnitelma oli valmiina koko operaation ajan.