Data & MoreDriftmt.dataandmore.com

Hanteraflottan.

Hanteringsverktyget är den interna konsolen påmt.dataandmore.com som driftteamet använder för att köra hela kundflottan: driftsätta en ny verktygslåda, pusha en versionsuppgradering, övervaka CPU och disk, se vilken kund som äger vilken driftsättning, publicera versionsnoteringar, läsa loggar och kontrollera NPS. Det befinner sig ett steg ovanför själva plattformen och har överblick över varje aktiv instans.

En konsol, varje verktygslåda, varje kund, en skärm i taget.

354hanterade verktygslådor
8sidopanelsytor
14API-blueprints
6containertjänster
Avsnitt 01Syfte

Vad verktygetgör

Varje Data & More-kund kör sin egen plattformsinstans, "verktygslådan": en fristående uppsättning mikrotjänster för inmatning, profilering, klassificering, policy och rapportering. Hanteringsverktyget är den plats varifrån en operatör driftsätter dessa verktygslådor, håller dem på rätt version, övervakar deras hälsostatus och kopplar dem till en betalande kund, en partner, ett kontrakt, en prenumeration och ett förnyelsedatum.

Livscykel

Driftsätt och uppgradera verktygslådor

Lägg till en ny server, pusha en ny plattformsversion, aktivera eller inaktivera automatiska uppdateringar, ladda ner SSH-nyckeln eller TLS-certifikatet för verktygslådan, eller avveckla en instans. Varje åtgärd är en rad i serverlistan.

Handel

Koppla verktygslådor till kunder

Varje verktygslåda är kopplad till en kund, en partner, ett abonnemang, ett pris samt ett start- och förnyelsedatum. Prenumerationer, betalningar (Stripe), CRM (HubSpot) och notifieringar är integrerade.

Insikt

Se flottan, inte de enskilda träden

CPU, disk, RAM och källinmatningshastigheter per verktygslåda, samt aggregerade vyer: klassificeringsdrift, källhälsa, loggar, NPS-undersökningar och leverans av versionsnoteringar.

Avsnitt 02Arkitektur

Containernslayout

Verktyget levereras som ett Docker Compose-stack. NGINX terminerar TLS i fronten; ett Flask API och en Celery-liknande worker delar samma image; ett Vue 3 SPA tillhandahåller gränssnittet; RabbitMQ hanterar asynkrona uppgifter mellan API och worker;dm-notify skickar e-post. Beständigt tillstånd lagras i plattformens gemensamma Elasticsearch, nått via samma säkra nätverk som alla andra Data & More-tjänster.

KUND EDGE SPA API PLATTFORM Operatörens webbläsare autentiserad session mt.dataandmore.com NGINX TLS, omvänd proxy :80, :443 Vue 3 SPA services/client vyer + Vuex store Flask API 14 blueprints servers, clients datasources, workspaces payment, notifications, nps release_notes, logs, auth Worker asynkrona uppgifter .Dockerfile.worker RabbitMQ kö, AMQP rabbit (hostname) köa dm-notify e-post + aviseringar ECR image, :8002 skicka e-post Plattform gemensamt substrat Elasticsearch (data) Prometheus (mätvärden) IAM / JWT-nycklar Stripe (fakturering) HubSpot (CRM) läs + skriv Externt Docker-nätverk: dm delas med alla andra Data & More-tjänster, inga publika portar förutom 80 / 443 via NGINX
Intern datasökväg Plattform läs / skriv Tillståndskänsligt / delat substrat
Figur 01, docker-compose i korthet
Avsnitt 03Navigering

Åtta ytor isidofältet

Det vänstra fältet är hela navigeringen. Varje yta är en Vue-vy och ett eller flera Flask-ritningar bakom den.

01

Servrar

Verktygslådeflottan. Standardlandningsskärmen för drift.

02

Källor

Per-verktygslåda källkopplingar, med frekvenser för skanning / inmatning / profilering.

03

Klienter

Kundföretag, planer, MRR, förnyelsdatum, NPS.

04

Policy

Planredigerare, vad varje prenumerationsnivå inkluderar.

