Sicra Header Logo
  • Karriere
  • Om oss
  • Folk
NorskEnglish
Kontakt oss
  1. Kunnskap
  2. Innsikter
  3. Blogg
Blogg
16.07.2025
min tid å lese

[Min reise mot CCIE Automation #2] Inventory REST API og mikrotjenestearkitektur

I blogg #2 av min CCIE Automation-reise tar prosjektet en ny retning. I stedet for enkeltstående verktøy bygger jeg nå en modulær applikasjon basert på mikrotjenester, med et Inventory REST API som kjerne. Fokus denne uken er på tjenestearkitektur, Docker og praktisk API-utvikling tett knyttet til CCIE Automation-blueprinten.

<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >[Min reise mot CCIE Automation #2] Inventory REST API og mikrotjenestearkitektur</span>
bilde
Bjørnar LintvedtSenior Network Engineer

Senior Network Engineer med fokus på nettverk, sikkerhet og automasjon.

(Denne artikkelen var tidligere en del av Bluetree.no. Siden Sicra og Bluetree har slått seg sammen, er nå innhold fra Bluetree overført til Sicra.)

[Min reise mot CCIE Automation #2] Inventory REST API og mikrotjenestearkitektur er del av en serie som dokumenterer min reise mot CCIE Automation. I det første innlegget introduserte jeg studieløpet og bygget en Python CLI-applikasjon. Denne gangen fokuserer jeg på å bygge et Inventory REST API og etablere grunnlaget for en mikrotjenestearkitektur.

Blogg #2

Denne gangen markerte et tydelig retningsskifte. I stedet for å bygge isolerte verktøy har jeg begynt å utvikle en større applikasjon bestående av flere mikrotjenester, der hver tjeneste dekker relevante temaer fra blueprinten.

Alt kjører nå i containere via Docker Compose, med en fremtidig overgang til Kubernetes i bakhodet. Denne tilnærmingen føles mer praktisk, mer modulær – og ærlig talt også morsommere.

Denne gangens hovedfokus i blueprinten var:

  • 2.1 Bygg, forvalt og drift et Python-basert REST API med et webapplikasjonsrammeverk

I tillegg var jeg også innom følgende punkter:

  • 4.1 Lage et Docker-image (inkludert Dockerfile)

  • 4.2 Pakk og distribuer en løsning ved å bruke Docker Compose

Blogg fokus #2: Inventory API og tjenestearkitektur

Hovedresultatet denne gangen var utviklingen av Inventory API-et – nå en selvstendig mikrotjeneste som utgjør ryggraden i applikasjonen.

  • Inventory-tjenesten
    Fungerer som et REST API for CRUD-operasjoner på enhets- og link-modeller. I tillegg kan man hente full topologi (alle enheter og koblinger) gjennom ett separat API-kall.

Teknologistack:

  • Flask og Flask-RESTx for REST API og OpenAPI-dokumentasjon

  • Flask-SQLAlchemy for ORM og databaseoperasjoner

  • SQLite som et lettvekts utgangspunkt (med planer om å gå over til Postgres senere)

  • Dockerfile for å containerisere tjenesten

  • Docker Compose for å orkestrere flere tjenester sammen

Refaktorering av kode fra blogg #1 til tjenester

For å bevege meg mot en mer modulær mikrotjenestearkitektur har jeg delt opp scriptet fra blogg #1 i to dedikerte tjenester:

Automation Service
  • Henter periodisk (via cron-jobb) enheter og koblinger fra Catalyst Center API
  • Pusher dataene inn i Inventory API-et for å holde inventory oppdatert

Topology Service

  • Spør periodisk Inventory API-et etter gjeldende enhets- og link-data
  • Genererer nettverkstopologi-tegninger som eksponeres via Nginx

Samspill mellom tjenester

architecture

- Å hei - la du merke til det?

Applikasjonen har nå fått et navn – Nautix!

Navnet er en blanding av network, automation og det klassiske -ix-suffikset som får det til å høres ut som det gjør langt mer enn det egentlig gjør. Og for å være helt ærlig – det høres også litt rampete ut, noe som passer bra siden applikasjonen neppe er produksjonsklar med det første.

Modulær og utvidbar arkitektur

Denne mikrotjenestemodellen gjør det enklere å skalere løsningen og samtidig holde den tett opp mot CCIE Automation-blueprinten:

  • Jeg vil fortsette å bygge nye tjenester etter hvert som jeg jobber meg gjennom studieplanen – for eksempel orkestreringstjenester, helsesjekk-tjenester eller telemetritjenester.

  • Eksisterende tjenester som Inventory, Automation og Topology vil også bli forbedret og utvidet med mer avansert funksjonalitet etter hvert som nye blueprint-temaer dekkes.

Refleksjoner #2

  • Jeg hadde ingen tidligere erfaring med Flask, men bakgrunnen min fra Django gjorde konsepter som ruting, modeller og serialisering intuitive.

  • Jeg likte veldig godt å jobbe med Flask-RESTx – det er en applikasjon med lavt ressursforbruk, intuitivt og gir både input-validering og OpenAPI-dokumentasjon nesten gratis.

  • Docker Compose vil fremover være fundamentet for å kjøre alle nye tjenester i denne CCIE-forberedelsesapplikasjonen.

  • Persistente data for SQLite i Docker var enklere å få til enn forventet ved hjelp av volume mounts.

  • Jeg kjører foreløpig miljøvariabler direkte når jeg starter docker-compose som en midlertidig løsning, frem til jeg kommer til blueprint-punktet om secrets management.

  • Det er helt sikkert mye som kan forbedres, men akkurat nå er jeg veldig fornøyd med fremdriften denne gangen.

Hva skjer videre (etter sommerferien)

Jeg tar nå en kort sommerpause og fortsetter CCIE Automation-studieplanen igjen i siste uke av august. Blogg #3 vil ha fullt fokus på NETCONF:

Blueprint-punkt 2.4 Opprett en NETCONF-payload basert på en gitt YANG-modul, og tolk responsen

Blueprint-punkt 2.5 Opprett et NETCONF-filter ved bruk av XPath

Blueprint-punkt 2.6 Konfigurer nettverksenheter i en eksisterende infrastruktur ved hjelp av NETCONF og YANG-analyseverktøy

Jeg har valgt å fokusere utelukkende på NETCONF i blogg #3. Det blir flere mikrotjenester, mer XML og YANG-verktøy – og selvfølgelig enda mer Docker.

Nyttige lenker

GitLab-repo – min CCIE Automation-kode

Flask-RESTx-dokumentasjon

Docker Compose-dokumentasjon

Bloggserie

  • [Min reise mot CCIE Automation #1] Introduksjon + bygging av en Python CLI-applikasjon

  • [Min reise mot CCIE Automation #3] Orchestration API og NETCONF

  • [Min reise mot CCIE Automation #4] Automatisering av nettverksoppdagelse og rapporter med Python og Ansible

  • [Min reise mot CCIE Automation #5] Bygging av nettverkspipelines for pålitelige endringer med pyATS og GitLab CI

  • [Min reise mot CCIE Automation #6] Automatisering av Cisco ACI-utrulling med Terraform, Vault og GitLab CI

  • [Min reise mot CCIE Automation #7] Utforsking av Model-Driven Telemetry for sanntidsinnsikt i nettverket

  • [Min reise mot CCIE Automation #8] Utforsking av ThousandEyes og automatisering av Enterprise Agent-utrulling

  • [Min reise mot CCIE Automation #9] Anvendelse av OWASP Secure Coding Practices

  • [Min reise mot CCIE Automation #10] Fra Docker Compose til Kubernetes

Trenger du bistand?

Vi tar gjerne en uforpliktende prat.
Kontakt oss

Les mer

Cybertrusselbildet 2026: Innsikt fra Arctic Wolf sin trusselrapport
Blogg

Cybertrusselbildet 2026: Innsikt fra Arctic Wolf sin trusselrapport

Arctic Wolf Threat Report 2026: Ransomware er fortsatt trussel nummer én.
IAM for dummies
Blogg

IAM for dummies

En enkel og praktisk innføring i IAM og hvorfor riktig tilgang er avgjørende.
Hvordan redusere kostnad i Microsoft Sentinel og Defender XDR
Blogg

Hvordan redusere kostnad i Microsoft Sentinel og Defender XDR

Kostnader og valg for logging i Microsoft Sentinel og Defender XDR.
Sicras sikkerhetstriangel: Helhetlig IT- og OT-sikkerhet gjennom ledelse, overvåkning og ekspertise
Blogg

Sicras sikkerhetstriangel: Helhetlig IT- og OT-sikkerhet gjennom ledelse, overvåkning og ekspertise

Sicras sikkerhetstriangel gir helhetlig sikkerhet på tvers av IT, OT og ledelse.

Hold deg oppdatert
Motta siste nytt fra Sicra

Linker
BærekraftFAQPartnereSertifiseringerKarrierePresse
Kontakt
Tel: +47 648 08 488
E-post: firmapost@sicra.no

Posthuset, Biskop Gunnerus' gate 14A, 0185 Oslo

Følg oss på LinkedIn
Sertifiseringer
iso27001-white
ISO 27001
miljofyrtarnlogo-hvit-rgb
Miljøfyrtårn
Sicra Footer Logo
Sicra © 2025
Personvern