open source! wenn dein täglich brot für jede*n einsehbar...
TRANSCRIPT
Open Source! Wenn dein täglich Brot für jede*n einsehbar ist
🍳 Easterhegg 2019 #eh19, Wien
Bastian Widmer - @dasrecht | @amazeeio
$> whoami bastian System Engineer at amazee.io
Containerbasiertes Hosting 👻 🤖
Zürich, Schweiz @dasrecht Zu viele Nebenprojekte!
• Digitale Gesellschaft Schweiz • Vorstand CommunityRack.org • TEDxBern • Sag mal, kannst du…
$> whoami bastian ● System Engineer at amazee.io
● Located: Zurich, Switzerland
● Twitter: @dasrecht
● Too many sideprojects!
○ DevOpsDays Zurich
○ CommunityRack.org
○ Running Tor Exit nodes for fun
○ Working with Real Containers
● System Engineer at amazee.io
● Located: Zurich, Switzerland
● Twitter: @dasrecht
● Too many sideprojects!
○ DevOpsDays Zurich
○ CommunityRack.org
○ Running Tor Exit nodes for fun
○ Working with Real Containers
Über was wir reden werden: Open Source, Container, Herausforderungen, Vorteile, Fehler, gelerntes und wieso jeder Open Source „machen“ sollte.
🙋%🙋%🙋🙋%🙋%🙋
Wer nutzt Open Source Software täglich?
Hände hoch, wenn du eine der folgenden Projekte nutzt:
Drupal
Drupal, Wordpress
Drupal, Wordpress, Composer
Drupal, Wordpress, Composer, MariaDB
Drupal, Wordpress, Composer, MariaDB, PostgreSQL
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis, Node.js
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis, Node.js, Nginx
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis, Node.js, Nginx, Apache
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis, Node.js, Nginx, Apache, PHP
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis, Node.js, Nginx, Apache, PHP, Linux
Drupal, Wordpress, Composer, MariaDB, PostgreSQL, Redis, Node.js, Nginx, Apache, PHP, Linux, Android
Sind wir uns einig? Open Source ist überall!
Auch am Easterhegg🥚! VOC, Engelsystem, POC, Pretalx/Schedule, C3Nav 😍
amazee.io
• Open Source Hosting Platform - Lagoon • 11 Angestellte • Web-Hosting seit ca. 8 Jahren • Webseiten aller Grössen • Remote Team • ~5 verschiedene Zeitzonen • Hosting Angebot in 16 verschiedenen
Ländern • In der „Cloud“ und on-premise
Geständnis: Früher™ habe war viel weniger meiner Arbeit offen.
Wie es dazu kam…
Wie es dazu kam… • Webagentur - Betreibt eigenes Hosting • Alles Handgestrickt • Unzufriedenheit mit anderen
Produkten / Anbietern • Andere Agenturen fragen regelmässig
an „Bei wem Hostet ihr?“ • Lokale Entwicklungsumgebungen als
Test für Neuerungen
Wie es dazu kam…• Vagrant & Chef • Vagrant & Puppet • Neubau der gesamten Infrastruktur mit
Puppet • Webagentur =! Hoster • Wir machen einen Business Case!
Wie es dazu kam… • Flexibilität? • Vagrant frisst viel Speicher und RAM • Docker Container geniessen bei grossen
Projekten ihren Ruhm - Abseits von Netflix und Google verwenden wenige die Technologie
• Docker sieht interessant aus • Wir versuchen mal eine lokale
Entwicklungsumgebung zu bauen
Wie es dazu kam…
• Pygmy - weil Docker noch nicht perfekt ist: • Mehrere Projekte laufen nebeneinander • SSH Keys können sauber eingebunden
werden • Lokaler Mailempfang zum testen von
Mails • Erste Produktive Container mit
Applikationsteilen (Apache Solr oder Kerberos für Single-Sign-On).
• „Lagoon“ wird zum Projektnamen
Pygmy: https://github.com/amazeeio/pygmy
Unser damals grösstes Projekt so: „Wir haben viel Traffic, mehrere Node.js-Frontends und ein Drupal als Backend. Könnt Ihr das auch in Containern?“
😳
Ja klar! 🧐
Wie es dazu kam… • Anpassungen an Lagoon • Mehr Flexibilität durch Container • Open Source? • Wann, wenn nicht jetzt? • Open Source! • Momentan™ einziger Hoster mit einem
kompletten OpenSource Stack
Lagoon? Was tut das genau?
Einiges!
Okay… nun wirklich:
Local Develop with docker-compose
Lagoon
- Reads docker-compose.yml
- Build Images - Setup Project - Push Images to
Registry - Configure
Resources - Monitor Rollouts
OpenShift / Kubernetes Orchestration
Notifications
Webhooks
Git push
Press-Release ist gemacht, Blogpost veröffentlicht, Tweets sind raus!!!111einself
Erzähl, was ist danach geschehen?
Aber, AMAZON hat sich gemeldet!
Die eigentliche Arbeit beginnt erst
Open Source Mantra: Nicht das Rad neu erfinden…
Nicht das Rad neu erfinden! ●Wenn es ein Open Source Tool gibt,
welches ein Problem löst - Wird dieses Verwendet
Kombiniertes Wissen:
Auf den Schultern von Riesen stehen
Vorteile
●Entwicklungsstatus ist für alle ersichtlich
Vorteile
●Grössere Probleme werden
schneller Sichtbar und werden potentiell schneller behoben.
●Ein Workaround für ein Problem
kann auch anderen Anwendern helfen
●Öffentliche Roadmap
●Ideas Space 🎉 - Feature Requests :
“Könnt ihr Kubernetes?“
●Kollaborativer Umgang für alle
Anwender
Herausforderungen
•Wenn ihr ein Open Source Projekt seid, wieso steht hier überall euer Firmenname?
•SEARCH & REPLACE, done!
Herausforderungen
•Jeder kann zum Projekt beitragen - Nutzer können ein Issue auf Github erstellen oder direkt einen Pull Request mit der Änderung machen.
•Nicht jeder will sich so fest Involvieren (Öffentlicher Bug-Report kann schon eine
Grenze sein)
•Kunden erwarten, dass plötzlich alles Open Source ist (sogar die ganz alten Legacy
Systeme)
Herausforderungen
•Mehr Sorgfalt und Aufmerksamkeit
•Macht diese Änderung Sinn?
•Ist alles sauber Dokumentiert?
•Welche Auswirkungen haben diese Anpassungen?
•Kommunizieren wir die Auswirkungen entsprechend?
Herausforderungen
•Grosse neue Features entwickeln
•Was kostet Open Source Entwicklung?
•Nicht alle von uns betriebenen Plattformen haben die selben Release Zyklen -
Change Advisory Boards etc.
Zwei Jahre offene Entwicklung
2 Jahre• 605 geschlossene Pull Requests
• 132 offene Issues
• 295 geschlossene Issues 🎉
• 80 ForksEs gibt Leute die einen Fork betreiben!
• Externe Mitwirkende (mehrheitlich von unseren Kunden)
Open Source Mantra: Kein Beitrag ist zu klein - Probleme melden - Meinung zu neuen Features einbringen - Dokumentation
2 Jahre
• Interesse über unseren Erwartungen
• Kunden suchen komplette Open Source Stacks
• Es ist mehr als nur den Code sehen zu können
• Flexibilität und Möglichkeit es auch auf eigener Infrastruktur zu betreiben
2 Jahre
• Vertrauen wächst
• Pull Requests kommen nicht nur von unserem Team!
• Weiterentwicklung ist offen
• Neue Mitarbeiter suchen die gerne ihre Zeit in ein Open Source Projekt investieren wollen.
• Öffentliche Hand - Public Money = Public Code
• Mehr als „nur“ Drupal!
Gelerntes
• Gute Dokumentation macht vieles einfacher.
• Change Logs sind wichtig - Prozesse waren nötig.
• Rolling Release versus Versionen
• Vorlagen helfen enorm:
• Pull Request Vorlage
• Issue Vorlage
Open Source Mantra: Etwas ist immer kaputt
Open Source Mantra: Etwas ist immer kaputt Es ist einfach noch nicht perfekt!
Open Source - Umbauen und verbessern
• Neue Technologie
• Konstante Änderung
• Dinge funktionieren, bis sie nicht mehr funktionieren oder an ihre Grenzen stossen.
• Beispiel: Datenbanken in Containern *schauder*
• Änderungen werden nicht immer von allen Nutzern akzeptiert
Frage an dich: Können andere von deiner Arbeit profitieren, wenn du diese frei zur Verfügung stellen würdest?
Vielleicht ist dein Code die „Schulter des Riesen“ auf welchem andere Lösungen verwirklichen können.
Danke für eure Aufmerksamkeit!🥚 Bastian Widmer - @dasrecht | @amazeeio
Inspiriert? Wir suchen noch Leute! ;-) Bastian Widmer - @dasrecht | @amazeeio