05

NPS

Net Promoter-undersökningsanalys över hela flottan.

06

Klassificering

Globala klassificeringsordlistor som skickas till varje verktygslåda.

07

Loggar

Sökbar revisions- / aktivitetslogg över alla driftsättningar.

08

Versioner

Versionsnoteringar som levereras till kundernas verktygslådor.

Avsnitt 04Flottan

Servrar-listan

Det här är vad varje operatör ser först. 354 av 354 verktygslådor, en rad per driftsättning, med filterfältet till vänster och en kompakt åtgärdsrad till höger. Mockupen nedan är trogen mot den aktiva skärmen.

Management Tool djunge Servrar Källor Klienter Policy NPS Klassificera Loggar Versioner Filter Sökfilter Varningar Affärsstadium Server-ID Instanstyp Serverplats Partner Serverstatus Serverversion Uppdateringar aktiverade +++ +++ +++ Serverlista (354 av 354) Sök Dölj ES-noder + Lägg till server SERVER-ID KLIENTNAMN VERSION CPU DISK RAM PRIS SERVERTYP ÅTGÄRDER aesp01 A. Espersen v26.4.14 12% 56% 45% 160€ EX130-R airalsie01 Air Alsie v26.4.14 9% 34% 52% 92.3€ AX61-NVMe aka01es01 Akademikernes A-kasse (es node) 1% 4% 57% 45€ EX44 aka01tool01 Akademikernes A-kasse v26.4.14 2% 44% 28% 62€ EX44 ao02 Brødrene A&O Johansen A/S v26.4.14 45% 39% 77% apcoa01es01 Apcoa (es node) 1% 3% 57% 45€ EX44 apcoa01tool01 Apcoa v26.4.14 2% 25% 31% 59€ EX44 355 av 354 rader, inklusive ES-noder; växla "Dölj ES-noder" för att se endast en rad per verktygslåda.
Figur 02, Serverlista, trogen mot den live-visade skärmen
Kolumner

Vad varje kolumn visar er

  • Server-ID, driftsättningssluggen (aesp01, apcoa01tool01). Verktygsnoder slutar på toolNN, ES-noder på esNN.
  • Kundnamn, den betalande kunden, länkad tillbaka till Klienter.
  • Version, plattformsversionen för verktygslådan (v26.4.14). Styr uppgraderingsflödet.
  • CPU / Disk / RAM, resurspiller i realtid färgade gröna under tröskelvärdet, gula över det.
  • Pris, månatlig värdkostnad i euro.
  • Servertyp, Hetzner-instansen (EX44, EX130-R, AX61-NVMe, AX102).
  • Åtgärder, verktygsfältet per rad: öppna övervakning, omdriftsätt, uppgradera, starta om tjänster, ladda ned certifikat / SSH-nyckel, redigera, ta bort.
Filter

Segmentera flottan

Varje filter till vänster expanderar till en fasetterad lista med antal. De mest användbara för drift är Serverstatus (körs, stoppad, med fel), Serverversion (vilka verktygslådor som ligger efter), Aviseringar (aktiva monitorträffar) och Uppdateringar aktiverade (vilka verktygslådor som väljer in automatisk uppdatering).

AviseringarAffärsstadiumServer-ID InstanstypServerplatsPartner ServerstatusServerversionUppdateringar aktiverade
Section 05Verktygslådans livscykel

Driftsätt, uppgradera och avveckla en verktygslåda

Varje åtgärd på en verktygslåda mappas till en HTTP-rutt i Flask API:et. Mappningen är liten och stabil, vilket håller operatörskonsolen förutsägbar.

