I år 2000 ble Skandiabanken lansert som Norges første rene nettbank. Et ganske grensesprengende konsept på den tida.
Siden den gang har banken bytta navn til Sbanken, men konseptet er fortsatt det samme: En bank uten bankfilialer - noe de fleste strengt tatt har kopiert, nå som det blir stadig lengre mellom hver bankskranke.
Med rundt 450.000 kunder, som alle utelukkende bruker banken gjennom nettet, er utviklingsavdelingen virkelig kjernen av virksomheten: 60 utviklere sitter i Bergen, 20 stykker i Lisboa.
Så hvordan hostes og driftes en slik gigantisk operasjon? Hvordan takler man over fem millioner innlogginger i måneden?
kode24 tok en prat med Sbankens arkitekt John-Arne Fagerli, om Basefarm, Git, Grafana, Kubernetes og alle de andre teknologiene som er i sving.
#1. Hvor hostes det dere bygger i dag? 🏰
Alt vi bygger selv hostes i dag hos vår driftsleverandør Basefarm, redundant mellom deres datahaller.
Det er viktig for oss å knytte til oss en partner som er god på å bygge robuste hosting løsninger. Vi har lyst til å bruke mest mulig tid på å lage funksjonalitet til kundene.
Sammen med Basefarm er vi også i ferd med å flytte deler av driften vår til skyen.
#2. Hvordan håndterer dere deploy til servere? 🛫
Vi bruker, som de fleste, Git som kildekontrollsystem.
TeamCity og Octopus Deploy har trofast stått for bygging og utrulling de seneste årene.
Hos oss er det testerne som kjører selve releasen. Som en del av vår "skyreise" evaluerer vi stadig nye verktøy, hvor vi satser på SaaS-løsninger og GitOps-modellen
Slik hostes NSB.no og appene
CloudFront, Elastic Beanstalk og Route 53.
#3. Hva bruker dere til å holde oversikt over drift? 🔍
Selve driftsplattformen er det vår driftspartner som har hovedansvaret for å overvåke, men dette går hånd i hånd med overvåkning av applikasjonene.
For de plattformnære metrikkene bruker vi Grafana.
Når vi beveger oss opp i applikasjonslaget så bruker vi New Relic for APM og Splunk for loggaggregering.
#4. Hva bruker du mest tid på i hverdagen? ☕
Vi prøver i størst grad å skåne våre utviklere for å måtte tenke på hosting, ved å gjøre deployment så sømløst som mulig.
«Vi prøver i størst grad å skåne våre utviklere for å måtte tenke på hosting.»
Jo mer vi kan automatisere, jo mer effektiv blir deploy for brukerne.
Det går en del tid med til å vedlikeholde og videreutvikle automatikken. Vi bruker for tiden også mye tid på å se på container-isering av applikasjonene våre og hvordan vi etablere en god driftsmodell i skyen.
#5. Hva bruker dere til caching? 👾
Output cache er stort sett «no go» for oss, all den tid de fleste viewene våre er helt personlige og dynamiske for hver pålogget bruker.
Vi bruker likevel Redis for distribuert caching på applikasjonslaget og innenfor en brukersesjon.
Derfor velger Sanity Google for det meste
- Det beste nettverket i verden, forteller driftsansvarlig.
#6. Hva bruker dere til domener/DNS? 💙
Driftsleverandøren vår håndterer intern og ekstern DNS for oss. Dette faller naturlig inn under en driftspartners ansvar.
#7. Hva er du mest fornøyd med å ha gjennomført i forbindelse med hosting det siste året? 😚
Vi er godt i gang med å bryte opp den gamle monolitten vår og bevege oss mot en microservice-arkitektur.
Microservice-arkitekturen gir oss mange andre utfordringer vi må løse, men vi ser at i The Cloud™ kan mange av disse utfordringene løses gjennom tilgjengelige sky-produkter. For eksempel logg-aggregering, deploy-strategier, dynamic loadbalancing, skalering, distribuert tracing, apm og så videre.
«Vi er godt i gang med å bryte opp den gamle monolitten.»
Vi bygger en plattform rundt Kubernetes som jeg gleder meg til å få testet ut i produksjon.
#8. Hva har du lyst til å teste eller bytte ut fremover? 🤔
Vi er midt oppe i et teknologisk skifte, og gleder meg til å rulle ut sky-riggen vår.
Det finnes veldig mye god tooling rundt Kubernetes, så det er stadig nye verktøy som testes ut.
På bygg- og deploy-siden er det Circle CI og WeaveWorks Flux som testes ut.
#9. Hva skulle du ønske utviklere og kollegaer ble flinkere på? 🍬
Det at vi har en driftspartner kan bli en hvilepute i forhold til overvåkning og optimalisering av hvordan applikasjoner kjører i produksjon.
Jeg skulle ønske at vi ble flinkere til å dra nytte av mulighetene instrumentering gir, og at vi kunne brukt mer tid på å optimalisere hvordan applikasjonene kjører i produksjon.
Slik hostes VG.no
AWS, Heroku, Zetta.IO og Akamai. - Nevn en teknologi, så har vi hatt det i produksjon!