Contact: Mark Achten - mark.achten@simulationcrew.com
Opdracht
Intro
The Simulation Crew maakt serious games en interactieve trainingen in de vorm van 3D simulaties mbv Unity3D. Deze trainingen worden onder andere ingezet in het beroepsonderwijs waar leerlingen worden voorbereid op het werken als verkoper of als logistiek medewerker .
Daarnaast maken we ook simulaties voor retailers zoals HEMA, Blokker, C & A en Rituals. Bij deze implementaties worden bijvoorbeeld nieuwe medewerkers getrained in de procedures die horen bij het werken met een kassa.
GitHub, Unity3D, TeamCity
We maken gebruik van GitHub als VCS, TeamCity voor de verspreiding van de taal-versies voor de apps en het draaien van unit tests en Unity3D Cloud Build Service (UCBS) voor het daadwerkelijk bouwen van de apps. TeamCity pikt de sources op in Git, bouwt en pusht de code naar de taal- specifieke branches. Deze worden dan vervolgens weer opgepikt door UCBS.
Continuous Integration, huidige processen
Nadat de apps zijn gebouwd in UCBS worden ze gedownload en gaan ze door een pipeline van processen om ze klaar te krijgen voor distributie (bake, deploy, release en clean). Een voorbeeld van een bake process is het maken van een nette Windows installer om de Windows versie van de apps te verkrijgen. Verder moeten er dingen gebeuren als code-signing (met name voor de Mac OSX apps), (un)zippen, hernoemen en verplaatsen van bestanden, inhoudelijk aanpassen van bestanden om ze te laten voldoen aan de huidige manier van distributie. Ook is er een batch die de iOS certificaten controleert, die nodig zijn om iOS apps naar de AppStore te krijgen. Tenslotte moet de output dan gepublished worden naar onze distributieserver van waaruit eindgebruikers onze apps kunnen downloaden.
Daarnaast is er een ASP.NET MVC web applicatie die als een beheermodule dient voor de diverse processen. Deze beheermodule maakt het eenvoudig om specifieke versies van een apps te releasen.
Deze processen zijn momenteel gemaakt in losse .NET console applicaties die communiceren met een MySQL database. De meeste batches draaien op een toegewezen Windows machine. Voor het code-signen van Mac OSX apps moet gebruik worden gemaakt van een Mac Mini.
Opdracht
De huidige processen draaien relatief vlekkeloos. Door voortschrijdend inzicht is echter een nieuwe opzet gewenst. Zaken als parallele downloads, betere foutafhandeling, real-time inzicht in de status van de processen, meer verfijner beheer van releases, centrale configuratie en aansturing van de batches en meer geautomatiseerde handelingen van de PlayStore en AppStore apps. Deze nieuwe opzet vereist niet alleen dat de batches opnieuw worden opgezet maar dat ook de beheermodule opnieuw moet worden gebouwd. Ook zal de inrichting van de processen in TeamCity en UCBS herzien kunnen/moeten worden.
Het is niet strikt noodzakelijk de huidige keuzes over te nemen (zoals bijvoorbeeld het gebruik van console apps). Alles is bespreekbaar zolang het maar met goede argumenten onderbouwd is.
Technische Constraints/ Wensen
- C#, ASP.NET of ASP.NET Core, MySQL