SlideShare a Scribd company logo
1 of 33
Download to read offline
Microservices, geerdet
René Lengwinat & Michael Bruns
https://keybase.io/rlengwinat
2
René Lengwinat
inovex GmbH
https://keybase.io/michaelbruns
Michael Bruns
inovex GmbH
Microservices, geerdet - René Lengwinat & Michael Bruns
3Microservices, geerdet - René Lengwinat & Michael Bruns
Source: http://meme-erstellen.de/meme/you-are-not-wrong-you-are-just-an-asshole/
› Abstract problem split into small solutions
› Monolith would simply be too hard to handle
› Large portions of the application don’t need to know
about the rest of the application
4Microservices, geerdet - René Lengwinat & Michael Bruns
Why Microservices?
› Different people with different backgrounds and skills
› Load peaks on small parts of the application are expected
› Most important: We, i.e. the developers, wanted to do it!
5Microservices, geerdet - René Lengwinat & Michael Bruns
Why Microservices?
› Real-life conversation:
› Manager: “We need Microservices!”
› Dev: “Ok. Why?”
› Manager: “Err…”
› Dev: “Did you at least talk to Dev and Ops?”
› Manager: “Err…”
6Microservices, geerdet - René Lengwinat & Michael Bruns
When to be careful...
› Real-life conversation:
› Dev: “Can we operate the VMs with our team?”
› Manager: “No, the Ops team does that.”
› Dev: “Can we shift people from the Ops team to our team?”
› Manager: “No.”
› Dev: “Ok… Then I need to talk to the Ops team.”
› Manager: “You can’t, they’re too busy with their roadmap.”
7Microservices, geerdet - René Lengwinat & Michael Bruns
When to be careful...
› Real-life conversation:
› Dev: “We need two small VMs, one per data center.”
› Ops: “We don’t do it that way. You’ll get three per
data-center, 64 GB RAM and 6 CPUs each.”
› Dev: “What?! Well, alright... Is it possible to get them
by this afternoon?”
› Ops: “Nah, average delivery time is eight weeks.”
8Microservices, geerdet - René Lengwinat & Michael Bruns
When to be careful...
9Microservices, geerdet - René Lengwinat & Michael Bruns
10Microservices, geerdet - René Lengwinat & Michael Bruns
Who am I? - Session Management
Old school
SPOF
Old school in new env
SPOF + BOTTLENECK
New Way
Manageable Risk
nRequestsOnSessionService = nRequests * nServices
11Microservices, geerdet - René Lengwinat & Michael Bruns
Secret Sauce - The JWT - JSON Web Token
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "1234567890",
“iss”: “serviceA”,
“exp”: “1460667024”,
"name": "John Doe",
"rights": [“READ”, “WRITE”]
}
secret
base64(header) + “.” + base64(claims) + “.” +
base64(hmacSha256(secret, base64(header) + “.” + base64(claims)))
Signature
12Microservices, geerdet - René Lengwinat & Michael Bruns
Secret Sauce - The JWT - JSON Web Token
› Applications
› Sessions
› Account confirmation
› Password reset
› Short-lived tokens (app to web handshake)
13Microservices, geerdet - René Lengwinat & Michael Bruns
Source: https://i.imgflip.com/125yfz.jpg
14Microservices, geerdet - René Lengwinat & Michael Bruns
What about the UI?
Header
Content I
Content II Content III
Monolithic
Service
15Microservices, geerdet - René Lengwinat & Michael Bruns
What about the UI?
Header
Content I
Content II Content III
Service II
Service III Service I
Header
Content II
Content I Content II
16Microservices, geerdet - René Lengwinat & Michael Bruns
What about the UI?
Header
Content I
Content II Content III
Front end
Service
Service II
Service III
Service I
17Microservices, geerdet - René Lengwinat & Michael Bruns
What about the UI?
Header
Content I
Content I Content II
Service II
Service III
Service I
Header
Content II
Content I Content III
Front end
Service / CDN
› S3 Bucket as CDN
› Mustache templates
› Lightweight, no SPAs
› Planned: Web Components
18Microservices, geerdet - René Lengwinat & Michael Bruns
What about the UI?
Header
Content I
Content I Content II
Service II
Service III
Service I
Header
Content II
Content I
Content
III
Front end
Service / CDN
19Microservices, geerdet - René Lengwinat & Michael Bruns
20Microservices, geerdet - René Lengwinat & Michael Bruns
My code, your code - Shared vs Template
› What’s wrong with shared code?
› Reuse
› Coupling
› Opinionated
IT DEPENDS -> organisational structure, maturity
21Microservices, geerdet - René Lengwinat & Michael Bruns
My code, your code - Shared vs Template
› Alternative -> Template Project
› Yeoman, leiningen, git repo
› Fast setup
› Doesn’t fit? Change / Fork
› Standards embedded
› Updates
22Microservices, geerdet - René Lengwinat & Michael Bruns
Source: https://imgflip.com/i/12ll0d
› Don’t build a platform, use one - in our case: AWS
› Use what’s already there: EC2, RDS, S3, Elasticsearch,
Kinesis, Route53, ...
› Add shared stuff (e.g. JVM, nginx) to base image
› Leave the rest to the services
23Microservices, geerdet - René Lengwinat & Michael Bruns
IaaS - Yet Another Platform?
› Foster DevOps, i.e. tear down all political and
technological barriers
› Choose the right tool for the right job:
Terraform, Go CD, Prometheus, flood IO, …
› Make your infrastructure reproducible
24Microservices, geerdet - René Lengwinat & Michael Bruns
IaaS - Yet Another Platform?
› Don’t build a gateway service if it’s not necessary
› Start small, expect growth
› Geo-redundancy
› Monitor your stuff, send alarms
25Microservices, geerdet - René Lengwinat & Michael Bruns
IaaS - Yet Another Platform?
› Short insight:
› 40+ EC2 instances, 20+ Auto-Scaling Groups,
50+ Security Groups, 500+ GB in S3 Buckets
› ~20m documents stored in ~3k shards in Elasticsearch
› 40+ Go CD pipelines, >100 Git Repositories
› ~15 people working in 5+ locations
26Microservices, geerdet - René Lengwinat & Michael Bruns
IaaS - Yet Another Platform?
27Microservices, geerdet - René Lengwinat & Michael Bruns
› Local debt vs global debt
› Don’t be afraid of tracking publicly
› Track across service boundaries
› Continuously review tech debt
› Continuously reduce tech debt
28Microservices, geerdet - René Lengwinat & Michael Bruns
Many services = Technical debt?
› Continuous Tech Review
› Weekly review
› Track and attack tech debt
› Discuss possible improvements
› Discuss risks
› Time boxed!
29Microservices, geerdet - René Lengwinat & Michael Bruns
Many services = Technical debt?
30Microservices, geerdet - René Lengwinat & Michael Bruns
Many services = Technical debt?
Service Commons Backlog
31Microservices, geerdet - René Lengwinat & Michael Bruns
32Microservices, geerdet - René Lengwinat & Michael Bruns
Source: https://imgflip.com/i/12lr94
Vielen Dank
René Lengwinat &
Michael Bruns
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
rene.lengwinat@inovex.de
michael.bruns@inovex.de

