Wekelijkse Sales Rapportage
Inleiding
Met appareto.Tup virtual appliance kunnen periodiek geautomatiseerd rapportages gegenereerd worden. Als voorbeeld een wekelijkse update van de top 10 van klanten in voorgaande periode.
Overzicht architectuur
In woorden:
- De Business heeft een aantal wensen m.b.t. de Sales Rapportage, de Top 10 Klanten is er daar één van. Deze willen ze graag wekelijks geautomatiseerd per email toegestuurd krijgen.
- V.w.b. Applicaties is daarvoor een Orchestration Service nodig die periodiek een Flow met een aantal taken opstart: Filter Customers om het voor een deelverzameling van de klanten te doen, bv voor bepaalde regio. Load Data haalt de relevante data uit achterliggende systemen op voor deze klanten waarna Genereer Rapport de data analyseert en het rapport genereert. In de laaste stap Distribueer Rapport wordt het naar een lijst van medewerkers gezonden.
- Concreet is dat binnen de interne Infrastructuur geimplementeerd m.b.v. de appareto.Tup virtual appliance, meer specifiek wordt er voor dit rapport gebruik gemaakt van Python en R taken die draaien in Docker in het lokale netwerk, maar zo zijn opgezet dat ze ook werken in een Cloud omgeving.
Implementatie inkijkjes
Flow en Taak definitie
Als orchestration component wordt Prefect server gebruikt. De flow en tasks definieer je in Python. In dit geval gebruiken we ook een ShellTask om m.b.v. een al bestaand R programma een Rmarkdown gebaseerd rapport te genereren. Onderstaand de code gestript van alle “extra’s”:
Docker gerelateerd
Om de flows portable te houden verpakken we ze als Docker images, dan kunnen ze op het interne netwerk of in de cloud uitgevoerd worden. En naast gebruik in docker-compose zijn ze ook geschikt voor gebruik in Kubernetes. De Dockerfile ziet er ongeveer zo uit:
De docker-compose.yml file heeft onderstaande inhoud:
DIY
Afgezien van klantspecifieke code en appareto.Tup virtual appliance specifieke componenten kun je bovenstaande m.b.v. de volgende open source componenten ook zelf implementeren: