Automatisering og container services

Innovatec jobber med automatisering av forretningsprosesser. Ved bruk av container services (Docker og Kubernetes) ser vi nye muligheter til å bygge løsninger som gir mulighet til mer fleksibilitet. Fleksibilitet ved mulighet til hyppigere endringer og tilpasninger uten å behøve å ta ned produksjonsmiljøet.

Følgende er noen av fordelene med container service:

  • Isolasjon – tjenesten kan feile uten å påvirke andre tjenester
  • Fault tolerance – når en tjeneste feiler så vil miljøet automatisk opprette en ny instans av tjenesten
  • Continuous Integration/Development – går som hånd i hanske med CI/D tankesettet og DevOps, slik at en container kan forvaltes fra en utviklermaskin hele veien opp til produksjonsmiljøet
  • Konsistent miljø – garanterer at miljøet i en container som man utvikler på, vil bli helt lik det som går ut i produksjonen
  • Hyppigere deployment av endringer, for å kunne tilpasse seg raskere til endringer i markedet og kundens behov.
  • Sikkerhet – kun de porter og tjenester som er nødvendig blir kjørt i container

Microservices

Et begrep som ofte kommer opp i forbindelse med container service er microservices. Dette er et design mønster som kommer fra implementering av massive distribuerte systemer med krav om høy oppetid og «fault tollerance» som f.eks. Google og NetFlix.

Vi anser at man kan bruke en microservice for å implementere både automatiske og manuelle oppgaver i en prosess. Implementerer man en container service så vil man få et system der man suksessivt kan oppgradere manuelle oppgaver til automatiske oppgaver uten å behøve å ta ned systemet. Arkitekturen vil kreve en hendelsesdrevet tilnærming for å garantere at tjenestene er helt isolert fra hverandre (et krav i mikrotjeneste pattern). Det finnes ulike typer av hendelsesmodeller man kan brukes (Event Notification, Event-Carried State Transfer, Event-Sourcing og CQRS), noe som må vurderes i designfasen av prosjektet. Man trenger ikke implementere hele systemet med microservices og man bør være forsiktig på hvordan man legger opp arkitekturen for ikke å skape unødvendig kompleksitet, som kan lede til problemer i framtiden. Dette kan Innovatec hjelpe kundene med.

micro sept 2

Fordeler med microservices:

  • Man kan isolere kritiske deler av systemet for å kunne skalere opp/ned og monitorere aktiviteten mer nøyaktig
  • Sikkerheten blir ivaretatt gjennom å isolere tjenestene fra hverandre og det faktum at kodebasen blir mer oversiktlig
  • Enklere å holde hele systemet oppdatert for å minimere legacy kode
  • Pluss/Minus: Fleksibilitet i teknologi valg – hver container kan implementeres med den teknologien som passer best for objektet/målsettingen/oppgaven, men det kan tilføre/medføre utfordringer for vedlikehold av systemet.

Ufordringer med microservices:

  • For mange kunder representerer dette paradigmeskifte en bratt opplæringskurve for å lære seg design av distribuert systemer
  • Håndtering av master data
  • Distribuert logging og debugging
  • Forsinkelse (latency) på grunn av kall over nettverk
  • Arkitektur må støtte prinsippene med å minimere/eliminere avhengigheter mellom tjenestene

Innovatec kan tilby følgende tjenester:

  • Migrering til container services
  • Veiledning av reisen fra manuell oppgave til automatisert prosess
  • Identifisere oppgaver som kan automatiseres
  • Identifisere manuelle oppgaver som kan støttes med hjelp av microservices
  • Designe arkitektur med fokus på å sikre en løsning som drar nytte av fordelene av microservices pattern og unngå anti-patterns som leder til unødvendig kompleksitet
  • Implementasjon av løsning

a- tilbakeles-mer


Store oppgaver, enklere løsninger