Blogg | Artikel

Inuti Boards on Fires moln

Många företag, både stora och små, förlitar sig på Boards on Fire för att driva sin digitala dagliga styrning. I denna bloggpost kommer jag att förklara den underliggande arkitekturen som varje dag står redo för daglig styrning i världsklass. Det blir en inblick i vad som sker när du exempelvis lägger till en ny avvikelse, uppdaterar en KPI eller skickar in data från ett annat system till Boards on Fire.

Boards on Fire i Microsoft Azure

När beslutet togs att gå ifrån vår tidiga proof of concept, kodad i Ruby on Rails, så var en grundförutsättning att nästa generation av Boards on Fire skulle ha en robust, skalbar och säker molninfrastruktur. Valet av molnleverantör föll till slut på Microsoft Azure, vilket ger oss tillgång till en rad tjänster som underlättar både skalbarhet och säkerhet. Genom att utnyttja Azures plattform kan vi hantera den komplexitet som krävs för en modern data-driven applikation.

För att möta våra behov har vi skapat en serverless infrastruktur som enkelt kan växa och skalas utifrån den faktiska belastningen. Tjänster i Microsoft Azure hjälper oss med allt från DNS till autentisering, lagring av data och monitorering av systemets hälsa.

Det första man möts av

Det första lagret när du som användare jobbar i Boards on Fire är Azure Front Door tillsammans med Microsoft Azure Web Application Firewall. Detta lager ger oss både lastbalansering och säkerhetsskydd, vilket gör att vi kan leverera innehåll snabbt och säkert även vid hög trafik. Den globala belastningsbalanseringen i Front Door görs automatiskt baserat på användarens geografiska placering för att innehåll ska levereras så fort som möjligt.

Med Web Application Firewall får vi dessutom ett extra, alltid uppdaterat, skydd mot vanliga säkerhetshot som exempelvis SQL-injektioner, cross-site scripting (XSS) och DDoS-attacker. Inbyggt finns dessutom en uppdaterad lista med bot-nätverk, vilket gör att anrop från de blockeras i ett tidigt stadie.

I kombination med tjänster som Azure Blob Storage, Azure Cache for Redis och Azure Static Web Apps gör det att vi kan garantera att innehållsleveranser och användarinteraktioner alltid är snabba och tillförlitliga. Det spelar ingen roll om det handlar om att hantera intern data inom Boards on Fire eller om det integreras från externa system – arkitekturen är byggd för att hantera båda delarna effektivt.

Kärnan är REST API

Vår kärnarkitektur är byggd kring både ett internt och ett publikt API som körs på Azure Web Apps, vilket bland annat ger oss säkerhet, detaljerad loggning och flexibiliteten att enkelt skala upp eller ner baserat på belastning och användarbeteende. Azure Web Apps gör det dessutom enkelt för oss att jobba med kontinuerliga releaser utan någon nedtid för våra användare.

API:erna kommunicerar med Azure Database for PostgreSQL för effektiv och trygg datahantering. Vid sidan av det använder vi Azure Queues och Azure Functions för att stödja asynkrona operationer och händelsedrivna arbetsflöden.

Hela denna arkitektur är skalbar och gör det möjligt för oss att dynamiskt allokera resurser baserat på aktuella trafikbehov, vilket säkerställer att infrastrukturen kan växa i takt med ökande krav utan att det påverkar prestandan negativt. Tack vare inbyggda funktioner i Azure Web Apps kan vi exempelvis enkelt skala horisontellt, genom att lägga till fler instanser för att hantera ökad belastning under toppar, och samtidigt hålla kostnaderna nere under lugnare perioder.

Din data – alltid uppdaterad

För att säkerställa att data du ser i Boards on Fire alltid är up-to-date så har vi implementerat realtidskommunikation i Boards on Fire. Om någon på en annan avdelning matar in data i en dashboard, så uppdateras dashboarden inne hos dig på direkten. Hanteringen sker via Azure SignalR som även det ger oss en tillförlitlig och stabil realtidsuppdatering. Azure SignalR hjälper exempelvis till med protokollhantering, automatiserad logik för anslutningar, routing av meddelanden samt möjlighet att skala upp under de tider när data flödar som allra mest i Boards on Fire.

