Hallo, ich bin Can Büyükburc und IT-Berater bei Conciso – seit mehr als einem Jahr. Kürzlich habe ich das interne Ausbildungsprojekt durchlaufen und möchte hier berichten, was dabei alles passiert ist und wie ich von dem Projekt profitieren konnte.
Teamaufgabe
Unsere Stakeholder waren die Conciso-Führungskräfte. Als unsere Kunden beauftragten sie uns, ein Haushaltsgerät zu entwickeln, das Nutzungsstatistiken über eine Webanwendung transparent macht. Konkret ging es darum, die Energieaufnahme einer Kaffeemaschine in einer neuen Service-App zu erfassen. Als Hardware fungierte dabei eine intelligente Steckdose von AVM und ein Raspberry Pi.
Teamstruktur
Das Team bestand aus bis zu acht Entwickler:innen, die von erfahrenen Senior-Mentoren und einem Senior Team Lead Architect sowie einem Scrum Master unterstützt wurden. Als Basis diente ein einfacher Java-Code, der zeigte, wie die Mikro-Service-Struktur und das Frontend aussehen sollten. Ab diesem Punkt begannen wir mit der Arbeit.
Meine Aufgabe
Meine Aufgabe war es, die Cloud-Infrastruktur auf Amazon Web Services (AWS) zu entwickeln. Ich hatte bisher nur grundlegende Erfahrung mit AWS und begann mit weiteren Online-Kursen. Nachdem ich schon grundlegende Schritte unternehmen konnte und tiefergehende praktische Erfahrungen mit AWS gesammelt hatte, gab mir mein Mentor ein Beispiel-Bash-Skript für den Start. Es enthielt Code-Beispiele für einige der Ressourcen, die ich erstellen und zerstören sollte. Je nach den Anforderungen unseres Projekts begann ich, mein eigenes Repository für Infrastructure as Code (IaC) zu modifizieren und zu erstellen.
Fortschritte und agile Anforderungen
Zwei Monate nach dem Start waren wir alle in der Lage, unseren Code auf AWS laufen zu lassen. Wir hatten einen Datenaustausch zwischen unserer Hausanwendung und unserer Infrastruktur in der Cloud. Am Anfang war es primitiv, aber die erste Verbindung war hergestellt.
Mit der Zeit fügten die Stakeholder in den Refinement-Meetings neue Anforderungen hinzu.
Eine diese Anforderungen lautete, eine Pipeline zu implementieren, die die Bereitstellung in der Cloud automatisiert. Wir hatten unsere erste Pipeline mithilfe der Bitbucket-Pipelines. In der Zwischenzeit führten die Programmierer die Entwicklung des Codes und der Architektur weiter, sodass wir wiederum unsere Infrastruktur um Funktionen erweitern mussten. Ende des vierten Monats konnten wir ein funktionierendes Produkt und eine Dokumentation vorlegen.
In einem folgenden Refinement-Meeting erhielt ich eine weitere Anforderung von unseren Stakeholdern: Die Pipeline sollte auch in Jenkins funktionieren (Jenkins ist ein Software-System zur kontinuierlichen Integration von Komponenten zu einem Anwendungsprogramm). Einige Wochen später war ich in der Lage, ein Jenkins-Hauptsystem als serverless AWS-Container hinter unserem Application Load Balancer auf einem eigenen ECS-Cluster zu erstellen. Der Jenkins-Hauptserver überprüfte die Branches, und wenn es eine Aktualisierung gab, wurde eine sekundäre Jenkins-Child-Instanz erstellt, um dort die Tests/Deployments durchzuführen.
Nach dem sechsten Monat kamen weitere Anforderungen hinzu, darunter:
- Umgebungen schaffen für Produktion und Tests
- Sicherheitsanforderungen wie Trennung von Daten und Netzwerkverkehr, Identity Management mit Keycloak, Datenverschlüsselung
- Continuous Integration/Continuous Delivery (CI/CD) mit AWS-Codepipeline, Code Deploy
- die gesamte Infrastruktur ausschließlich mit Terraform betreiben
Zu dem Zeitpunkt hatten wir eine Staging- und eine Produktionsumgebung, die nur mit Terraform bereitgestellt wird und wir hatten ein fast vollständig automatisiertes Pipelinesystem. Sobald ein Code in unserem Main Branch aktualisiert wird, empfängt unser Pipeline-System einen Webhook, entscheidet mithilfe von AWS Lambda-Funktionen über den Deployment-Typ und startet die entsprechenden Dienste in der richtigen Umgebung.
Lernen von Experten und Zertifizierungen
Die ständige Weiterentwicklung des Produkts sorgte dafür, dass wir viele interne Schulungen von unseren erfahrenen Kollegen erhielten. Wir hatten auch fast unbegrenzte Möglichkeiten, an weiteren Trainings teilzunehmen (online, lokal, intern). Am Ende meines ersten Jahres hatte ich bereits vier Zertifizierungen abgeschlossen: Scrum Master (TÜV), Terraform Associate, AWS Certified Cloud Practioner und Azure Fundamentals.
Natürlich gewährten auch die Kollegen, die an anderen Teilen des Projekts arbeiteten, einen Blick über den Tellerrand, zum Beispiel auf die Frontend-Gestaltung mit Angular (Javascript Framework). Während des Projekts habe ich zudem drei echte Kundenprojekte unterstützt, die für einige Zeit Priorität hatten.
Mein Fazit
Ziel des Ausbildungsprojekts ist es, Mitarbeiter:innen bestmöglich auf agile und komplexe Kundenprojekte vorzubereiten. Ich denke, das ist gut gelungen. Wir hatten viele Gelegenheiten, Technologien auszuprobieren und zu erleben. Das Gute: Erfahrene Berater:innen waren immer an unserer Seite, um zu helfen und den Weg zu weisen. Das Wissen, das wir während des Ausbildungsprojekts aufbauen konnten, wird uns helfen, unsere Kunden effizient und zeitnah zu unterstützen.
Interesse geweckt?
Du möchtest mehr über Conciso als Arbeitgeber erfahren? Dann schau gerne auf unserer Jobs-Seite oder unserem LinkedIn-Kanal vorbei.
Zu unseren offenen Stellen geht es hier. Gerne kannst Du Dich auch initiativ bei uns bewerben!