More Related Content

Viewers also liked

Session 3 - CloudStack Test Automation and CI
Session 3 - CloudStack Test Automation and CISession 3 - CloudStack Test Automation and CI
Session 3 - CloudStack Test Automation and CItcloudcomputing-tw
 
Continuous Integration for Fun and Profit
Continuous Integration for Fun and ProfitContinuous Integration for Fun and Profit
Continuous Integration for Fun and Profitinovex GmbH
 
Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)
Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)
Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)ACA IT-Solutions
 
Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...
Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...
Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...inovex GmbH
 
SysDig Metriken zentralisieren
SysDig Metriken zentralisierenSysDig Metriken zentralisieren
SysDig Metriken zentralisiereninovex GmbH
 
Test and Protect Your API
Test and Protect Your APITest and Protect Your API
Test and Protect Your APISmartBear
 
Intelligent infrastructure with SaltStack
Intelligent infrastructure with SaltStackIntelligent infrastructure with SaltStack
Intelligent infrastructure with SaltStackLove Nyberg
 
Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStackinovex GmbH
 
Implementing Continous Deployment
Implementing Continous DeploymentImplementing Continous Deployment
Implementing Continous Deploymentarosien
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoringinovex GmbH
 
Datenprodukte für Deutschlands größten Fahrzeugmarkt
Datenprodukte für Deutschlands größten FahrzeugmarktDatenprodukte für Deutschlands größten Fahrzeugmarkt
Datenprodukte für Deutschlands größten Fahrzeugmarktinovex GmbH
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)MinGeun Park
 

