Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på Twitter

Callista medarbetare Jan Västernäs

Magnus använder molnmiljö för att köra workshop

// Jan Västernäs

Magnus Larsson - Du har nyligen kört en workshop kring Microservices?
Jo det stämmer, det var internt för kollegorna på Callista, en gång i Stockholm och en gång i Göteborg. Vi höll på 3,5 timmar på vardera orten.

Är materialet baserat på den 2:a upplagan av din bok ”Microservices with Spring Boot and Spring Cloud?
Så är det, 2:a upplagan är ju en stor omarbetning jämfört med den första, jag har beskrivit det i en bloggpost https://callistaenterprise.se/blogg/teknik/2021/08/09/microservices-book-2nd-edition-updates/ Sedan har jag också samlat på mig mer erfarenhet från olika kundprojekt så det fanns ganska mycket nytt material jämfört med för 2-3 år sedan.

Vad är syftet med workshopen?
I början är det ganska enkelt att komma igång med att antal microservices men efter ett tag har man kanske ett systemlandskap som ställer lite nya utmaningar avseende förvaltningsbarhet. Workshopen visar på vilka verktyg man kan använda för att underlätta den situationen. Allt fler kunder väljer Kubernetes för att hantera sina mikrotjänster, men varefter systemlandskapet växer kan man behöva verktyg som kompletterar Kubernetes för att övervaka, felsöka och styra trafiken i systemlandskapet.

Vill du nämna några av de verktyg som används i workshopen?
För lokal utveckling och test av funktionalitet i mikrotjänsterna använder vi Visual Studio Code som IDE och Docker för att köra testcontainers samt Docker Compose för att lokalt starta mikrotjänster som man vill testa tillsammans.

För att sedan kunna testa mikrotjänsterna lokalt i en miljö som är mer lik en produktionsmiljö så använder vi en paketering av Kubernetes som heter Minikube där vi också har med:

  1. Prometheus och Grafana, för övervakning och larm av resursutnyttjande
  2. Elasticsearch, Fluentd och Kibana, för insamling och analys av log-utskrifter
  3. Jaeger, för att förstå vad som tar tid i långa anropskedjor, så kallad Distributed Tracing
  4. Istio och Kiali, en service mesh som möjliggör observerbarhet, ökad säkerhet, resilience och trafikstyrning

Vad är målet med workshopen?
Efter workshopen skall deltagarna känna att de:

  1. Förstår vikten av att separera funktionella tester från tester av att mikrotjänsterna fungerar i den tänkta infrastrukturen för produktionsmiljön.
  2. Förstå hur de olika infrastrukturverktygen som nämns ovan kan användas tillsammans för att kunna hantera mikrotjänster i en produktionsmiljö.
  3. Förstår hur man kan automatisera tester som verifierar att mikrotjänster fungerar som tänkt i en produktionsmiljö.

Ett problem när deltagarna skall arbeta själva och lösa ett antal uppgifter är ju att det ofta kräver mycket installation och konfiguration innan man kan börja jobba, och det är en process som kan generera många fel längs vägen. Vilket i sin tur påverkar genomförandet väldigt negativt då instruktören måste lägga massa tid på att verifiera och lösa den typen av problem, jag tror vi alla drabbats av det någon gång. Jag förstår att du provat ett annat upplägg denna gång?.

Ja, absolut. Jag har använt AWS CDK som Erik Englund pratat om på Cadec https://callistaenterprise.se/blogg/presentationer/2021/02/11/cdk/ för att automatiskt skapa en workshop-miljö i en AWS EC2 instans som innehåller alla verktygen samt källkoden från boken. Med det uppnådde vi 100% reproducerbara miljöer. Jag kunde scripta upp alla deltagares miljöer med en ganska liten arbetsinsats.

För att jobba i workshop-miljön så används Visual Studio Code lokalt installerat på deltagarnas egna datorer. Mha Visual Studio Code stöd för Remote Development som beskrivs här https://code.visualstudio.com/docs/remote/remote-overview så kan man jobba mot workshop miljön nästan som om den vore installerad lokalt. Men det var det enda man behövde installera själv.

Så källkoden ligger i AWS men du editerar den i Visual Studio Code på din egen maskin och det känns som om den låg lokalt
Ungefär så, ja.

Det låter som en väldig bra lösning för att undvika de problem som jag nämnde ovan. Du hade ju 25 deltagare vid ett av tillfällena och då kommer det ju garanterat att strula för i alla fall en deltagare med ett traditionell installera-15-produkter-på-din-egen-dator-lösning?
Jo vi slapp egentligen alla problem dem här gången och kunde istället fokusera på ämnet.

Vad tyckte deltagarna? Några citat:
”Tackar för ett bra och trevlig workshop. Som vanligt fullproppat med spännande saker att dyka ned i när Magnus gör något.”
”Proffsigt förberedd workshop!”

Roligt att höra, tyckte också att det flöt på bra.

Är det möjligt att köra den hör workshopen hos en av våra kunder?
Ja det fungerar bra, framförallt med tanke på den setup vi valt med AWS och Visual Studio Code gör att det borde fungera bra oavsett kundens interna IT-miljö. Håll utkik efter annonsering av detta framöver.

Tack Magnus:

Några smakprov nedan från workshopen

Debug av en unit-test:

Intressanta vyer med Kiali:

Något som gått sönder i landskapapet?

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer