klantlogo

5. Technische Architectuur

Laatst gewijzigd door Gebruiker afgeschermd op 14-05-2024 19:50:58

5.1 Inleiding

Dit hoofdstuk beschrijft de uitwerking van de verschillende lagen naar een technische architectuur. Waarbij vooral de reeds gerealiseerde architectuur en componenten beschreven worden

5.2 Infrastructuur en werkplek

De infrastructuur beperkt zich tot een aantal componenten:

  • In het gemeentehuis Almelo
    • Bekabeld en draadloos netwerk via GovRoam netwerk
    • Het netwerk wordt volledig beheerd door de gemeente Almelo
  • Buiten het gemeentehuis
    • Open internet met in de toekomst GovRoam VPN
    • Internet via hotspot op de telefoon

In de werkplekken kan door medewerkers gekozen worden uit de volgende device combinaties:

  • Windows Surface (Model)
  • Lenovo laptop (Model)
  • Apple iPhone Se

De werkplekken worden uitgerold via inTune, met 2 factor authenticatie en Office365.

5.3 Belangrijkste gegevens opslag

De lijst met systemen en applicaties wordt actueel bijgehouden op deze wiki: Lijst met systemen en applicaties

Vrijwel alle primair proces informatie is vastgelegd in PowerBrowser 2020 (ook wel ODIE) . Hierin zit de zaak, subject, object en document opslag zoals beschreven in het generieke gegevensobjectmodel . De data in ODie is zoveel mogelijk authentiek gemaakt door de landelijke voorzieningen te raadplegen voor adressen en subject informatie. De data wordt vastgelegd volgens de configuratie van de schermen(formulieren) en de kernregistratie I-GO . De workflows zijn ingericht conform de zaaktypen .

De informatie in de zaken vallen onder het archiefregime en dienen correct gearchiveerd te worden. De inrichting van de archieffunctie vindt plaats in 2021.

Voor niet ondersteunende processen en voor informatie die niet vast gelegd kan worden in PowerBrowser worden teamsites in SharePoint gebruikt om informatie vast te leggen.

Voor strafrechtelijke informatie voortkomend uit de werkzaamheden van de Bijzondere Opsporingsambtenaren wordt de informatie vastgelegd in BRS.

Tot en met januari 2022 werden de Financiele en HRM gegevens vastgelegd binnen de door gemeente Almelo beschikbaar gestelde systemen als onderdeel van de dienstverlening. Sinds 1 januari 2022 is de Omgevingsdienst Twente live gegaan met het ERP-pakket van AFAS Software.

Voor de management- en verantwoording rapportages is een aparte dienst afgenomen waarmee in een datalake de ruwe bronbestanden worden opgeslagen en die middels een transformatie omgezet worden naar modellen in een datawarehouse. De modellen worden ontsloten in separate PowerBI Rapportages.

5.4 Gerealiseerde informatie-uitwisselingen

Op dit moment zijn de volgende gegevens uitwisselingen gerealiseerd:

  • Export van ODIE naar TimeTell
  • Export van ODIE naar I-GO
  • Export van ODIE naar Oxygen
  • Export van TimeTell naar Oxygen

ODT levert via I-GO data aan naar:

  • Inspectieview Milieu

ODT ontvang via I-GO data van:

  • Energieloket

5.5 Technisch netwerk Oxygen (Datawarehouse/PowerBI)

5.5.1 Inleiding

Dit deel van de documentatie heeft als doel:

  • Beschrijven van het Azure Dataplatform "Oxygen"
  • Beschrijven van de inzet van de Data Analyse tool "PowerBI"
  • Beschrijven van de dataverwerkingsprocessen
  • Beschrijven van de technische architectuur

5.5.2 Dataplatform Oxygen

Oxygen is een op Azure gebaseerd Data & AI platform, ontworpen voor schaalbaarheid, veiligheid en snelle ‘Ready for Business’ levering. Oxygen ondersteunt verschillende data aspecten. Het is geen maatwerk-oplossing, maar is gebaseerd op standaard Azure services die op de best mogelijk manier zijn ingericht voor de klant (binnen de mogelijkheden van Azure).

Het platform is future-proof vanwege schaalbaarheid, lage opstartkosten en ondersteuning van Advanced Analytics. Dit in tegenstelling tot de traditionele on-premise data platformen, waar vaak zware servers en kostbare software aangeschaft dient te worden voordat er overgegaan kan worden tot ontwikkeling en ingebruikname.

5.5.2.1 Componenten

Azure Data Factory