Viewers also liked (14)

Session 3 - CloudStack Test Automation and CI
Session 3 - CloudStack Test Automation and CISession 3 - CloudStack Test Automation and CI
Session 3 - CloudStack Test Automation and CI
 
Continuous Integration for Fun and Profit
Continuous Integration for Fun and ProfitContinuous Integration for Fun and Profit
Continuous Integration for Fun and Profit
 
Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)
Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)
Axway Introduction & Digital Business (by Jo Van Audenhove & Rogier van Boxtel)
 
Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...
Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...
Cloud Wars – what‘s the smartest data platform? Vergleich Microsoft Azure, Am...
 
SysDig Metriken zentralisieren
SysDig Metriken zentralisierenSysDig Metriken zentralisieren
SysDig Metriken zentralisieren
 
Test and Protect Your API
Test and Protect Your APITest and Protect Your API
Test and Protect Your API
 
Intelligent infrastructure with SaltStack
Intelligent infrastructure with SaltStackIntelligent infrastructure with SaltStack
Intelligent infrastructure with SaltStack
 
Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStack
 
Implementing Continous Deployment
Implementing Continous DeploymentImplementing Continous Deployment
Implementing Continous Deployment
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoring
 
Datenprodukte für Deutschlands größten Fahrzeugmarkt
Datenprodukte für Deutschlands größten FahrzeugmarktDatenprodukte für Deutschlands größten Fahrzeugmarkt
Datenprodukte für Deutschlands größten Fahrzeugmarkt
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 

Similar to Microservices, geerdet

Microservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learningsMicroservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learningsMatthew Reynolds
 
Meetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservicesMeetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservicesinovia
 
Chris Homer - Moving the entire stack to k8s within a year – lessons learned
Chris Homer - Moving the entire stack to k8s within a year – lessons learnedChris Homer - Moving the entire stack to k8s within a year – lessons learned
Chris Homer - Moving the entire stack to k8s within a year – lessons learnedDariia Seimova
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Dave Nielsen
 
RightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to CloudRightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to CloudRightScale
 
2802 cics @ interconnect v2.0 CICS Opening
2802   cics @ interconnect v2.0 CICS Opening2802   cics @ interconnect v2.0 CICS Opening
2802 cics @ interconnect v2.0 CICS Openingnick_garrod
 
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, FasterSaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, FasterThomas Jackson
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
 
You got a couple Microservices, now what? - Adding SRE to DevOps
You got a couple Microservices, now what?  - Adding SRE to DevOpsYou got a couple Microservices, now what?  - Adding SRE to DevOps
You got a couple Microservices, now what? - Adding SRE to DevOpsGonzalo Maldonado
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereGet the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereVMware Tanzu
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureKatherine Golovinova
 
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential_e
 
Enabling z Agility with DevOps and Enterprise Transformation
Enabling z Agility with DevOps and Enterprise TransformationEnabling z Agility with DevOps and Enterprise Transformation
Enabling z Agility with DevOps and Enterprise TransformationDevOps for Enterprise Systems
 
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in productionNETFest
 
Engage ug 2015 saxion
Engage ug 2015 saxionEngage ug 2015 saxion
Engage ug 2015 saxionMartin Meijer
 
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As CodeYosef Tavin
 
Bimodal IT and EDW Modernization
Bimodal IT and EDW ModernizationBimodal IT and EDW Modernization
Bimodal IT and EDW ModernizationRobert Gleave
 

Similar to Microservices, geerdet (20)

Microevent
MicroeventMicroevent
Microevent
 
Microservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learningsMicroservices at ibotta pitfalls and learnings
Microservices at ibotta pitfalls and learnings
 
Meetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservicesMeetic back end redesign - Meetup microservices
Meetic back end redesign - Meetup microservices
 
Chris Homer - Moving the entire stack to k8s within a year – lessons learned
Chris Homer - Moving the entire stack to k8s within a year – lessons learnedChris Homer - Moving the entire stack to k8s within a year – lessons learned
Chris Homer - Moving the entire stack to k8s within a year – lessons learned
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!
 
RightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to CloudRightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to Cloud
 
