Backend

In diesen Episoden sprechen wir über Backend Themen. Gerade mit Andy’s Dev-Ops und SRE Schwerpunkt und Wolfi’s Datenbanken Wissen sind Skalierung und Architektur im Backend ein ständiges und beliebtes Thema.

Podcast

Backend im Engineering Kiosk Podcast

Details zur Podcast Episode #63 Spaß mit Zahlen: Under- und Overflows, Rückwärtslaufende Zeit, Negative Modulos und Währungsbeträge Software EngineeringBackendDatenbanken

#63 Spaß mit Zahlen: Under- und Overflows, Rückwärtslaufende Zeit, Negative Modulos und Währungsbeträge

Herausforderungen mit Zahlen in der Programmierung: Hidden bugs, Effekte auf die Realität und der richtige Umgang. Der korrekte Umgang mit Zahlen in der Softwareentwicklung ist so wichtig wie die Reifen bei einem Auto, um es zu fahren. Obwohl viele Entwickler sagen, Mathematik ist ein täglicher Bestandteil des Tages, so kommt man um die Verarbeitung von Zahlen nicht drum herum. Doch wie schon früher in der Schule, kann der Umgang mit Zahlen sehr Herausfordernd sein. In dieser Episode sprechen wir über klassische Fehler, die beim Umgang mit Zahlen in Software gemacht werden, über skurriles Verhalten von Programmiersprachen aber auch über die Effekte dessen auf die reale Welt. Es geht um Datentypen in Programmiersprachen und deren Wertebereiche, Probleme mit großen Zahlen und JSON, Währungsumrechnung und die korrekte Speicherung, Integer-Under- und Overflow, negative Modulo-Berechnungen,...

Details zur Podcast Episode #60 On-Call: Warum auch Software-Engineers auf Rufbereitschaft sein sollten TeamBackendDevOps

#60 On-Call: Warum auch Software-Engineers auf Rufbereitschaft sein sollten

On-Call bzw. Rufbereitschaft: Eine ewige Hass-Liebe? Software-Engineers entwickeln die Applikationen. Doch wer maintained diese und bringt diese wieder zurück ins Leben, wenn die Applikationen mal abstürzen? Im klassischen Sinne sind das System-Administratoren. Und für die meisten in diesem Beruf gehört On-Call dazu. Doch ist dies auch im modernen Dev-Ops-Umfeld und in Voll-Autonomen Teams der Fall? Welche Herausforderungen gibt es beim On-Call? Sollten Software-Engineers genauso auf Rufbereitschaft sein? Wie sieht ein strukturierter On-Call-Prozess aus? Und was muss getan werden, um einen solchen zu etablieren? Und welche Modelle zur Bezahlung bzw. Kompensation gibt es, wenn man auch nach der Arbeit für seine App gerade steht? All das und noch viel mehr gibt es in dieser Episode. Bonus: Was Pager mit Tamagotchi zu tun haben und ob On-Call zu einer Handy-Phobie führt. Schaut vorbei in...

Details zur Podcast Episode #56 Applikations-Skalierung: Wann, wieso, was kostet es? Stateless und Stateful, Horizontal vs. Vertikal BackendDevOpsCloud

#56 Applikations-Skalierung: Wann, wieso, was kostet es? Stateless und Stateful, Horizontal vs. Vertikal

Die App muss skalieren. Das kann doch nicht so schwer sein, oder? Sekundenschnelles und automatisches Hochskalieren bei einem erhöhten Traffic-Aufkommen. So oder so ähnlich versprechen es die Cloud-Hyperscaler in ihren Marketing-Texten. Das erweckt oft den Anschein, dass das Ganze gar nicht so schwer sein kann. Doch ist dies auch in der Realität so? Eine Applikation skalierbar zu gestalten, ist bei weitem nicht einfach. Stichworte wie Ausfallsicherheit, vertikale- oder horizontale Skalierung, Stateless- oder Stateful-Applications, Loadbalancer und Auto-Discovery, Kubernetes und zusätzliche Code-Komplexität, finanzieller Impact, Load-Tests, Request-Deadlines, Chaos Monkey und Down-Scaling. Alles Begriffe, die damit in Verbindung stehen und einen wichtigen Bestandteil ausmachen. In dieser Episode geben wir einen Überblick über das Thema Application-Skalierung: Was ist das? Wer braucht es?...