ÅtgärdRuttVad som händer
Öppna flottanPOST /servers/tablePaginerad förfrågan med sökning och filter, returnerar rader för serverlistan
Tillgängliga verktygslådorGET /servers/availableDen uppsättning som denna operatör kan agera på, avgränsad efter företag / partner
Endast lokaltPOST /servers/on_premFiltrera till lokala driftsättningar för ett angivet företag
Bygg filterradenPOST /servers/filterFasetvärden; POST /servers/cascade för beroende filter
Öppna en verktygslådaPOST /servers/detailsEnskild driftsättning samt statistikdiagram för vald period
Hämta en enskild postGET /servers/single/<id>Enbart driftsättningsdokumentet
Driftsätt en ny verktygslådaPOST /servers/singleSkapar en driftsättningspost; arbetaren provisionerar värden och installerar plattformen
Uppgradera eller omkonfigureraPUT /servers/singleSkicka en ny version, ändra instanstyp, växla automatiska uppdateringar, ändra ägarskap
AvvecklaDELETE /servers/single/<id>Tar bort driftsättningen från registret; arbetaren river ned infrastrukturen
Ladda ned certifikatGET /server/single/download/certificate/<id>Base64-avkodat TLS-certifikat, levererat som octet-stream
Ladda ned SSH-nyckelGET /server/single/download/ssh_key/<id>Base64-avkodad privat nyckel för direkt värdåtkomst
Driftsätt

Lägga till en ny server

Klicka på + Add Server längst upp till höger i serverlistan. Formuläret (ServersAdd.vue) samlar in: klientnamn, partner, instanstyp, plats, affärsstadium, serverversion, aviseringströsklar och en växel för aktiverade uppdateringar. Vid inskickning skapar POST /servers/single distributionsposten. Arbetaren hämtar uppgiften från RabbitMQ och tillhandahåller värden (Hetzner Cloud), installerar docker-stacken och registrerar den nya servern i registret. Operatören får ett e-postmeddelande via dm-notify när den är live.

Upgrade

Publicera en ny version

Filtrera servrar efter Server Version för att se vilka distributioner som ligger efter. Välj Upgrade i radens åtgärdsverktygsfält; klienten anropar PUT /servers/single med målversionen. Arbetaren hämtar den nya plattformsavbildningen på toolbox-värden, kör migreringar och startar om tjänster. Updates enabled på en rad låter toolboxen välja schemalagda uppgraderingar, så att driftpersonal endast behöver påminna de som ligger efter.

Avsnitt 06Angränsande ytor

Klienter, källor, utgåvor, loggar

De övriga sidopanelsytorna följer samma mönster som Servrar: ett filterfält till vänster, ett sökfält i sidhuvudet, en åtgärdskolumn till höger och en Flask-ritning bakom var och en.

Klienter

Den kommersiella vyn

Kolumner: Company name, Server ID, Start, Renew, Type, Users, MRR, Next notification, NPS. Filter efter aviseringar, land, partner, MRR, plantyp, start-/förnyelsedatum, status och användargräns. Export to Excel och + Add Client längst upp till höger. Planer hanteras via Policy; betalningar via Stripe; CRM-synkronisering till HubSpot.

Källor

Anslutningar per toolbox

Kolumner: Server ID, Source name, Source ID, Workspace, Source type, Scan/h, Ingest/h, Profiled/h, Updated at, Profiled, Total. Filter efter server, arbetsyta, typ och partner. Aktivera Hide inactive sources för att fokusera på det som är aktivt.

Utgåvor

Versionsnoteringar för flottan

Operatörer publicerar versionsnoteringar här som sedan visas i de kundvända verktygen. Filter efter Type, Tags,Version, Deployment ID, Instanstype, Deploymenttype, Placering. Sorter efter Nyeste først. + Tilføj ny udgivelse åbner redigeringsværktøjet. seed_release_notes.py-scriptet udfylder standardværdier.

Logs

Søgbar aktivitet

Filtrerer efter username, workspace, deployment id, type, partner id. Dato-/tidsinterval samt et fritekst-søgefelt. Sagslog-overfladen (case_log blueprint) ligger i tilknytning hertil til overordnede operatørnoter pr. klient.

Mere stille overflader

  • Policy, planredaktøren (EditPlans.vue): hvad hvert abonnementsniveau koster, hvilke funktioner det låser op, anvendes af klienter.
  • NPS, NPS-analysevisningen (NPSAnalytics.vue): scoretrend på tværs af flåden, opdelt pr. klient, driver Næste notifikation på klienter.
  • Classification, den globale klassifikationsvisning (GlClassification.vue): ordbøger og regler distribueres centralt til alle toolboxes, så terminologien forbliver konsistent.
