briefcase-business Created with Sketch. building-industry Created with Sketch. Slice 1 document-writing Created with Sketch. image/svg+xml Group 5 Created with Sketch. helmet-hardhat Created with Sketch. image/svg+xml shop-building Created with Sketch. tall-building Created with Sketch. Group Created with Sketch. image/svg+xml

Arkitektur

Når Frende ble startet for rundt ti år siden ble arkitekturen satt opp rundt en massiv salgsapplikasjon som ble deployet på tradisjonell måte med omfattende testperioder og lange releasesykluser. Deler av denne applikasjonen er riktignok fortsatt er i bruk, men Frende har siden den gang gradvis innført en arkitektur basert på micro services og JavaScript-baserte brukergrensesnitt. Vi har per i dag rundt 60 REST API, hvor samtlige er bygget på ASP.NET Web API 2. På serversiden bruker vi i hovedsak C#, men også F# har funnet veien inn i senere tid. På klientsiden er det for tiden React som er mest i bruk, men i det siste har også Elm funnet veien ut i produksjon.


Utviklerne jobber i all hovedsak på master branch i Git, og sjekker inn og deployer så ofte som mulig. Vi har erfart at feature switching fungerer langt bedre enn feature branching. Vi har ingen store releaser, og prodsetter typisk 10-15 applikasjoner hver dag. Totalt sett har vi rundt 200 aktive repositories. Ved behov bruker vi pull requests som en kontrollmekanisme, men generelt sett stoler vi på at utviklerne gjør det de skal. Vi samarbeider tett med forretning når det gjelder testing, og jobber for tiden aktivt med å sette opp automatiserte tester.


Vi mener at det er viktig å velge riktig teknologi til riktig bruk. På databasesiden benytter vi primært SQL Server, men har også tatt i bruk RavenDB og Couchbase. Det er kanskje ikke alle teknologivalg opp gjennom årene som har vært like vellykkede, men vi ser likevel en stor verdi i å holde oss oppdatert og prøve ut nye muligheter. Vi liker å tro at dette er noe av grunnen til at vi tiltrekker oss flinke folk, som blir i bedriften i mange år.


Enhver utvikler i Frende har mye ansvar, og store muligheter til å påvirke valg av verktøy og teknologier. Veien fra egen maskin til produksjon er kort, noe som fører med seg en viss risiko for å rote ting til. Dette har de fleste av oss prøvd noen ganger. I disse situasjonene vil omfattende overvåking og mulighet for kjapp rollback hjelpe til å sørge for å minimere problemene for sluttbrukerne. I mange tilfeller får vi deployet en fiks til produksjon før feilen i det hele tatt er meldt. Vi benytter Splunk for innsamling og visualisering av loggdata, og har i tillegg laget en egen løsning for spesialisert overvåking. I øyeblikket ser vi på muligheter for å integrere kritisk overvåking i Slack, som er verktøyet vi benytter for intern kommunikasjon.


Frende vil i tiden fremover åpne opp API’ene sine for eksterne klienter, noe som vil medføre en del endringer i måten vi jobber på. Vi vil måtte forholde oss til langt større last, økende krav til sikkerhet, og behov for versjonering og dokumentasjon. I den forbindelse ser vi etter strukturerte og oppegående utviklere som har lyst til å være med og ta Frende sin IT-plattform til neste nivå. Du må ha øye for detaljer, like å jobbe i små eller store team, og ha en genuin lyst til å lære mer. En solid dose erfaring med utvikling i .NET eller JavaScript er selvfølgelig positivt, men riktig innstilling og pågangsmot er vel så viktig.