SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
TDD –
Tatort-Driven Development
Oder: Wie wir bei waipu.tv auch an einem Sonntagabend
die Nerven behalten
Michael Bruns, inovex GmbH
› Q: How many people watched Tatort on 03 April 2017?
› A: 14.56m
› Q: What’s the market share of this?
› A: 39.6%
2TDD –Tatort-Driven Development
Let’s start with a quiz
(Source: http://bit.ly/2uHEt7M)
3TDD –Tatort-Driven Development
Please allow me to introduce myself:
› Software developer, architect, therapist, ...
› AWS fanboy
› Built quite a bit of waipu.tv
› http://sayat.me/mbruns
Michael Bruns
inovex GmbH
4TDD –Tatort-Driven Development
What did we build?
AuthRegistration PlayoutEPG Recording
Users Streaming
......
Third
Party
...
5TDD –Tatort-Driven Development
How do people use it?
20:15
› Anybody who likes working at 20:15
every day?
› Including and especially on weekends?
› Don’t build a platform, use one - in our case: AWS
› Use what’s already there: EC2, RDS, S3, Elasticsearch,
Kinesis, Route53, Lambda ...
› Add shared stuff (e.g. JVM, nginx) to base image (AMI)
› Leave the rest to the services
6TDD –Tatort-Driven Development
How did we build it?
› Foster DevOps, i.e. tear down all political and
technological barriers
› Make infrastructure reproducible
› Choose the right tool for the job:
Terraform, GitLab CI, Prometheus, …
7TDD –Tatort-Driven Development
How did we build it?
8TDD –Tatort-Driven Development
Use the right tool for the job...
...and use it wisely!
› 50+ EC2 instances, 25+ Auto-Scaling Groups,
25+ ELBs, 75+ Security Groups
› ~30m objects / 3+ TB in S3 Buckets
› ~60m documents stored in Elasticsearch
› 50+ Git Repositories with GitLab CI
9TDD –Tatort-Driven Development
What did we use?
› ~15 Lambdas (growing a lot)
› 8 PostgreSQL databases, 10 Redis Caches
› 75+ DNS entries
› Java, JS, Clojure, Kotlin (and some Ruby, Lua, Go, …)
› ~15 people working in 5+ locations
10TDD –Tatort-Driven Development
What did we use?
› Infrastructure as Code
› Independent of provider (AWS, Azure, OpenStack, …)
› Multi-cloud strategy is possible
› https://www.terraform.io/
11TDD –Tatort-Driven Development
Terraform - Basics
12TDD –Tatort-Driven Development
Terraform - Examples
13TDD –Tatort-Driven Development
Terraform - Examples
› Version control
› Reproducible
› Manages dependencies (both implicit and explicit)
› State can be “planned” (i.e. validated)
› Remote state for collaboration
14TDD –Tatort-Driven Development
Terraform - Advantages
› Continuous Integration & Deployment
› Pipelines
› Stages, Environments, Variables, Tags, …
› Easy integration of runners
15TDD –Tatort-Driven Development
GitLab CI
16TDD –Tatort-Driven Development
The whole pipeline
Local Git
Repo
GitLab
Repo
GitLab CI Build
(Gradle,
Leiningen, …)
GitLab CI
Deployment
(Terraform)
Dev
GitLab CI
Deployment
(Terraform)
GitLab CI
Deployment
(Terraform)
Preview Prod
auto auto
manually manually
GitLab CI
Tests
auto
GitLab CI
Tests
auto
› Launch Configuration for services
› Automatic scaling of services based on
› Network/CPU usage
› Number of requests
› Schedules
17TDD –Tatort-Driven Development
AWS - Auto Scaling Groups
18TDD –Tatort-Driven Development
AWS - Auto Scaling Groups - Example
› “Serverless” functions
› Stateless
› Java (or better: JVM), Node.js, Python, C#, Go
› React to events (Kinesis, S3, Alexa, CloudWatch, …)
› “Infinite” scaling
19TDD –Tatort-Driven Development
AWS - Lambda
› I’ve been at x-celerate a year ago ranting about
Docker & Kubernetes
› Definitely useful technologies, but we still don’t use them
› If you’re application is trash without a container,
it will be trash inside a container as well
20TDD –Tatort-Driven Development
My Two Cents on Containers
› These are all just tools
› A fool with a tool is still a fool
› Tools won’t fix your people issues
21TDD –Tatort-Driven Development
The Bad News
Don’t put your unmaintainable monolith
into the cloud and expect things to get better!
22TDD –Tatort-Driven Development
Most important advice
› You will get automatic scaling
› You will get continuous delivery
› You will get a better distribution
23TDD –Tatort-Driven Development
Unmaintainable monolith in the cloud
(of errors)
(of a big ball of mud)
(of the stuff you already
didn’t know how to debug before and which you now
can’t even find because you aren’t writing the logs to a
central store yet and once the machine is gone all logs
are gone and now you sit in your office yelling and…)
› Improve the interiors (package/module structure, DB
access, number/distribution of requests, …)
› Automate as much as possible
› Start small, go micro only if necessary
› But start! Today is the best day to improve your
architecture.
24TDD –Tatort-Driven Development
Where to Start?
› Talk to each other
› Take responsibility
› Don’t point your finger at someone
› Don’t fall into this trap:
“Weeks of coding can save you hours of planning!”
25TDD –Tatort-Driven Development
The Social Aspects
› Firefighter for bugs or urgent issues
› Take turns
› Create an easy way to notify the
person in charge (e.g. @firefighter)
› Don’t be afraid to ask for help
26TDD –Tatort-Driven Development
Share the operational load
› Be open for constant change
› However, don’t change everything just because you can
› Sometimes legacy is not necessarily a bad thing
› Some changes might have consequences you don’t expect
27TDD –Tatort-Driven Development
Embrace Change
› Create a central board to request improvements
› Let the team make decisions which improvements are
most important
› Accept if the others think that your suggestion isn’t useful
28TDD –Tatort-Driven Development
Track Change
› Set the same goal(s) for everybody, but don’t set
too many rules
› Let teams find their best modus operandi
› Be careful with stuff like coding guidelines, static code
analysis, Git flow, …
29TDD –Tatort-Driven Development
The Everyday Work
› Repeat these sentences ten times every day:
› We are not Netflix
› We are not Google
› We are not Facebook
› We are not Spotify
30TDD –Tatort-Driven Development
The Mantra
› Don’t build a single point of failure
› Monitor your stuff
› Couple your services not as loosely as possible,
but as loosely as feasible
› Do you really need Kafka, Event Sourcing, CQRS, …?
31TDD –Tatort-Driven Development
Coupling Services
› Loosely coupled, small services
› Isolated from each other
› Supposed to fit into your head
› But what if they don’t just because of the sheer number
of services?!
32TDD –Tatort-Driven Development
“Micro”services
“One common anti-pattern when introducing DevOps to
an organization is to assign someone the role of 'DevOps'
or to call a team a 'DevOps team'. Doing so perpetuates
the kinds of silos that DevOps aims to break down and
prevents DevOps culture and practices from spreading
and being adopted by the wider organization.”
(Rouan Wilsenach,
https://martinfowler.com/bliki/DevOpsCulture.html)
33TDD –Tatort-Driven Development
DevOps - How not to do it
34TDD –Tatort-Driven Development
The Fear of DevOps
› Do I have to become an nginx ninja?
› Am I doing deployments 4 hours/day?
› Will my weekends look like this?
› There’s this one person constantly calling me at the most
awkward times because something isn’t working:
35TDD –Tatort-Driven Development
The Fear of DevOps
› But my mum’s phone not
working the way she wants
it to work has nothing to do
with DevOps!
Of course this isn’t really my mum!
And her calls are perfectly fine.
36TDD –Tatort-Driven Development
One final note...
➔ ➔
› Wear a helmet when riding your bike, i.e.:
› Expect failure
› The person to trust least is you
› Accept help
38TDD –Tatort-Driven Development
One final note...
Vielen Dank
Michael Bruns
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
michael.bruns@inovex.de
Twitter: @der_miggel Feedback:
http://sayat.me/mbruns

Weitere ähnliche Inhalte

Ähnlich wie TTD Tatort-driven Development

FOSDEM 2021 - Infrastructure as Code Drift & Driftctl
FOSDEM 2021 - Infrastructure as Code Drift & DriftctlFOSDEM 2021 - Infrastructure as Code Drift & Driftctl
FOSDEM 2021 - Infrastructure as Code Drift & DriftctlStephane Jourdan
 
Inextricably linked: reproducibility and productivity in data science and AI
Inextricably linked: reproducibility and productivity in data science and AIInextricably linked: reproducibility and productivity in data science and AI
Inextricably linked: reproducibility and productivity in data science and AILuke Marsden
 
Hashitalks 2021 Infrastructure Drift & Driftctl
Hashitalks 2021 Infrastructure Drift & Driftctl Hashitalks 2021 Infrastructure Drift & Driftctl
Hashitalks 2021 Infrastructure Drift & Driftctl Stephane Jourdan
 
An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)Ambassador Labs
 
Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...
Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...
Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...Deborah Schalm
 
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsPerformance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsMartin Gutenbrunner
 
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft ForeverSunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft ForeverCyrille Martraire
 
De-Risk Your Digital Transformation — And Reduce Time, Cost & Complexity
De-Risk Your Digital Transformation — And Reduce Time, Cost & ComplexityDe-Risk Your Digital Transformation — And Reduce Time, Cost & Complexity
De-Risk Your Digital Transformation — And Reduce Time, Cost & ComplexityInductive Automation
 
Social media analytics using Azure Technologies
Social media analytics using Azure TechnologiesSocial media analytics using Azure Technologies
Social media analytics using Azure TechnologiesKoray Kocabas
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...DevClub_lv
 
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Loadzen
 
Infrastructure - a journey from datacentres to cloud
Infrastructure - a journey from datacentres to cloudInfrastructure - a journey from datacentres to cloud
Infrastructure - a journey from datacentres to cloudEqual Experts
 
Pushing the hassle from production to developers. Easily
Pushing the hassle from production to developers. EasilyPushing the hassle from production to developers. Easily
Pushing the hassle from production to developers. EasilyMartin Gutenbrunner
 
Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaudstricaud
 
An illustrated guide to microservices (boston python meetup - Aug 2016)
An illustrated guide to microservices (boston python meetup - Aug 2016)An illustrated guide to microservices (boston python meetup - Aug 2016)
An illustrated guide to microservices (boston python meetup - Aug 2016)Ambassador Labs
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 
Github github-github
Github github-githubGithub github-github
Github github-githubfusion2011
 
Software Engineering in Startups
Software Engineering in StartupsSoftware Engineering in Startups
Software Engineering in StartupsDusan Omercevic
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM
 
GWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web SitesGWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web SitesMarco Parenzan
 

Ähnlich wie TTD Tatort-driven Development (20)

FOSDEM 2021 - Infrastructure as Code Drift & Driftctl
FOSDEM 2021 - Infrastructure as Code Drift & DriftctlFOSDEM 2021 - Infrastructure as Code Drift & Driftctl
FOSDEM 2021 - Infrastructure as Code Drift & Driftctl
 
Inextricably linked: reproducibility and productivity in data science and AI
Inextricably linked: reproducibility and productivity in data science and AIInextricably linked: reproducibility and productivity in data science and AI
Inextricably linked: reproducibility and productivity in data science and AI
 
Hashitalks 2021 Infrastructure Drift & Driftctl
Hashitalks 2021 Infrastructure Drift & Driftctl Hashitalks 2021 Infrastructure Drift & Driftctl
Hashitalks 2021 Infrastructure Drift & Driftctl
 
An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)
 
Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...
Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...
Monitoring First - Instrumenting Your Entire Stack for the Ultimate in Observ...
 
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsPerformance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environments
 
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft ForeverSunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
 
De-Risk Your Digital Transformation — And Reduce Time, Cost & Complexity
De-Risk Your Digital Transformation — And Reduce Time, Cost & ComplexityDe-Risk Your Digital Transformation — And Reduce Time, Cost & Complexity
De-Risk Your Digital Transformation — And Reduce Time, Cost & Complexity
 
Social media analytics using Azure Technologies
Social media analytics using Azure TechnologiesSocial media analytics using Azure Technologies
Social media analytics using Azure Technologies
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
 
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
Load testing, Lessons learnt and Loadzen - Martin Buhr at DevTank - 31st Janu...
 
Infrastructure - a journey from datacentres to cloud
Infrastructure - a journey from datacentres to cloudInfrastructure - a journey from datacentres to cloud
Infrastructure - a journey from datacentres to cloud
 
Pushing the hassle from production to developers. Easily
Pushing the hassle from production to developers. EasilyPushing the hassle from production to developers. Easily
Pushing the hassle from production to developers. Easily
 
Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaud
 
An illustrated guide to microservices (boston python meetup - Aug 2016)
An illustrated guide to microservices (boston python meetup - Aug 2016)An illustrated guide to microservices (boston python meetup - Aug 2016)
An illustrated guide to microservices (boston python meetup - Aug 2016)
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
Github github-github
Github github-githubGithub github-github
Github github-github
 