Afsnit 07Relationer

Hvordan den er placeret over resten af platformen

Management Tool befinder sig et niveau over alle andre Data & More-tjenester. Den klassificerer ikke dokumenter, scanner ikke indbakker eller kommunikerer med Microsoft 365; den instruerer de toolboxes, der gør. Disse toolboxes er platformens repos: api, client, iam, java_profiler, ai-profiler, dlp, ocr, graph-ingestion, ews, google, fileshare-service, known-persons-service, samt dataniveauet (Elasticsearch, PostgreSQL, RabbitMQ, Redis, S3).

OPS CONSOLE PLATFORM TOOLBOXES Management Tool mt.dataandmore.com deploy, opgrader, overvåg, fakturér anvendes af Data & More operations Toolbox A aesp01 A. Espersen v26.4.14 Toolbox B airalsie01 Air Alsie v26.4.14 Toolbox C apcoa01tool01 Apcoa v26.4.14 Toolbox D arkil01 Arkil v26.4.14 Toolbox E ao02 A&O Johansen v26.4.14 … 349 till en rad per driftsättning driftsätt, uppgradera CPU, disk, larm
Kontrollplan, drift, till toolbox Telemetri, toolbox, till drift Konsolen
Figur 03, hanteringsverktyget, ett plan ovanför 354 toolboxar
Avsnitt 08API-yta

De 14 Flask-blueprintsen

API:et är en Flask-applikation med 14 blueprints registrerade vid uppstart i app.py. Varje blueprint grupperar en liten uppsättning rutter för en yta. Namnen motsvarar tydligt sidofältet.

servrarflottlista, detaljer, skapa, uppdatera, radera, cert- och SSH-nedladdning
klienterföretagsposter, plan, MRR, förnyelse, aviseringar
arbetsytorper-toolbox-arbetsytor (logiska omfång)
datakällorkällkopplingar och inmatningshastigheter
aviseringaroperatörssidans aviserings­routing
larmaktiv hälsa / tröskelöverskridningar
autentiseringJWT-inloggning, tokenutfärdande, auktoriseringsdekorator
case_logoperatörsanteckningar per klient / per ärende
betalningStripe-koppling, fakturor, återförsök
client"denna klient"-endpoints som används av SPA:t självt
npsLeverans och analys av NPS-undersökningar
global_classificationordlistor som distribueras till varje toolbox
loggarsökbar aktivitet över toolboxar
release_notespublicera noter som sprids till kundernas användargränssnitt
Avsnitt 09Under huven

Det tekniska lagret

FrontendVue 3 SPA, Vuex-store, anpassad SCSS, monterad under services/client
APIPython, Flask, hanteras av waitress i produktion via waitress-serve --call env:configure
WorkerSamma Python-image, .Dockerfile.worker ingångspunkt, asynkrona uppgifter via RabbitMQ
RabbitMQ, AMQP, värdnamn rabbit
Notifydm-notify (ECR-image), e-post och larm på :8002
EdgeNGINX, TLS-terminator, omvänd proxy på :80 / :443
TillståndElasticsearch på monitor.gdpr.dataandmore.com, samt Prometheus för mätvärden, samt plattformens IAM-tjänst för JWT-nycklar
HandelStripe (betalning), HubSpot (CRM)
NätverkExternt Docker-nätverk dm, delat med alla andra Data & More-tjänster
Lokal körningdocker-compose -f docker-compose.local.yml up -d --build
Repogithub.com/dataandmore/management-tool
På en radFormen på det hela

En konsol. 354 toolboxar. Varje åtgärd dokumenterad.

Management Tool är operatörens plats hos Data & More: den plats från vilken varje kundtoolbox skapas, hålls uppdaterad, övervakas, faktureras och (i förlängningen) avvecklas. Plattformen utför arbetet; det här är där de som äger plattformen kan se och styra den.

github.com/dataandmore/management-tool, tillgänglig påmt.dataandmore.com