Enkelt att integrera med

En stor del av Boards on Fire handlar om flöden av data och det är därför av yttersta vikt att det är lätt att integrera andra system med Boards on Fire. Det kan exempelvis röra sig om ERP-system, produktionssystem eller system för avvikelser i arbetsmiljön.

I skrivande stund finns det två olika sätt att integrera med Boards on Fire. För ett företag med resurser i form av utvecklare så kan man enkelt använda sig av vårt REST API. Ett dynamiskt API som är anpassat efter varje kunds unika uppsättning. API-dokumentationen generas därför också automatiskt enligt OpenAPI och presenteras inne i Boards on Fire.

Det finns också möjligt att få in data genom att ladda upp filer, som sedan automatiskt mappas om och importeras till rätt dashboard baserat på vilka inställningar man gör. Det här flödet är eventdrivet och nyttjar flexibiliteten och skalbarheten i Azure Queues och Azure Functions. Data passerar automatiskt genom olika lager för validering, bearbetning, mappning och import.

Säkerhet i fokus

Säkerhet är vår viktigaste prioritet och förutom de utomliggande lagrena så använder vi Azure Key Vault för att hantera känslig information som API-nycklar, certifikat och hemligheter på ett säkert sätt. Genom detta ser vi till att kritiska data är krypterad och endast tillgänglig för auktoriserade delar inom vårt system.

För att säkerställa efterlevnad av branschstandarder har vi även implementerat detaljerade audit logs i hela infrastrukturen, från databasen till API-lagret. Azure Table Storage används för att lagra audit logs, där vi loggar varje ändring av data och dessutom utvalda läsningar av data. Detta gör det möjligt för oss att spåra aktiviteter och ger en tydlig överblick över vem som har haft åtkomst till eller ändrat data. Audit-loggarna tillhör kunden, vilket innebär att de har full äganderätt till loggarna och kan begära dem när som helst.

Realtidsövervakning

På Boards on Fire arbetar vi proaktivt med att övervaka och optimera vår molninfrastruktur. Vi använder Azures inbyggda tjänster som Azure App Insights, Azure Monitor och Azure Log Analytics för att få realtidsinsikter om systemets prestanda och hälsa. Detta gör att vi kan identifiera och hantera potentiella problem innan de påverkar användarna. Genom hälsokontroller, automatiserade varningar och omfattande instrumentpaneler kan vi hålla systemet optimerat dygnet runt. Vi har även precis fått tidig åtkomst till en förhandsversion av Azure Monitor AI Investigator, som ser mycket lovande ut för att identifiera avvikelser.

På vår publika statussida kan du alltid hitta de senaste uppdateringarna om våra tjänsters tillgänglighet.

En framtidssäker arkitektur som ständigt utvecklas

Vår infrastruktur är designad för att växa tillsammans med ditt företag, oavsett om ni befinner er i ett tidigt skede eller i snabb expansionsfas. Tack vare Azures inbyggda skalbarhet kan vår molnarkitektur enkelt expanderas utan att kompromissa med prestanda eller säkerhet, vilket gör att vi kan leverera smidig och effektiv digital daglig styrning som anpassar sig efter ökande arbetsbelastningar i takt med att verksamheten utvecklas.

Precis som våra kunder arbetar med kontinuerliga förbättringar i Boards on Fire, jobbar vi varje dag för att utvecklas och utvärdera nya teknologier, tjänster och lösningar som ytterligare kan stärka och framtidssäkra vårt system. Något vi utforskat en del på senare tid är (inte helt oväntat) Microsoft Azure OpenAI som kan öppna upp nya spännande möjligheter för våra kunder.

https://www.datocms-assets.com/56488/1661954976-tobias-runesson-22.jpg

Tobias Runesson

Developer

Relaterade artiklar

Händer på Boards on Fire

Senaste från bloggen

Gratis webbdemo

Vi kan berätta allt om Boards on Fire. Men det är enklare att visa. En snabb webbdemo ger dig grunderna i våra lösningar.