Software Engineering in Startups
Software Engineering in StartupsSoftware Engineering in Startups
Software Engineering in Startups
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
 
GWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web SitesGWAB2014 Italy Microsoft Azure Web Sites
GWAB2014 Italy Microsoft Azure Web Sites
 

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Kürzlich hochgeladen

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 

Kürzlich hochgeladen (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

TTD Tatort-driven Development

  • 1. TDD – Tatort-Driven Development Oder: Wie wir bei waipu.tv auch an einem Sonntagabend die Nerven behalten Michael Bruns, inovex GmbH
  • 2. › Q: How many people watched Tatort on 03 April 2017? › A: 14.56m › Q: What’s the market share of this? › A: 39.6% 2TDD –Tatort-Driven Development Let’s start with a quiz (Source: http://bit.ly/2uHEt7M)
  • 3. 3TDD –Tatort-Driven Development Please allow me to introduce myself: › Software developer, architect, therapist, ... › AWS fanboy › Built quite a bit of waipu.tv › http://sayat.me/mbruns Michael Bruns inovex GmbH
  • 4. 4TDD –Tatort-Driven Development What did we build? AuthRegistration PlayoutEPG Recording Users Streaming ...... Third Party ...
  • 5. 5TDD –Tatort-Driven Development How do people use it? 20:15 › Anybody who likes working at 20:15 every day? › Including and especially on weekends?
  • 6. › Don’t build a platform, use one - in our case: AWS › Use what’s already there: EC2, RDS, S3, Elasticsearch, Kinesis, Route53, Lambda ... › Add shared stuff (e.g. JVM, nginx) to base image (AMI) › Leave the rest to the services 6TDD –Tatort-Driven Development How did we build it?
  • 7. › Foster DevOps, i.e. tear down all political and technological barriers › Make infrastructure reproducible › Choose the right tool for the job: Terraform, GitLab CI, Prometheus, … 7TDD –Tatort-Driven Development How did we build it?
  • 8. 8TDD –Tatort-Driven Development Use the right tool for the job... ...and use it wisely!
  • 9. › 50+ EC2 instances, 25+ Auto-Scaling Groups, 25+ ELBs, 75+ Security Groups › ~30m objects / 3+ TB in S3 Buckets › ~60m documents stored in Elasticsearch › 50+ Git Repositories with GitLab CI 9TDD –Tatort-Driven Development What did we use?
  • 10. › ~15 Lambdas (growing a lot) › 8 PostgreSQL databases, 10 Redis Caches › 75+ DNS entries › Java, JS, Clojure, Kotlin (and some Ruby, Lua, Go, …) › ~15 people working in 5+ locations 10TDD –Tatort-Driven Development What did we use?
  • 11. › Infrastructure as Code › Independent of provider (AWS, Azure, OpenStack, …) › Multi-cloud strategy is possible › https://www.terraform.io/ 11TDD –Tatort-Driven Development Terraform - Basics
  • 14. › Version control › Reproducible › Manages dependencies (both implicit and explicit) › State can be “planned” (i.e. validated) › Remote state for collaboration 14TDD –Tatort-Driven Development Terraform - Advantages
  • 15. › Continuous Integration & Deployment › Pipelines › Stages, Environments, Variables, Tags, … › Easy integration of runners 15TDD –Tatort-Driven Development GitLab CI
  • 16. 16TDD –Tatort-Driven Development The whole pipeline Local Git Repo GitLab Repo GitLab CI Build (Gradle, Leiningen, …) GitLab CI Deployment (Terraform) Dev GitLab CI Deployment (Terraform) GitLab CI Deployment (Terraform) Preview Prod auto auto manually manually GitLab CI Tests auto GitLab CI Tests auto
  • 17. › Launch Configuration for services › Automatic scaling of services based on › Network/CPU usage › Number of requests › Schedules 17TDD –Tatort-Driven Development AWS - Auto Scaling Groups
  • 18. 18TDD –Tatort-Driven Development AWS - Auto Scaling Groups - Example
  • 19. › “Serverless” functions › Stateless › Java (or better: JVM), Node.js, Python, C#, Go › React to events (Kinesis, S3, Alexa, CloudWatch, …) › “Infinite” scaling 19TDD –Tatort-Driven Development AWS - Lambda
  • 20. › I’ve been at x-celerate a year ago ranting about Docker & Kubernetes › Definitely useful technologies, but we still don’t use them › If you’re application is trash without a container, it will be trash inside a container as well 20TDD –Tatort-Driven Development My Two Cents on Containers
  • 21. › These are all just tools › A fool with a tool is still a fool › Tools won’t fix your people issues 21TDD –Tatort-Driven Development The Bad News
  • 22. Don’t put your unmaintainable monolith into the cloud and expect things to get better! 22TDD –Tatort-Driven Development Most important advice
  • 23. › You will get automatic scaling › You will get continuous delivery › You will get a better distribution 23TDD –Tatort-Driven Development Unmaintainable monolith in the cloud (of errors) (of a big ball of mud) (of the stuff you already didn’t know how to debug before and which you now can’t even find because you aren’t writing the logs to a central store yet and once the machine is gone all logs are gone and now you sit in your office yelling and…)
  • 24. › Improve the interiors (package/module structure, DB access, number/distribution of requests, …) › Automate as much as possible › Start small, go micro only if necessary › But start! Today is the best day to improve your architecture. 24TDD –Tatort-Driven Development Where to Start?
  • 25. › Talk to each other › Take responsibility › Don’t point your finger at someone › Don’t fall into this trap: “Weeks of coding can save you hours of planning!” 25TDD –Tatort-Driven Development The Social Aspects
  • 26. › Firefighter for bugs or urgent issues › Take turns › Create an easy way to notify the person in charge (e.g. @firefighter) › Don’t be afraid to ask for help 26TDD –Tatort-Driven Development Share the operational load
  • 27. › Be open for constant change › However, don’t change everything just because you can › Sometimes legacy is not necessarily a bad thing › Some changes might have consequences you don’t expect 27TDD –Tatort-Driven Development Embrace Change
  • 28. › Create a central board to request improvements › Let the team make decisions which improvements are most important › Accept if the others think that your suggestion isn’t useful 28TDD –Tatort-Driven Development Track Change
  • 29. › Set the same goal(s) for everybody, but don’t set too many rules › Let teams find their best modus operandi › Be careful with stuff like coding guidelines, static code analysis, Git flow, … 29TDD –Tatort-Driven Development The Everyday Work
  • 30. › Repeat these sentences ten times every day: › We are not Netflix › We are not Google › We are not Facebook › We are not Spotify 30TDD –Tatort-Driven Development The Mantra
  • 31. › Don’t build a single point of failure › Monitor your stuff › Couple your services not as loosely as possible, but as loosely as feasible › Do you really need Kafka, Event Sourcing, CQRS, …? 31TDD –Tatort-Driven Development Coupling Services
  • 32. › Loosely coupled, small services › Isolated from each other › Supposed to fit into your head › But what if they don’t just because of the sheer number of services?! 32TDD –Tatort-Driven Development “Micro”services
  • 33. “One common anti-pattern when introducing DevOps to an organization is to assign someone the role of 'DevOps' or to call a team a 'DevOps team'. Doing so perpetuates the kinds of silos that DevOps aims to break down and prevents DevOps culture and practices from spreading and being adopted by the wider organization.” (Rouan Wilsenach, https://martinfowler.com/bliki/DevOpsCulture.html) 33TDD –Tatort-Driven Development DevOps - How not to do it
  • 34. 34TDD –Tatort-Driven Development The Fear of DevOps › Do I have to become an nginx ninja? › Am I doing deployments 4 hours/day? › Will my weekends look like this?
  • 35. › There’s this one person constantly calling me at the most awkward times because something isn’t working: 35TDD –Tatort-Driven Development The Fear of DevOps › But my mum’s phone not working the way she wants it to work has nothing to do with DevOps! Of course this isn’t really my mum! And her calls are perfectly fine.
  • 36. 36TDD –Tatort-Driven Development One final note... ➔ ➔
  • 37. › Wear a helmet when riding your bike, i.e.: › Expect failure › The person to trust least is you › Accept help 38TDD –Tatort-Driven Development One final note...
  • 38. Vielen Dank Michael Bruns inovex GmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe michael.bruns@inovex.de Twitter: @der_miggel Feedback: http://sayat.me/mbruns