2802 cics @ interconnect v2.0 CICS Opening
2802   cics @ interconnect v2.0 CICS Opening2802   cics @ interconnect v2.0 CICS Opening
2802 cics @ interconnect v2.0 CICS Opening
 
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, FasterSaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
You got a couple Microservices, now what? - Adding SRE to DevOps
You got a couple Microservices, now what?  - Adding SRE to DevOpsYou got a couple Microservices, now what?  - Adding SRE to DevOps
You got a couple Microservices, now what? - Adding SRE to DevOps
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereGet the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architecture
 
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
 
Enabling z Agility with DevOps and Enterprise Transformation
Enabling z Agility with DevOps and Enterprise TransformationEnabling z Agility with DevOps and Enterprise Transformation
Enabling z Agility with DevOps and Enterprise Transformation
 
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
 
System Scalability
System ScalabilitySystem Scalability
System Scalability
 
Engage ug 2015 saxion
Engage ug 2015 saxionEngage ug 2015 saxion
Engage ug 2015 saxion
 
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
 
Bimodal IT and EDW Modernization
Bimodal IT and EDW ModernizationBimodal IT and EDW Modernization
Bimodal IT and EDW Modernization
 
Extreme DevOps in Fintech
Extreme DevOps in FintechExtreme DevOps in Fintech
Extreme DevOps in Fintech
 

More from 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
 

More from 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
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
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
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
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...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