Details zur Podcast Episode #52 Asynchrone Verarbeitung durch Message Queues - Vor- und Nachteile BackendSoftware EngineeringOpen Source

#52 Asynchrone Verarbeitung durch Message Queues - Vor- und Nachteile

Asynchrone Verarbeitung durch Message Queues: Was ist das und wofür ist das gut? In vielen Applikationen gibt es Bereiche, die einfach etwas Zeit für die Verarbeitung brauchen, aber das klassische Anfrage/Antwort (Request/Response) Verhalten nicht blockieren sollen. Oft werden dafür asynchrone Prozesse verwendet. Durch den Einsatz von Message Queues ergeben sich weitere Vorteile wie u.a. granulare Skalierbarkeit und Unabhängigkeit von einzelnen Programmiersprachen. RabbitMQ ist einer der Platzhirsche im Bereich Open-Source-Message-Broker. In dieser Episode klären wir wofür Message Queues gut sind, bei welchen klassischen Anwendungsfällen diese helfen können, welche Herausforderungen diese Darstellen, wo der Unterschied zu Pub/Sub oder Streams ist und was Redis, Kafka und ZeroMQ damit zu tun hat. Bonus: Warum Software rostet. **** Diese Episode wird gesponsert vom Open-Source...

Details zur Podcast Episode #49 Die Zukunft: Software Repository Mining BackendSoftware EngineeringDatenbankenProduktivität

#49 Die Zukunft: Software Repository Mining

Die Analyse von Metadaten aus dem Software-Entwicklungsprozess: Yey or Ney? Die wenigsten kennen den Begriff des Software Repository Minings, doch die meisten benutzen Features, die darauf zurückzuführen sind. Zum Beispiel der automatische Vorschlag von den richtigen Pull Request Reviewern. Es geht darum, auf Basis der Daten aus dem Softwareentwicklungsprozess neue Erkenntnisse zu gewinnen, um diesen einfacher und produktiver zu gestalten. In dieser Episode klären wir, woher die Daten kommen, wie man an diese gelangt, welche Anwendungsfälle es gibt, was die Herausforderungen dabei sind und wie ihr damit starten könnt. Bonus: Ob Andy bereits 50 Jahre alt ist und warum gute Architektur auch als Selbstschutz dient.

Details zur Podcast Episode #48 Der Layer unter Docker: containerd, Kubernetes, Container Runtime Interface, CRI-O und Open Container Initiative (OCI) BackendDevOpsOpen SourceCloud

#48 Der Layer unter Docker: containerd, Kubernetes, Container Runtime Interface, CRI-O und Open Container Initiative (OCI)

Wie sieht eigentlich der Layer unter Docker aus? Und wie interagiert Kubernetes mit Containern? In Episode 46 haben wir geklärt, welches Problem Docker eigentlich löst. Das Container-Ecosystem ist jedoch weit größer. Deswegen widmet sich diese Folge der darunter liegenden Ebene. Wir besprechen die Modularisierung von Docker, die herausgetrennte Highlevel Runtime containerd, wie Kubernetes mit Docker-Containern umgeht, ob Docker Container die einzige Art von Containern ist, die Kubernetes unterstützt, was ein Container Runtime Interface (CRI) ist, was die Open Container Initiative (OCI) und ob auch du dir deine eigene Highlevel Container Runtime programmieren kannst. Bonus: Was die Linux-Mafia ist und wieso es bald eine österreichische Container Runtime gibt.

Details zur Podcast Episode #46 Welches Problem löst Docker? BackendDevOpsOpen Source

#46 Welches Problem löst Docker?

Docker und Container: Buzzwords der letzten Dekade - Doch was ist Docker wirklich? In dieser Episode versuchen wir genau diese Frage zu beantworten. Jeder redet davon, und wie in jedem Hype werden Wörter und Begriffe oft in einem falschen Kontext genutzt und das Ecosystem entwickelt sich unglaublich schnell. Deswegen ist es doch ganz gut, wenn man ein wenig hinter die Kulissen schaut: Warum wurde Docker erschaffen und welches ursprüngliche Problem sollte es lösen? Was ist das besondere an Docker, wenn es "diese Linux Container" bereits seit > 20 Jahren gibt? Was ist eigentlich ein Container im Kontext von Software und was hat "Change Root" (chroot) damit zu tun? Und welche Nachteile hat Docker? Kurz um: 55 Minuten um das “Warum” hinter Docker. Bonus: Warum Duisburg eine essentielle Rolle im Container-Ecosystem spielt, was Kaffe mit Software deployen zu tun hat und wie man das Endstück...

