Es gibt sie doch noch: Projekte die man auf der grünen Wiese starten darf - incl. Infrastruktur. Nur AWS als Cloud Provider ist gesetzt. In dieser Session gebe ich nach den ersten Wochen Einblicke und Lessons Learned, wie wir vom Zustand eines weißen Blatt Papiers auf ein Account- und Infrastruktur-Setup gekommen sind, mit dem wir zumindest mal sofort loslegen können ohne die üblichen „Abkürzungen“ bei Qualität und Featureumfang zu gehen. Ein wesentlicher Teil davon ist das Tooling von gruntwork.io, welches in diesem Kontext kurz vorgestellt wird. [Disclaimer: Wir sind auch nur normale Kunden mit einer gruntworks-Subscription ohne weitere Connections dorthin – diese Session wird also explizit keine gruntwork.io Werbeveranstaltung, auch wenn sich das inhaltlich nicht 100%ig vermeiden lässt]
2. Was mache ich eigentlich hier?
Seit ca. 13 Jahren “entwickelnder Architekt”
… ursprünglich mal ECMAScript (4)-Jünger…
… dann auf die dunkle Seite konvertiert (JEE)
… dann kam Spring Boot…
… und jetzt AWS…
3.
4.
5. Warum ist AWS eigentlich so schwierig?
Wer von euch hat wirklich Ahnung
von DNS, Load Balancern, Firewalls, Netzwerktopologien,…?
6. Warum ist AWS eigentlich so schwierig?
Wir starten auf der komplett grünen Wiese,
vielleicht zum ersten Mal in unserem Leben
13. Welche Anforderungen haben wir an unsere Architektur?
Security-by-default
Welche Konsequenzen
haben die Aktionen von
unerfahrenen Entwicklern?
14. Welche Anforderungen haben wir an unsere Architektur?
Monitoring, Logging und hohe Dev Exp. von Anfang an
Nie wieder „öhhh da muss ich
erstmal nachgucken wie man das
nochmal macht..“
15. Welche Anforderungen haben wir an unsere Architektur?
Nur so komplex wie unbedingt nötig
Wie lange brauche ich, um einen
neuen Entwickler zu erklären wie
unser Setup funktioniert?
Wieviel Aufwand ist das initiale
Setup?
Welche Schritte sind notwendig,
um neue Clients oder APIs
onzuboarden?
16. Welche Anforderungen haben wir an unsere Architektur?
100% über versionierten Quelltext verwaltet
Wissen wir in 5 Jahren noch
exakt, was auf unseren
Blechen installiert ist?
17. Security-by-default
Nur so komplex wie
unbedingt nötig
Monitoring, Logging
und hohe Dev Experience
von Anfang an
100% über versionierten
Quelltext verwaltet
19. AWS Organization "meinProjekt"
Account "root"
Account
"security"
Account
"collab"
Account
"cicd"
Account
"qa"
Account
"stage"
Account
"prod"
Account
"spielwiese"
Reza
Philipp
André
dev
dev&qa-write
qa-full-access & stage-read & prod-read
20. Part 2: Wie war das mit der Developer Experience?
21. Wir haben schnell gemerkt, dass wir
entweder Shortcuts gehen müssen oder
noch lange mit dem Setup beschäftigt sein werden
22. Enter gruntwork.io
- Open-Source Tooling
- Infrastructure as Code Bibliothek
- Referenzarchitektur
- Viel Trainingsmaterial (Videos und Blogs)
- Support und hoher Reifegrad
- Subscription kostet 700 USD/Monat für AWS
30. In folgenden Punkten weichen wir bewusst von der
Multi-Account Referenzarchitektur ab
- Geringfügig angepasste Account-Struktur
- Wir verwenden gitlab und perspektivisch Spinnaker statt Jenkins
- Nur ein VPN von welchem alle anderen Accounts erreicht werden können
- Wir erweitern die Architektur um API und Access Management
33. Du musst nicht alles vergessen, was du über Infrastruktur weißt,
wenn du mit AWS anfängst.
Ganz im Gegenteil, die Basics im Bereich Netzwerk sind unerlässlich,
um sich schnell in AWS zurecht zu finden.
Mach es von Anfang an richtig.
Du musst das Rad nicht neu erfinden.
Jemand anders hatte bereits das gleiche Problem wie du.