En e-tjänst består ofta av 3-4 mindre applikationer och är i princip alltid integrerad med 3-7 andra stödsystem eller verksamhetssystem. Ett stort system kan bestå av 500 applikationer.
Mjukvaran och ramverk är många, det är inte alls ovanligt att en applikation behöver 10-15 talet mjukvara/ramverk för att fungera.
Antalet miljöer är många, det är inte ovanligt att använda 4 olika miljöer (t.ex. Utveckling, systemtest, acceptanstest, integrationstest, produktion..). Utveckling, test och driftsättning är en tidsödande och kostsam process.
Hur skall man då göra?
Industrin har löst detta genom olika arkitekturmönster som “micro service” och infrastruktur konceptet som PaaS (Platform as a service) med container paketering. Man kan säga att infrastrukturen programmeras istället för att installera mjukvara på olika servrar.
När detta implementeras enligt mönster CD/CI (Continuous delivery/Continuous integration) får beställaren en helt nya förutsättning.
Vad är Platform as a service(PaaS)
"PaaS är en typ av molntjänst som tillhandahåller en datorplattform och en uppsättning programvarusystem som en service. Tillsammans med Software as a service (SaaS) och traditionell molntjänst (IaaS), är det en servicemodell inom området molntjänster. I denna modell, skapar användaren programvara med hjälp av verktyg och bibliotek från leverantören. Användaren styr också driftsättning och konfigurering. Leverantören tillhandahåller nätverk, servrar, lagring med flera tjänster." - Wikipedia
Vad är ett containerkoncept (med Docker)
Docker är en teknik eller verktyg för att paketera en applikation tillsammans med all den mjukvara och konfigurering som behövs för att den skall fungera. Paketeringen sker normalt sätt via fördefinierade skrift och konfigurering. Docker tillämpar ett mallkoncept där centralt kvalitetssäkrades images används för att skapa applikationer eller rättare sagt paket med både operativsystem, mjukvara och applikationen.
Paketeringen eller containern kan därmed startas utan vidare installation och konfigurering. En container är utformad för att fungera i en PaaS.
Varför skall en organisation anamma ett molnkoncept (PaaS) för sina e-tjänster(applikationer)
Ett drivande behov för ett molnbaserat koncept är ett effektivare nyttjande av infrastruktur och plattformar. Miljöer skapas automatiskt tillsammans med den applikation (t.ex. applikationen ärendehantering). Allt är virtualiserat och styrs via konfigurationer.Beroendet till specifika miljöer försvinner.
Stora tidsbesparingar. Nya miljöer kan inom definierat scope skapas på några minuter. Behov av installation och konfigurering minskar drastiskt
Ett steg på inslagen linje. Driftorganisationer har sannolikt redan investerat i infrastruktur och mjukvara som pekar i denna riktning.Virtuella servrarByggserverAutomatiserade testerModulariserad arkitekturArkitekturen PaaS är etablerad inom industrin.
Test av parallella versioner förenklas avsevärt till låg kostnad.Parallella miljöer kan körasSkalbarhetMöjlighet att göra många små rullande releaser. Big bang releaser kan undvikas (förutsatt modern arkitektur)Idag tar en release ca 100-150 tim. Bara e-tjänsterna kommer göra ca 5-6 releaser per år.
Lösningsförslag - Tillämpa PaaS och container arkitektur
En fullt automatiserad process innebär att en mängd mjukvaror och tjänster behöver samverka. Ett sätt att få ordning på all mjukvara, konfigurering och tjänster är att skaffa ett verktyg som OpenShift. OpenShift är en paketering för att underlätta styrning av alla komponenter som ingår.
Bilden illustrerar de övergripande komponenter som behövs för full automation som stöder container konceptet. Grönt indikerar komponenter som används idag. Verktyget "openShift" används för att paketera och styra PaaS.
Steg:
Utvecklare checkar in källkod och initierar bygga av en applikation.
Applikation byggs automatiskt och testat mot fördefinierade tester t.ex. enhetstester.En Docker image(t.ex. operativsystem) hämtasPaketering av applikation tillsammans nödvändig mjukvara.Konfigurering sker (t.ex. konfiguration, referens till certifikat etc)Paketeringen (pod) distribueras till önskat antal noder.Applikationen finns nu konfigurerad och distribuerad i önskad målmiljö t.ex. enkel server miljö eller ett kluster för redundans. Hela processen styrs av en deploy via ett webbgränssnitt, CLI(command line interface) eller REST-API.
En mycket positiv effekt av denna teknik är att personal mycket enkelt kan skapa en egen miljö för utveckling, test, felsökning eller demo. Du behöver inte beställa en miljö utan kan start en egen instans.
Infrastruktur per applikation/projekt
För att underlätta förvaltning och administration bör varje applikation(förvaltningsobjekt) och miljö nyttja egen PaaS.
Bilden illustrerar hur ett container koncept kan vara uppbyggt. Bilden är ett exempel, varje förvaltning väljer hur man vill segmentera/dela upp sina miljöer eller hur många miljöer som behövs. Komponenter för att möjliggöra klusterkommunikation kommer behövas t.ex. Flannel eller Weave
Vad krävs då av arkitektur, utvecklare, test och driftpersonal för att lyckas med ett PaaS koncept?
Sammanfattning:
Det finns stora fördelar med att etablera ett PaaS koncept inom en organisation. Tekniken är mogen och infrastruktur finns etablerad både hos drift leverantören.
Införande av PaaS har en mindre teknisk påverkan men påverkar arbetssätt och organisation.
Nya applikationer bör utformas modulärt samt utformas för att fungera i PaaS. T.ex. Docker anpassning.
Befintliga applikation behöver utvärderas case-by-case då omfattande plattformsspecifik kod kan vara kostnadsdrivande.
För att kunna går mot PaaS med ett container koncept kommer dock påverka val av applikationsserver. En "mindre" lättvikts applikationsserver bör användas.
Commentaires