Details zur Podcast Episode #43 Cloud vs. On-Premise: Die Entscheidungshilfe BackendDevOpsCloud

#43 Cloud vs. On-Premise: Die Entscheidungshilfe

Wann ist die Cloud das richtige für dich und deine Applikation? Oder doch lieber alles selbst hosten? Die Cloud wird oft als "die Lösung" für all deine Probleme beschrieben. Sie ist günstig, man benötigt weniger Personen für den operativen Betrieb, alle Services sind gemanagt und serverless und alle anderen Probleme hat man sowieso nur On-Premise. Sind damit On-Premise Datacenter und Selfhosting ausgestorben und sollten gemieden werden? Oder gibt es sogar Szenarien, wo On-Premise sogar große Vorteile hat? In dieser Episode geht es um diese Frage: Wann ist die Cloud und wann On-Premise / die eigenen Server für dich die bessere Wahl? Wir diskutieren über diese Frage anhand eines Blogposts über eine Migration aus der Cloud von 37Signal's Produkt "Hey.com". Bonus: Was der Produktlebenszyklus vom VW Golf mit der Cloud zu tun hat und warum ein Raid 1 kein Backup ist.

Details zur Podcast Episode #42 Lexer, Parser und Open Source in Counterstrike BackendSoftware EngineeringOpen Source

#42 Lexer, Parser und Open Source in Counterstrike

Was haben Lexer, Parser und Counter-Strike gemeinsam? Richtig! Eine schöne Open Source Story. Computerspiele sind für viele Software-Entwicklerinnen und -Entwickler der Einstieg. Andere wiederum steigen über den klassischen Bildungsweg eines Informatik-Studiums in die Softwareentwicklung ein. Dabei wird oft viel Theorie wie Lexer, Parser und Compilerbau durchgenommen. Doch was haben Computerspiele mit Lexer und Parser gemeinsam? Andy erzählt eine Story, wie er vor Jahren sich mit Lexer und Parser anhand einer Counter-Strike-Konfigurationsdatei vertraut gemacht hat. Eigentlich nur, um eine datengetriebene Spielanalyse zu betreiben. Raus kam ein Lexer und Parser für das Valve Data Format (VDF). Eine Geschichte voller Over-Engineering, Open Source, Spaß und einem Job-Angebot. Bonus: Wie Wolfgang nur ans cheaten denkt, was autoexec mit Maustreibern zu tun hat und was Landmaschinen auf...

Details zur Podcast Episode #41 SQL Injections - Ein unterschätztes Risiko BackendDatenbankenSicherheitSoftware Engineering

#41 SQL Injections - Ein unterschätztes Risiko

SQL Injections: Eine der weitverbreitetsten Sicherheitslücken im Web, auch im Jahr 2022 Der Großteil aller Applikationen interagiert in irgendeiner Art und Weise mit einer Datenbank. Deswegen werden die meisten Entwicklerinnen und Entwickler bereits von der Sicherheitslücke "SQL Injection" gehört haben. Seit 24 Jahren ist dies eine der weitverbreitetsten Sicherheitslücken im Internet und es ist kein Ende in Sicht. Was ist eigentlich eine SQL-Injection im Detail? Welche verschiedenen Arten gibt es? Was ist der Grund, dass uns dieses Einfallstor so lange beschäftigt? Woher kommt diese und wer hat sie entdeckt? Wie kann man sich schützen und seine Anwendung ausreichend testen? All das und noch viel mehr in dieser Episode. Bonus: Der Kontrast zwischen Duisburg und Berlin und wie die SQL-Injektion als Nebenprodukt entdeckt wurde.

Details zur Podcast Episode #38 Monitoring, Metriken, Tracing, Alerting, Observability BackendDevOpsSoftware EngineeringCloud

#38 Monitoring, Metriken, Tracing, Alerting, Observability