Microservices, geerdet

  • 2. https://keybase.io/rlengwinat 2 René Lengwinat inovex GmbH https://keybase.io/michaelbruns Michael Bruns inovex GmbH Microservices, geerdet - René Lengwinat & Michael Bruns
  • 3. 3Microservices, geerdet - René Lengwinat & Michael Bruns Source: http://meme-erstellen.de/meme/you-are-not-wrong-you-are-just-an-asshole/
  • 4. › Abstract problem split into small solutions › Monolith would simply be too hard to handle › Large portions of the application don’t need to know about the rest of the application 4Microservices, geerdet - René Lengwinat & Michael Bruns Why Microservices?
  • 5. › Different people with different backgrounds and skills › Load peaks on small parts of the application are expected › Most important: We, i.e. the developers, wanted to do it! 5Microservices, geerdet - René Lengwinat & Michael Bruns Why Microservices?
  • 6. › Real-life conversation: › Manager: “We need Microservices!” › Dev: “Ok. Why?” › Manager: “Err…” › Dev: “Did you at least talk to Dev and Ops?” › Manager: “Err…” 6Microservices, geerdet - René Lengwinat & Michael Bruns When to be careful...
  • 7. › Real-life conversation: › Dev: “Can we operate the VMs with our team?” › Manager: “No, the Ops team does that.” › Dev: “Can we shift people from the Ops team to our team?” › Manager: “No.” › Dev: “Ok… Then I need to talk to the Ops team.” › Manager: “You can’t, they’re too busy with their roadmap.” 7Microservices, geerdet - René Lengwinat & Michael Bruns When to be careful...
  • 8. › Real-life conversation: › Dev: “We need two small VMs, one per data center.” › Ops: “We don’t do it that way. You’ll get three per data-center, 64 GB RAM and 6 CPUs each.” › Dev: “What?! Well, alright... Is it possible to get them by this afternoon?” › Ops: “Nah, average delivery time is eight weeks.” 8Microservices, geerdet - René Lengwinat & Michael Bruns When to be careful...
  • 9. 9Microservices, geerdet - René Lengwinat & Michael Bruns
  • 10. 10Microservices, geerdet - René Lengwinat & Michael Bruns Who am I? - Session Management Old school SPOF Old school in new env SPOF + BOTTLENECK New Way Manageable Risk nRequestsOnSessionService = nRequests * nServices
  • 11. 11Microservices, geerdet - René Lengwinat & Michael Bruns Secret Sauce - The JWT - JSON Web Token { "alg": "HS256", "typ": "JWT" } { "sub": "1234567890", “iss”: “serviceA”, “exp”: “1460667024”, "name": "John Doe", "rights": [“READ”, “WRITE”] } secret base64(header) + “.” + base64(claims) + “.” + base64(hmacSha256(secret, base64(header) + “.” + base64(claims))) Signature
  • 12. 12Microservices, geerdet - René Lengwinat & Michael Bruns Secret Sauce - The JWT - JSON Web Token › Applications › Sessions › Account confirmation › Password reset › Short-lived tokens (app to web handshake)
  • 13. 13Microservices, geerdet - René Lengwinat & Michael Bruns Source: https://i.imgflip.com/125yfz.jpg
  • 14. 14Microservices, geerdet - René Lengwinat & Michael Bruns What about the UI? Header Content I Content II Content III Monolithic Service
  • 15. 15Microservices, geerdet - René Lengwinat & Michael Bruns What about the UI? Header Content I Content II Content III Service II Service III Service I Header Content II Content I Content II
  • 16. 16Microservices, geerdet - René Lengwinat & Michael Bruns What about the UI? Header Content I Content II Content III Front end Service Service II Service III Service I
  • 17. 17Microservices, geerdet - René Lengwinat & Michael Bruns What about the UI? Header Content I Content I Content II Service II Service III Service I Header Content II Content I Content III Front end Service / CDN
  • 18. › S3 Bucket as CDN › Mustache templates › Lightweight, no SPAs › Planned: Web Components 18Microservices, geerdet - René Lengwinat & Michael Bruns What about the UI? Header Content I Content I Content II Service II Service III Service I Header Content II Content I Content III Front end Service / CDN
  • 19. 19Microservices, geerdet - René Lengwinat & Michael Bruns
  • 20. 20Microservices, geerdet - René Lengwinat & Michael Bruns My code, your code - Shared vs Template › What’s wrong with shared code? › Reuse › Coupling › Opinionated IT DEPENDS -> organisational structure, maturity
  • 21. 21Microservices, geerdet - René Lengwinat & Michael Bruns My code, your code - Shared vs Template › Alternative -> Template Project › Yeoman, leiningen, git repo › Fast setup › Doesn’t fit? Change / Fork › Standards embedded › Updates
  • 22. 22Microservices, geerdet - René Lengwinat & Michael Bruns Source: https://imgflip.com/i/12ll0d
  • 23. › Don’t build a platform, use one - in our case: AWS › Use what’s already there: EC2, RDS, S3, Elasticsearch, Kinesis, Route53, ... › Add shared stuff (e.g. JVM, nginx) to base image › Leave the rest to the services 23Microservices, geerdet - René Lengwinat & Michael Bruns IaaS - Yet Another Platform?
  • 24. › Foster DevOps, i.e. tear down all political and technological barriers › Choose the right tool for the right job: Terraform, Go CD, Prometheus, flood IO, … › Make your infrastructure reproducible 24Microservices, geerdet - René Lengwinat & Michael Bruns IaaS - Yet Another Platform?
  • 25. › Don’t build a gateway service if it’s not necessary › Start small, expect growth › Geo-redundancy › Monitor your stuff, send alarms 25Microservices, geerdet - René Lengwinat & Michael Bruns IaaS - Yet Another Platform?
  • 26. › Short insight: › 40+ EC2 instances, 20+ Auto-Scaling Groups, 50+ Security Groups, 500+ GB in S3 Buckets › ~20m documents stored in ~3k shards in Elasticsearch › 40+ Go CD pipelines, >100 Git Repositories › ~15 people working in 5+ locations 26Microservices, geerdet - René Lengwinat & Michael Bruns IaaS - Yet Another Platform?
  • 27. 27Microservices, geerdet - René Lengwinat & Michael Bruns
  • 28. › Local debt vs global debt › Don’t be afraid of tracking publicly › Track across service boundaries › Continuously review tech debt › Continuously reduce tech debt 28Microservices, geerdet - René Lengwinat & Michael Bruns Many services = Technical debt?
  • 29. › Continuous Tech Review › Weekly review › Track and attack tech debt › Discuss possible improvements › Discuss risks › Time boxed! 29Microservices, geerdet - René Lengwinat & Michael Bruns Many services = Technical debt?
  • 30. 30Microservices, geerdet - René Lengwinat & Michael Bruns Many services = Technical debt? Service Commons Backlog
  • 31. 31Microservices, geerdet - René Lengwinat & Michael Bruns
  • 32. 32Microservices, geerdet - René Lengwinat & Michael Bruns Source: https://imgflip.com/i/12lr94
  • 33. Vielen Dank René Lengwinat & Michael Bruns inovex GmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe rene.lengwinat@inovex.de michael.bruns@inovex.de