dominic

dominic

der baam-techstack

welche technologien baam verwendet und warum

die it hat den techstack für baam breit ausgelegt, um auf der einen seite vieles ausprobieren zu können und auf der anderen seite, nachhaltig möglichst moderne technologien zu nutzen und up to date zu bleiben. im folgenden zeige ich euch, für welche tools wir uns warum entschieden haben und was sie uns für einen benefit bringen.

was für server verwenden wir?

wir arbeites mit linux-servern, die stets auf der aktuellsten lts (long term support) variante sind. diese werden wenn nötig auch in clustern aufgebaut, d.h. die server werden in ein verbund gepackt und arbeiten hand in hand.

womit arbeiten wir auf unseren servern?

wir arbeiten mit diversen technologien und programmiersprachen auf unseren servern: für die server-steuerung , wie auch für eine webdarstellung.

für die entwicklung unserer software benutzen wir php 7, die vorbereitungen für php 8 laufen bereits, in kombination mit symfony und laravel. diese frameworks nutzen wir, um unsere businesslogik abzubilden: wir haben uns für diese varianten entschieden, um mit hilfe der sehr großen community und open source software, schnellstmöglich gute ergebnisse erzielen zu können, da wir uns auf diverse vorgefertigte packages beziehen können. 

für die steuerung der server benutzen wir unter anderem python und ruby, diese beiden programmiersprachen helfen uns dabei, innerhalb kürzester zeit einen server aufsetzen, updaten, löschen oder überprüfen zu können. 

womit arbeiten wir in eurem browser?

für die visualisierungen unserer inhalte verwenden wir diverse libraries, frameworks und einzelne packages. dazu gehören vue js, react, scss/sass, bootstrap, foundation, bulma und diverse packages die über node/npm/yarn. hierbei handelt es sich um hilfssysteme für die entwicklung mit javascript, css und vielen anderen programmier- und auszeichnungssprachen.

wir probieren gerne neues aus und versuchen immer auf dem aktuellsten stand zu bleiben.

generell vertreten wir die meinung: “man muss das rad nicht neu erfinden”. wenn jemand bereits eine gute lösung entwickelt und diese für die öffentlichkeit zur nutzung bereitgestellt hat, greifen wir darauf auch gerne zurück. dadurch sparen wir uns zeit, frust und haben bausteine, welche von entwicklern gewartet und aktuell gehalten werden, die sich mit speziellen themen lange und ausführlich auseinander gesetzt haben.

was ist mit dem deployment?

was ist eigentlich dieses deployment? viele haben es vielleicht schon mal irgendwo aufgeschnappt, egal ob es in einem gespräch mit einem kollegen gefallen ist oder ob man es in einem beitrag wie diesen gelesen hat. aber was kann man darunter verstehen? kurz gesagt: es handelt sich um einen prozess, der die vorgenommenen änderungen für andere systeme zur verfügung stellt. wenn beispielsweise ein bild geändert werden soll, muss dieses erst einmal irgendwo im internet abgelegt werden, damit man es vom heimischen pc sehen kann. diesen prozess von der lokalen änderung bis hin zum ausspielen im internet bezeichnet man als deployment. 

bezüglich des deployments haben wir ebenfalls schon verschiedenes ausprobiert und machen es hier abhängig davon, wie umfangreich eine applikation ist. handelt es sich um kleinere projekte, verwenden wir gerne deployer in kombination mit unserer gitlab pipeline (ci/cd). wenn an dieser stelle alle tests ohne fehler durchlaufen konnten, wird das deployment angestoßen.

wenn eine applikation komplexer und über mehrere systeme gestreut wird, setzen wir auf einen pull mechanismus und weniger auf ein push system. dafür verwenden wir einen webhook von gitlab, welcher unserem deployment server mitteilt, dass auf einer bestimmten branch (master/deployment) ein update publiziert wurde. im anschluss startet unser deployment prozess direkt auf diesem server, der mit den anderen servern für diese applikation verknüpft ist. dieser server prüft dann die veränderung und teilt den einzelnen systemabbildern genau mit, welche änderungen vorhanden sind und welche prozesse für ein funktionierendes update angestoßen werden müssen.

sonst noch was?

wie bereits erwähnt, versuchen wir ständig neue frameworks, libraries und programmiersprachen auszuprobieren, um für die jeweiligen projekte, immer den besten stack zu nutzen. dazu gehört natürlich auch so etwas wie django oder angular. die gewonnen erfahrungen werden dann im anschluss mit dem team geteilt und besprochen. diese informationen verwenden wir, um für zukünftige projekte eine entscheidung der zu verwendenden technologien treffen zu können. 

bleibt am ball, schaut auch neue frameworks und packages an, es ist auch egal in welcher programmiersprache, entwickelt euch weiter, in dem ihr euch anschaut, wie alles funktioniert und versucht es zu verstehen. man sollte fremden code nicht nur unbedingt verwenden, sondern auch verstehen, um diesen vollumfänglich nutzen zu können.