Wie würde heutzutage ein moderner Logging, Metriken, Monitoring, Alerting und Tracing-Stack aussehen? Im Infrastruktur-Bereich gibt es zu jedem Bereich etliche Tools. Cloud-Native ist das Buzzword der Stunde. In dieser Episode erzählt Andy, wie er einen modernen Stack für ein Side-Projekt für die Bereiche Logging, Metriken, Monitoring, Alerting und Tracing aufsetzen würde. Unter anderem geht es dabei um Fragen wie: Was sollte man eigentlich alles loggen? Wie kann man von einem Alert angerufen werden? Wie visualisiert man Daten in schönen Graphen? Brauchen wir Tracing? Und was ist Observability? Bonus: Engineering Porn und Buzzword-Bingo.

Details zur Podcast Episode #34 Wie cloudy bist du? BackendDevOpsCloud

#34 Wie cloudy bist du?

Die Cloud Native Infrastruktur vs. ein dicker Server - Ein Dauerstreit-Thema AWS, GCP, Azure und Co bieten viele Cloud Native Services, die dir dein Leben vereinfachen sollen. Serverless, weniger Admins und alles super günstig. Das sind die Versprechen. Doch ist das wirklich so? Wäre ein leistungsstarker Server nicht besser, günstiger, einfacher und ausreichend? Und wie steht das nicht im Konflikt mit einer modernen Microservice-Architektur? All diese Fragen stellen Wolfgang und Andy in dieser Episode, wo sie einen Artikel "Use One Big Server" besprechen. Bonus: Was eine Klatsche auf Reddit, Vendor-Lock-in und CV-Driven-Development mit Servern zu tun hat.

Details zur Podcast Episode #31 Ich automatisiere mir die Welt wie sie mir gefällt (mit GitHub Actions) BackendDevOpsSoftware EngineeringSoftware Qualität

#31 Ich automatisiere mir die Welt wie sie mir gefällt (mit GitHub Actions)

Schuftest du noch oder automatisierst du schon? Heute gehts um die Faulheit von Entwicklern: Wir sprechen über GitHub Actions - Was es ist, wozu man es benutzen kann, wie es das eigene Leben erleichtern kann, wo der Unterschied zu Jenkins ist, wie das Engineering Kiosk es selbst einsetzt und welche Use-Cases von der Community oft genutzt werden. Bonus: Warum LinkedIn einen HTTP Status Code 999 sendet, wann wir Programmiersprachen wie Unterhosen wechseln und was Michael "Bully" Herbig mit der ganzen Sache zu tun hat.

Details zur Podcast Episode #28 O(1), O(log n), O(n^2) - Ist die Komplexität von Algorithmen im Entwickler-Alltag relevant? Software EngineeringFrontendBackend

#28 O(1), O(log n), O(n^2) - Ist die Komplexität von Algorithmen im Entwickler-Alltag relevant?

Beim Programmieren ist alles ein Algorithmus. Irgendwie zumindest. Doch wie misst man die Zeitkomplexität? Das ganze nennt sich Big-O-Notation, oder zu deutsch "Bachmann-Landau-Notation". Eigentlich ein recht trockenes Thema, doch auch irgendwie relevant in der heutigen Zeit von verteilten Systemen und großen Datenmengen. Doch was ist die Big-O-Notation? Was sagt sie aus? Wo kommt diese in der Praxis vor? Und inwieweit hat das ganze noch eine Relevanz in Zeiten von Cloud Computing und fast unbegrenzten Hardware-Ressourcen? Darum geht es in dieser Episode. Bonus: Wie Andy und Wolfgang in deutscher Grammatik belehrt werden, ob es OK ist in 1on1s zu fluchen und das Hash-Kollisionen mit der ganzen Sache zu tun haben.

Details zur Podcast Episode #27 Sicherheit in der Dependency Hölle DevOpsFeuerwehrSoftware EngineeringFrontendBackendSicherheit

#27 Sicherheit in der Dependency Hölle

Was haben die JavaScript Pakete left-pad, color, faker und cross-env gemeinsam? Alle waren in npm Package Sicherheits-Incidents involviert. Wenn man sich die Anzahl von Javascript Abhängigkeiten bei Mittelgroßen Projekten ansieht, ist eine dreistellige Anzahl an JavaScript Paketen nicht unüblich. Das liegt primär an der überschaubaren Größe der Pakete und somit der Funktionalität. Alles nur, um Pakete verwaltbarer zu halten. Doch dieser Umstand macht das JavaScript-Ecosystem so attraktiv für Angreifer oder kann zu extremen Seiteneffekten führen. In dieser Episode sprechen wir drei npm Package Incidents durch, was es damit aufsich hatte, welche Attack-Möglichkeiten es noch gibt und wie man sich als Software Entwickler dagegen schützen kann. Bonus: Was Bademeister, Blubberwasser und eine ASCII-Repräsentation von Uncle Sam und der amerikanischen Flagge mit JavaScript zu tun haben.

Details zur Podcast Episode #24 Infrastructure as Code oder old man yells at cloud AutomationBackendDevOpsCloud

#24 Infrastructure as Code oder old man yells at cloud

Old man yells at cloud - Oder: Wie managed man seine Infrastruktur mit Stil (und Software) Anders als gewohnt nimmt in dieser Episode Andy die Dozenten-Rolle ein und beantwortet Wolfgang all seine Fragen zum Thema Infrastructure as Code. Wir klären wozu man das ganze eigentlich braucht, was Terraform und Pulumi ist, klären über einen weit verbreiteten Mythos auf, wo der Unterschied zwischen Infrastructure Orchestration und Configuration Management ist, was das beste Configuration Management Tool ist und wo es Herausforderungen bei der Verwendung von Infrastructure as Code gibt. Bonus: Was ein Data Engineer ist, ob Wolfgang Holz-Clogs trägt und wie Deutschland mit dem 9€ Ticket umgeht.

Details zur Podcast Episode #16 Code Reviews: Nützlich oder bremsen nur ein gutes Team? TeamSoftware QualitätFrontendBackendSoftware Engineering

#16 Code Reviews: Nützlich oder bremsen nur ein gutes Team?

Code Reviews: Jeder will schnelles Feedback, doch niemand hat Zeit dafür - Eine Hassliebe. Eine Komponente im Alltag jedes Software Engineers. Egal ob Junior, Senior oder Staff-Engineer. Jeder erstellt Code Reviews und kommentiert die Arbeit von den Kollegen. Doch wie sehen gute Code Reviews aus? Was gehört hinein, was bleibt besser draußen? Wie viel Reviewer machen Sinn? Wie geht man mit Nitpicking-Kommentaren und Gatekeepern um? Und allgemein: Zieht dieser zusätzliche Schritt nicht die Performance des Teams runter und ist sowieso Overhead? All das und noch viel mehr in dieser Episode zum Thema Code Reviews. Bonus: Was Faultiere und Markus Söder mit Code Reviews zu tun haben und warum Blubberwasser den Charakter verdirbt.

Details zur Podcast Episode #03 Over-Engineering, das Werkzeug des Teufels? Software EngineeringFrontendBackend

#03 Over-Engineering, das Werkzeug des Teufels?

Was ist eigentlich Over-Engineering? Und wann ist es einfach nur gutes Engineering? Ist das eigentlich immer nur negativ? Oder auch mal positiv? Gibt es auch Under-Engineering? In dieser Episode philosophieren Andy und Wolfgang darüber, wann der Drang nach dem perfekten Source-Code Overenegineering ist und warum es in der akademischen Welt nur dreckig programmiert wird. Bonus: Warum Wolfgang seine Kletterschuhe nach Tschechien sendet

Details zur Podcast Episode #02 Technologienzoo Side Projects Side ProjectsFrontendBackend

#02 Technologienzoo Side Projects

Wolfgang und Andy erzählen ein wenig was über ihre eigenen Side Projects sourcectl (https://gettoknow.sourcectl.dev/), F-Online (https://www.f-online.at/) und the athlete (https://theathlete.app/). Wir machen eine Rundfahrt durch den verwendeten Technologienzoo, diskutieren ob man Monitoring in Side Projects benötigt, wann es Over-Engineering und wann gerechtfertigt ist, ob der heutige Einsatz von Zend Framework 1 schon als kriminell gewertet werden kann und hören Wolfgang zu, wie er DevOps Anfängerfehler begeht indem ihm die Festplatte voll logs läuft. Bonus: Wie Wolfgang den ultimativen Reichtum mit seinem eigenen CMS zur dotcom Blase verpasst hat