Utveckling & Arkitektur

Skrivet 2019-12-03

Molntjänster

Molnet är ett mycket omtalat ämne och har varit det i över tio år nu. Argumenten för molnet har inte utvecklats mycket under denna tid, de stora punkterna är fortfarande: Flexibilitet, säkerhet och lägre förvaltningskostnader. Och det är sant, att migrera ditt system till molnet göra att du lätt kan öka eller minska exempelvis processorkraft och lagring. Det medför också skydd mot många typer av attacker och automatisk backup för din data. Förutom lättnaden att låta andra ta hand om förvaltningen av miljön ditt system kräver, finns det numera även ett flertal praktiska verktyg som färdiga AI lösningar och DevOps möjligheter att dra nytta av. Molnlösningen i sin helhet har mognat under tiotalet, är det en bra tid att migrera sina system till molnet?

Varför välja Azure?

Det finns ett flertal olika molnleverantörer att välja mellan, de stora spelarna är:

  • Amazon Web Services
  • Azure
  • IBM
  • Oracle
  • Google

Amazon och Microsoft dominerar tillsammans marknaden för montjänster, i alla fall för Enterprise-tjänster. Så vad är Azures styrkor jämtemot konkurrenterna?
Att Azure är stort på marknaden är en styrka i sig, eftersom det används av många är det lättare att hitta kompetent personal för företag och det är lättare för Azure utvecklare att hitta jobb. Azure är också lätt koppla till befintlig infrastruktur om företaget redan använder sig av Windows och Outlook. Azure Active Directory gör att de anställde kan använda sina befintliga konton hos Azure. Microsoft har också en unik ”Pay as you go” struktur som skiljer sig från konkreterna. En vanlig betalningsmodell för molntjänster är att köpa diskutrymme och Virtual Machines som matchar det behov man har. Azure har alternativ som kostar per anrop eller tid din applikation kör och många andra modeller. Det gör att Azures användare kan skräddarsy sina kostnader på ett sätt som är svårare hos andra molntjänster.

Vi sätter upp ett litet projekt

För att kunna bedöma Azure:s styrkor och svagheter sätter vi upp ett litet miniprojekt där vi använder några av den mängd tjänster som finns i Azure idag. Vi har skaffat oss en överblick över de tjänster som Azure erbjuder och har valt några specifika tjänster inom text- och bildbehandling som vi var nyfikna på. Tjänster med funktioner som man normalt kanske inte väljer att implementera själv. Med hjälp av dessa tjänster skall vi bygga en applikation som skannar en text och sedan rättar dess stavning. Vi kommer då även använda ett antal av de mer vanliga tjänsterna i Azure. Våra erfarenheter av att använda Azure kommer vi sedan att presentera i ett nytt blogginlägg.

microsoft-azure-managed-services-2-1
De tjänster vi planerar att använda är:

Ink Recognizer
En AI-tjänst som identifierar digitala pennanteckningar, som handskrift, former och layouter.

Bing Spell Check
Bing spell check har två varianter: stavningskorrigering för webbsökningar (”Stavningskontroll”) och dokument (”Korrektur”).
Vi kommer att använda oss av ”Korrektur” då den är mer detaljerad och ger förslag på användning av gemener/versaler, grundläggande interpunktion och annat som hjälper till att skapa ett lättläst dokument.

Service Bus
En molnbaserad meddelandetjänst som underlättar kommunikationen mellan de program och tjänster vi kommer att använda oss av.

SQL Database vs Cosmos DB
Om vi hinner så skulle det vara bra med någon from av databastjänst för att lagra den data vi tar emot och skickar. Azure har olika alternativ som SQL Database Edge och Cosmos DB. Vi får se vilken tjänst som passar våra behov bäst.

DevOps
Azure har ett par tjänster för att planera, samarbeta och driftsätta projekt. Vi tänkte använda DevOps för att se om det underlättar flödet i vårt projekt.

Funderingar som vi har innan vi börjar bygga vår applikation

Innan vi börjar bygga vår applikation så har vi några tankar och funderingar som vi kommer att försöka svara på under projektets gång. Våra insikter kommer vi att presentera i ett kommande blogginlägg där vi redogör för hur vårt lilla projekt har gått.

  • Blir det mer komplicerat med dessa tjänster eller smidigare?
  • Hur hårt bundet är vi till dessa tjänster? Kommer det skapa problem för underhåll och framtida utveckling?
  • Vad kommer först? Azure eller arkitektur? Bygger vi saker utifrån vad Azure erbjuder eller hjälper Azures tjänster att bygga vår applikation?
  • Hur mycket kan vi egentligen styra kostanden för vår applikation?
Om vi inte hade använt oss av en molntjänst
  • Hade vi haft en annan arkitektur? Hur har vi designat vårt system annorlunda mot hur vi brukar?
  • Hade vi kunnat erbjuda samma funktionalitet utan Azure?
  • Hur dyrt är det att använda Azure. Hur stor kostnadsskillnad hade det varit om vi inte kört Azure?

Vad ska vi göra nu?

Nu kommer vi fortsätta med att testa Azure och bygga vår lilla applikation med tjänsterna ovan. Vi är fyra utvecklare/arkitekter med olika erfarenhet av Azure som kommer lägga någon timme i veckan mellan andra åtaganden på detta. En bit in på 2020 får vi se hur långt vi kommit och då kommer vi redogöra för hur det gått och våra erfarenheter från projektet och av hur det är att bygga applikationer med Azure.