Azure Data Factory is een cloud-gebaseerde gegevensintegratieservice, waarmee gegevensgestuurde werkstromen gemaakt kunnen worden. Zo kan gegevensverplaatsing en -transformatie worden ingedeeld en geautomatiseerd. Met behulp van Azure Data Factory kunt u gegevensgestuurde werkstromen maken en plannen die gegevens uit verschillende gegevensarchieven kunnen opnemen. Een onderdeel hiervan is de ‘Data Integration Runtime’ waarmee on-premise databronnen op een veilige wijze ontsloten kunnen worden naar de cloud.

Azure Data Lake

Azure Data Lake biedt alle mogelijkheden die het voor ontwikkelaars en gegevensanalisten makkelijk maken gegevens van elke omvang, vorm en met elke snelheid op te slaan. Daarnaast kunnen er allerlei soorten bewerkingen uitgevoerd worden met diverse tools en in diverse talen (SQL, Scala, R, Python). Data Lake elimineert de complicaties van het opnemen en opslaan van gegevens, terwijl er sneller gestart kan worden met het uitvoeren van batchanalyses, streamanalyses en interactieve analyses.

Azure Databricks

Een op Apache Spark gebaseerd analyseplatform, geoptimaliseerd voor het Microsoft Azure-platform voor Cloud services. Met de optie om zonder servers te werken, ontdoet Azure Databricks de infrastructuur en de noodzaak om gespecialiseerde kennis te hebben, van alle complexiteit die gepaard gaat met het configureren van uw gegevensinfrastructuur.



Azure SQL Database

Azure SQL Databases is een PaaS-oplossing voor SQL Server databases. Databases worden hiermee schaalbaar en automatisch geoptimaliseerd. Door een of meerdere Azure SQL Databases in het platform op te nemen, ontstaat er een locatie waar gestructureerde data gemodelleerd, bewerkt en opgeslagen kan worden middels T-SQL. Daarnaast ontstaat er de mogelijkheid om een configuratiedatabase op te nemen om zo bijvoorbeeld laadprocessen van een BI-oplossing te configureren en loggen.

Azure Key Vault

Azure Key Vault is een hulpmiddel voor het veilig opslaan en openen van secrets. Een secret is alles waar je de toegang tot wilt controleren, zoals API-keys, wachtwoorden of certificaten. Een Azure Key Vault is een logische groep van geheimen. Door deze gegevens op een centrale plek op te slaan, wordt de kans op verlies geminimaliseerd. 

Power BI

Power BI is een oplossing voor bedrijfsanalyse waarmee gegevens gevisualiseerd kunnen worden en inzichten gedeeld kunnen worden binnen de gehele organisatie. Het is ook mogelijk om deze inzichten op te nemen in een app of op een website. Maak verbinding met honderden gegevensbronnen en breng gegevens tot leven met livedashboards en rapporten.

5.5.3 Architectuur

5.5.3.1 Lambda referentie architectuur

Voor het Oxygen Data Platform maakt InSpark gebruik van een Lambda architectuur. Dit is een architectuur voor dataverwerking, ontworpen om grote hoeveelheden gegevens te verwerken via zowel batch als stream verwerkingsmethoden. Deze benadering van architectuur probeert latency, doorvoersnelheid en fouttolerantie in evenwicht te brengen door batchverwerking te gebruiken om uitgebreide en accurate weergaven van batchgegevens te bieden. Dat terwijl tegelijkertijd realtimestroomverwerking wordt gebruikt om weergaven van onlinegegevens te faciliteren.

ca1acbcf-71d0-4986-8f5a-f905558043ef

5.5.3.2 Dataflow

De volgende Pipelines zijn gedefinieerd in Oxygen:

  • Genetics
  • I-GO
  • Timetell
  • Azure Blob

De gegevens uit deze bronnen worden opgehaald, bewerkt en geladen in Power BI zodat het gebruikt kan worden voor data analyse ten behoeve van verschillende analyse behoeften binnen de organisatie. Het pad wat deze gegevens doorlopen kan je zien in onderstaande afbeelding.

43b75076-871e-4b5e-a397-17eb27853872

5.5.3.3 Netwerk Topologie

Een cruciaal onderdeel op security vlak is het netwerk. In Azure is het mogelijk om je eigen Virtual Network (Vnet) uit te rollen waaronder weer vele netwerk componenten gebruikt kunnen worden om zo je solution in Azure te beveiligen. Componenten binnen het Vnet die gebruikt worden voor ODT zijn als volgt:

  • Virtual Network
  • Subnet
  • Network Security Group
  • Private Endpoints
  • Service Endpoints
  • VPN Gateway

In onderstaande afbeelding wordt de topologie weergegeven.

68452a08-b9e6-4233-8dd8-622445a97aa5

5.5.4 Azure DevOps

Voor zowel het deployen van Oxygen als het bouwen van usecases op het platform maakt ODT gebruik van Azure DevOps.

Azure DevOps biedt diverse services om teams te ondersteunen bij het plannen van werkzaamheden, code development, versiebeheer, kwaliteitscontroles en het bouwen en implementeren van applicaties, infrastructuren en PaaS diensten.

5.5.4.1 CI/CD.

Wanneer er nieuwe usecases gebouwd moeten worden door medewerkers van InSpark of ODT, zullen deze niet direct op de productie-omgeving gewijzigd worden. Om ervoor te zorgen dat het niet weken/maanden duurt voordat er nieuwe features/updates op productie komen, zijn er release pipelines ingericht om wijzigingen te deployen naar verschillende omgevingen (ontwikkel, test, acceptatie, productie). Om op een snelle en veilige manier frequente wijzigingen door te voeren op een productie-omgeving, maakt ODT gebruik van CI/CD-technieken binnen Azure DevOps. Hierbij worden door InSpark gedefinieerde Build & Release pipelines gebruikt om het CI/CD-proces uit te kunnen voeren voor het opzetten en updaten van het dataplatform en het bouwen van usecases op het platform.

Versie controle

Voor Version Control binnen Azure DevOps maakt ODT gebruik van Git. Git is een gedistribueerde versiebeheertool die broncode geschiedenis van een ontwikkelingsproject kan beheren. Voor meer informatie over Git kunt u onderstaande link raadplegen.

Bron: https://git-scm.com/

5.5.4.2 Oxygen Development

Azure Data Factory

Zoals eerder staat beschreven wordt Azure Data Factory ingezet voor het bouwen van pipelines om gegevens te verplaatsen en transformeren. InSpark en ODT ontwikkelt deze pipelines volgens het CI/CD proces waarbij een directe koppeling wordt gemaakt tussen Azure Data Factory en Azure DevOps. Op deze manier kunnen ontwikkelaars op een veilig manier in hun eigen branche (omgeving) werken voor het bouwen van pipelines. Wanneer een ontwikkelaar klaar is met het bouwen van een pipeline, kunnen de wijzigingen ingecheckt worden op een persoonlijke branche en kan er een ‘Pull Request’ aangemaakt worden voor het mergen van de wijzigingen op de desbetreffende branche.

Tijdens de deployment van het Oxygen Dataplatform zijn er al automatisch de benodigde Azure DevOps componenten aangemaakt:

  • Azure DevOps Project
  • Azure DevOps Repositories
  • Azure DevOps Build pipelines
  • Azure DevOps Release pipelines

Tijdens het deployen van het Oxygen platform wordt de integratie van Azure Data Factory en Azure Databricks met Azure DevOps automatisch aangemaakt.

In hoofdstuk 5.2.3 wordt er een diagram weergegeven waarin te zien is hoe ontwikkelingen binnen Azure Data Factory verlopen tijdens het CI/CD-proces.

Azure Databricks

Voor het deployen van Databricks clusters, jobs en notebooks maakt ODT gebruik van de Build & Release pipelines die vooraf zijn aangemaakt tijdens de deployment van het Oxygen dataplatform. Een ontwikkelaar kan, mits deze de benodigde rechten heeft, met een eigen IDE een koppeling maken met de Databricks repository die door InSpark vooraf is aangemaakt.

Hoe ziet dit er uit?

Een ontwikkelaar kan clusters, jobs en notebooks bouwen door middel van het schrijven en deployen van scripts (json, python, scala etc.). De stappen die de ontwikkelaar volgt om zijn/haar script te deployen is als volgt:

  1. Ontwikkelaar schrijft script.
  2. Ontwikkelaar commit (lokaal) zijn/haar wijzigingen.
  3. Ontwikkelaar pusht de gemaakte commit naar de development branch.
  4. Ontwikkelaar maakt een Pull Request aan zodat een andere medewerker de wijzigingen kan reviewen.
  5. Reviewer keurt de wijzigingen goed.
  6. Akkoord van de Reviewer triggert Build & Release pipelines die de wijzigingen valideert en vervolgens deployed naar de Azure Databricks omgeving.

Met deze manier van werken zorgt ODT voor kwaliteitsborging tijdens het ontwikkelen en releasen van nieuwe features/updates. Tevens is er op deze manier ook versiebeheer van alle ontwikkelingen binnen Azure Databricks.

CI/CD Diagram

Onderstaande afbeelding wordt de ‘CI/CD Diagram’ van ODT getoond waarin wordt weergegeven hoe ontwikkelingen op het Oxygen platform binnen het CI/CD-proces verlopen.

54b3ac8b-c9ae-49bf-9297-52e06fd09842

5.5.5 PowerBI

Power BI is de data analyse tool die ingezet wordt door ODT voor bedrijfsanalyse. Met deze tool worden er gegevens gevisualiseerd en inzichten gedeeld binnen de gehele organisatie.

5.5.5.1 Golden Datasets

De Golden Dataset is een master Power BI Data Model dat naar Power BI Service wordt geladen met of zonder een rapport. Zodra de Golden Dataset is geladen naar Power BI Service, kan je zoveel nieuwe rapporten maken als je nodig hebt in Power BI Desktop gebaseerd op de Golden Dataset.

Voordelen van Power BI Golden Datasets:

  • Je hoeft slechts één dataset/datamodel te onderhouden. Dit zal minder ruimte innemen, minder middelen vergen om de gegevens up-to-date te houden, en ook de wildgroei van verschillende versies van het datamodel elimineren.
  • Iedereen met toegangsrechten kan gewoon nieuwe rapporten bouwen die gekoppeld zijn aan de Golden Dataset wanneer nodig.
  • Iedereen die een nieuw rapport bouwt in Power BI Desktop met behulp van de Golden Dataset zal in staat zijn om zijn eigen "lokale" measures toe te voegen.
  • Met de implementatie van een geschikt bedrijfsproces, kunnen de beste lokale measures die door gebruikers zijn gemaakt, met terugwerkende kracht worden gemigreerd naar de Golden Dataset ten voordele van iedereen.

5.5.5.2 Power BI Workspaces

ODT maakt gebruik van 2 workspaces om het Golden Dataset principe te implementeren en rapportages te delen. Deze zijn als volgt:

  • ODT – Datamodels
  • ODT – Rapportages

ODT – Datamodels Workspace

De Power BI workspace ‘ODT – Datamodels’ wordt gebruikt om Golden Datasets op te slaan en beschikbaar te stellen voor alle rapport ontwikkelaars. Ook is deze workspace verdeeld in 3 omgevingen:

  • ODT – Datamodels

In deze workspace staan alle ‘development’ Golden Datasets waar steeds nieuwe updates of opgeloste bugs aan worden toegevoegd.

  • ODT – Datamodels [Test]

In deze workspace staan alle ‘test/acceptatie’ Golden Datasets die een bepaalde release vertegenwoordigen. Op het moment dat er een release wordt gedaan zullen alle Golden Dataset vanuit ‘development’ gedeployed worden naar deze workspace om te testen of alles naar behoren werkt.

  • ODT – Datamodels [Production]

In deze workspace staan alle ‘productie’ Golden Datasets die productie klaar zijn en gebruikt worden door alle rapportage ontwikkelaars. Op het moment dat een bepaalde release getest is in de ‘test/acceptatie’ omgeving, en alles werkt goed, dan zal deze workspace geupdate worden met alle Golden Datasets van de ‘test/acceptatie’ omgeving en direct beschikbaar zijn voor alle rapportage ontwikkelaars.

e4fe1fa1-51f5-41b6-8f0a-f2f497dc5b8c
ODT – Rapportages Workspace

De Power BI workspace ‘ODT – Rapportages’ wordt gebruikt om alle gemaakte rapporten op te slaan en te delen met eindgebruikers. Ook is deze workspace verdeeld in 3 omgevingen:

  • ODT – Rapportage

In deze workspace staan alle ‘development’ rapportages waar constant aan nieuwe updates of bugs worden gewerkt.

  • ODT – Rapportages [Test]

In deze workspace staan alle ‘test/acceptatie’ rapportages die een bepaalde release vertegenwoordigen. Op het moment dat er een release wordt gedaan zullen alle rapportages vanuit ‘development’ gedeployed worden naar deze workspace om te testen of alle rapporten nog steeds goed werken.

  • ODT – Rapportages [Production]

In deze workspace staan alle ‘productie’ rapportages die productie klaar zijn en ook direct gedeeld worden met de eindgebruikers. Op het moment dat een bepaalde release getest is in de ‘test/acceptatie’ omgeving, en alles werkt goed, dan zal deze workspace geupdate worden met alle rapportages van de ‘test/acceptatie’ omgeving en direct beschikbaar zijn voor alle eindgebruikers.

0c4dd9fe-3f07-4b41-b024-20e73e3596e3

5.5.6 Totale technische workflow

En hoe ziet deze gehele workflow nou in elkaar? In onderstaande afbeelding wordt dit weergegeven.

1827623f-1af5-408b-b651-f8b3f1098dcd

Weet u het zeker?

Annuleer
Huidig Id Gebruiker Tijdstip wijziging Opmerking bij versie
19968 Onbekend 14-05-2024 19:51 Conversie van XWiki voltooid
19475 Onbekend 14-05-2024 19:49 Initiële versie aangemaakt
19476 Onbekend 14-05-2024 19:49