SlideShare a Scribd company logo
Not my problem!
Delegating responsibility to infrastructure
Yshay Yaacobi
@yshayy
As a developer, I want to focus
on building features that
deliver business value.
Infrastructure
MicroservicesMonolith
Few monoliths
Monolith 1 Monolith 3
Monolith 2
Few monoliths
Application code
Application codeApplication code
Infra code Infra code
Infra code
Monoliths Lots of Microservices
Monoliths Lots of Microservices
Infrastructure code Application code
Service structure
Infra-code and business logic
code live together with every
microservice SERVICE
App Logic
Logging
Monitoring
Authentication
Secrets
Configuration
….
Service structure
Can we write only our business code
and let our hosting environment take
care of the rest?
Hosting environment/
Cloud - Infra logic
Service App
logic
About me
● Tech lead @ Soluto
● Actually more lazy than what I’ve written
● Really dig open source
● Passionate about cloud architecture, UX/DX,
functional programming, Docker and code quality
● Currently playing “Detroit: Become Human”
Yshay Yaacobi
www.linkedin.com/in/yshayy
www.github.com/yshayy
@yshayy
About Soluto
● Based in Tel Aviv, acquired by Asurion at 2013
● We create the next generation of tech support
● Our service is used by ~150M customers
worldwide
● We love open-source
About Soluto
Shifting to Microservices
● Less than 5 services -> 100+ services
● Cultural change, new aspects of ownership
● CI/CD - Better tooling and automation
Creating a Microservice
● Concerns:
○ Visibility/Observability
○ Security
○ Availability
● Deploy on Azure PaaS (Cloud service)
How does a service look like?
Demo
Building a service
(very naive)
What just
happened here?
We wanted a small micro service and
got a bunch of code and dependencies
Soluto - first iteration of microservices
● Shared template - dependencies and code blocks
● Used by teams as a boilerplate
Improved over time
● Smarter frameworks
● DI, reflection, metaprogramming, middlewares
● Packages for stabilization (Soluto.Logger, Soluto.Monitoring,
etc.)
That worked well
until...
Problems
● Upgrades are hard!
● Code templates are not really upgradable
● Dependencies can break
● Redeployment can be challenging
● Global infrastructure change -> almost impossible
And of course...
Language lock
Use case - from .Net to node
Use case - from .net to node
● Nuget packages in basic web-api template
○ 80+ packages
○ 10+ developed by soluto
● Hard to decide when and how
● Slows down teams
● Rewrites
○ Soluto.Logging -> @npm*/soluto-logger
○ Soluto.Monitoring -> @npm*/soluto-monitor
Dependencies Matrix from hellDependencies Matrix from hell
Authentication
Monitoring
Configuration
Resiliency
Authorization
Logging
HTTP2
Secrets
Validation
SSL
Service/ Runtime
Lang. 1 Lang. 2 Lang. 3 Lang. 4 Lang. 5
Additonal 3rd party package
Fully integrated
No mature/robust solution
As a developer, I want to focus on building
features that deliver business value
Which of these concerns
can be solved at
environment level?
Soluto - Second iteration of microservices
Kubernetes - 1000 foot view
● Cluster manager
● Orchestrate container workloads
● Lots of capabilities - container networking, service discovery,
load-balancing, auto-scaling, secrets, volumes and much more…
● Steep learning curve
● Widely adopted
Pod in a nutshell
● Basic scheduling unit of Kubernetes
● Pod per service
● Group of containers
● Containers in a pod share:
○ Network interface
○ Volumes
○ Process namespace
Pod 1 Pod 2
Kubernetes pods
Collections of containers that are co-scheduled
Node
A “sidecar” container
● Additional container adjacent
● Provide functionality to support our main
app
● Co-scheduled together on the same pod
Main
App
Sidecar
Pod
Main
App
Sidecar
Replica
Main
App
Sidecar
Replica
Sidecars can help us solve infrastructure
concerns externally to our app
Let’s try
again...
What did we just see?
● Lots of code elimination
● A leaner, more testable service
● Declarative approach - define what you want,
the environment will take care of the rest
What did we just see?
● External processes
● Agents and Proxies
● Supporting containers are
co-scheduled along the
“main” container
Airbag
(.Net)
How far can we go?
● Gateways - routing, caching, validation, rate limiting, policies
● Configuration - secrets, cloud resource binding
● Tools - remote debugging/profiling
● Supporting services - analytics, feature flags, etc…
● Probably more...
Different implementations
● Reverse proxies/application gateways
● Log collectors
● Metrics exporters
● Many open-source and enterprise solutions - https://landscape.cncf.io/
What about
Serverless?
Serverless
● Allows you to focus only on functions and nothing else…
● Sort-of language agnostic
● Event-driven model with separation between triggers/sources/sinks managed by
declarative configuration
Serverless - drawbacks
● Works mostly for stateless workload
● Popular solutions comes with serious vendor lock-in across all stack
● Many efforts to make it better/stronger/faster and standard
● Might be the best solution in the future
How did it affect us?
● Still on-going process
● Cleaner, leaner services
● Testing got easier
● Faster adoptions of new languages and tools
Things we haven’t figured out yet...
● Deployment/Configuration validation
● Isn’t it too magical?
As a developer, I want to focus
on building features that
deliver business value.
What can the infrastructure
do for you?
Thank you!
Yshay Yaacobi
www.linkedin.com/in/yshayy
www.github.com/yshayy
@yshayy
Questions?
Yshay Yaacobi
www.linkedin.com/in/yshayy
www.github.com/yshayy
@yshayy
Additional resources
● Tools:
○ AirBag - www.github.com/soluto/airbag
○ DQD - www.github.com/soluto/dqd
○ FluentD - https://www.fluentd.org/
○ Prometheus - https://prometheus.io
○ Istio - https://istio.io/
○ Minikube - github.com/kubernetes/minikube
○ Skaffold - github.com/GoogleContainerTools/skaffold
○ Oidc-server-mock - github.com/Soluto/oidc-server-mock
Additional resources
● CNCF landscape - https://landscape.cncf.io/
● Design patterns for container-based distributed systems -
https://static.googleusercontent.com/media/research.google.com/en//pubs/archiv
e/45406.pdf
● Introduction to modern network load balancing and proxying -
https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and-
proxying-a57f6ff80236

More Related Content

What's hot

Agile Development with Smalltalk - Short
Agile Development with Smalltalk - ShortAgile Development with Smalltalk - Short
Agile Development with Smalltalk - ShortTomáš Kukol
 
Revamping Mailjet API documentation @ ParisAPI meetup
Revamping Mailjet API documentation @ ParisAPI meetupRevamping Mailjet API documentation @ ParisAPI meetup
Revamping Mailjet API documentation @ ParisAPI meetup
Mailjet
 
Duda I/O - Lightning Talk Google Summer of Code Summit 2014
Duda I/O - Lightning Talk Google Summer of Code Summit 2014Duda I/O - Lightning Talk Google Summer of Code Summit 2014
Duda I/O - Lightning Talk Google Summer of Code Summit 2014
Eduardo Silva Pereira
 
GDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibsGDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibs
nhachicha
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
EPAM
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMiguel Pastor
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - LongAgile Development with Smalltalk - Long
Agile Development with Smalltalk - LongTomáš Kukol
 
Everything as code
Everything as codeEverything as code
Everything as code
Hepsiburada
 
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
WebRTC Standards & Implementation Q&A - Legacy API Support ChangesWebRTC Standards & Implementation Q&A - Legacy API Support Changes
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
Amir Zmora
 
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownDebugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Aspen Mesh
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
mfrancis
 
Seminar on Web Application
Seminar on Web ApplicationSeminar on Web Application
Seminar on Web ApplicationVinodh Ram
 
Grilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentGrilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia Content
Juan A. Suárez Romero
 
Security of OpenDaylight platform
Security of OpenDaylight platformSecurity of OpenDaylight platform
Security of OpenDaylight platform
OpenDaylight
 
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ IntegrationsMumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Akshata Sawant
 
Further Capabilities of Portlets & Portals
Further Capabilities of Portlets & PortalsFurther Capabilities of Portlets & Portals
Further Capabilities of Portlets & Portals
Miro Cupak
 
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Thoughtworks
 
Discovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and ProfitDiscovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and Profit
Abhisek Datta
 
Test driven development with sonarQube
Test driven development with sonarQubeTest driven development with sonarQube
Test driven development with sonarQube
Nanthakumar Suvethan
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
nklmish
 

What's hot (20)

Agile Development with Smalltalk - Short
Agile Development with Smalltalk - ShortAgile Development with Smalltalk - Short
Agile Development with Smalltalk - Short
 
Revamping Mailjet API documentation @ ParisAPI meetup
Revamping Mailjet API documentation @ ParisAPI meetupRevamping Mailjet API documentation @ ParisAPI meetup
Revamping Mailjet API documentation @ ParisAPI meetup
 
Duda I/O - Lightning Talk Google Summer of Code Summit 2014
Duda I/O - Lightning Talk Google Summer of Code Summit 2014Duda I/O - Lightning Talk Google Summer of Code Summit 2014
Duda I/O - Lightning Talk Google Summer of Code Summit 2014
 
GDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibsGDG Algiers DevFest 2013 Cool AndroidLibs
GDG Algiers DevFest 2013 Cool AndroidLibs
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
 
Agile Development with Smalltalk - Long
Agile Development with Smalltalk - LongAgile Development with Smalltalk - Long
Agile Development with Smalltalk - Long
 
Everything as code
Everything as codeEverything as code
Everything as code
 
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
WebRTC Standards & Implementation Q&A - Legacy API Support ChangesWebRTC Standards & Implementation Q&A - Legacy API Support Changes
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
 
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes DownDebugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
 
Seminar on Web Application
Seminar on Web ApplicationSeminar on Web Application
Seminar on Web Application
 
Grilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia ContentGrilo: Easy Access to Online Multimedia Content
Grilo: Easy Access to Online Multimedia Content
 
Security of OpenDaylight platform
Security of OpenDaylight platformSecurity of OpenDaylight platform
Security of OpenDaylight platform
 
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ IntegrationsMumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
Mumbai MuleSoft Meetup #19 - Anypoint monitoring and MQ Integrations
 
Further Capabilities of Portlets & Portals
Further Capabilities of Portlets & PortalsFurther Capabilities of Portlets & Portals
Further Capabilities of Portlets & Portals
 
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
 
Discovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and ProfitDiscovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and Profit
 
Test driven development with sonarQube
Test driven development with sonarQubeTest driven development with sonarQube
Test driven development with sonarQube
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 

Similar to Not my problem - Delegating responsibility to infrastructure

Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
aspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
All Things Open
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
The working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор ТурскийThe working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор Турский
Sigma Software
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
Yshay Yaacobi
 
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubbleCamunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Bernd Ruecker
 
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 MeetupPreparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
YashrajNayak4
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Gonzalo Marcos Ansoain
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
Haggai Philip Zagury
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
Fwdays
 
Migrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for EnterprisesMigrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for Enterprises
VMware Tanzu
 
Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...
drnugent
 
The FN Project by Maximilian Jerg
The FN Project by Maximilian JergThe FN Project by Maximilian Jerg
The FN Project by Maximilian Jerg
Harald Schmaldienst
 
ngStockholm #8 at NetEnt - Micro Frontend Architecture
ngStockholm #8 at NetEnt - Micro Frontend ArchitecturengStockholm #8 at NetEnt - Micro Frontend Architecture
ngStockholm #8 at NetEnt - Micro Frontend Architecture
Ishaan Puniani
 
µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015
Izzet Mustafaiev
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
Mukesh Singh
 

Similar to Not my problem - Delegating responsibility to infrastructure (20)

Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
The working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор ТурскийThe working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор Турский
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubbleCamunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
 
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 MeetupPreparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Migrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for EnterprisesMigrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for Enterprises
 
Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...
 
The FN Project by Maximilian Jerg
The FN Project by Maximilian JergThe FN Project by Maximilian Jerg
The FN Project by Maximilian Jerg
 
ngStockholm #8 at NetEnt - Micro Frontend Architecture
ngStockholm #8 at NetEnt - Micro Frontend ArchitecturengStockholm #8 at NetEnt - Micro Frontend Architecture
ngStockholm #8 at NetEnt - Micro Frontend Architecture
 
µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015µServices Architecture @ EPAM WOW 2015
µServices Architecture @ EPAM WOW 2015
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
DDD with Behat
DDD with BehatDDD with Behat
DDD with Behat
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

Not my problem - Delegating responsibility to infrastructure

  • 1. Not my problem! Delegating responsibility to infrastructure Yshay Yaacobi @yshayy
  • 2. As a developer, I want to focus on building features that deliver business value.
  • 5. Few monoliths Monolith 1 Monolith 3 Monolith 2
  • 6. Few monoliths Application code Application codeApplication code Infra code Infra code Infra code
  • 7. Monoliths Lots of Microservices
  • 8. Monoliths Lots of Microservices
  • 10. Service structure Infra-code and business logic code live together with every microservice SERVICE App Logic Logging Monitoring Authentication Secrets Configuration ….
  • 11. Service structure Can we write only our business code and let our hosting environment take care of the rest? Hosting environment/ Cloud - Infra logic Service App logic
  • 12. About me ● Tech lead @ Soluto ● Actually more lazy than what I’ve written ● Really dig open source ● Passionate about cloud architecture, UX/DX, functional programming, Docker and code quality ● Currently playing “Detroit: Become Human” Yshay Yaacobi www.linkedin.com/in/yshayy www.github.com/yshayy @yshayy
  • 13. About Soluto ● Based in Tel Aviv, acquired by Asurion at 2013 ● We create the next generation of tech support ● Our service is used by ~150M customers worldwide ● We love open-source About Soluto
  • 14.
  • 15. Shifting to Microservices ● Less than 5 services -> 100+ services ● Cultural change, new aspects of ownership ● CI/CD - Better tooling and automation
  • 16. Creating a Microservice ● Concerns: ○ Visibility/Observability ○ Security ○ Availability ● Deploy on Azure PaaS (Cloud service)
  • 17. How does a service look like?
  • 19. What just happened here? We wanted a small micro service and got a bunch of code and dependencies
  • 20. Soluto - first iteration of microservices ● Shared template - dependencies and code blocks ● Used by teams as a boilerplate
  • 21. Improved over time ● Smarter frameworks ● DI, reflection, metaprogramming, middlewares ● Packages for stabilization (Soluto.Logger, Soluto.Monitoring, etc.)
  • 23. Problems ● Upgrades are hard! ● Code templates are not really upgradable ● Dependencies can break ● Redeployment can be challenging ● Global infrastructure change -> almost impossible And of course...
  • 25. Use case - from .Net to node
  • 26. Use case - from .net to node ● Nuget packages in basic web-api template ○ 80+ packages ○ 10+ developed by soluto ● Hard to decide when and how ● Slows down teams ● Rewrites ○ Soluto.Logging -> @npm*/soluto-logger ○ Soluto.Monitoring -> @npm*/soluto-monitor
  • 27. Dependencies Matrix from hellDependencies Matrix from hell Authentication Monitoring Configuration Resiliency Authorization Logging HTTP2 Secrets Validation SSL Service/ Runtime Lang. 1 Lang. 2 Lang. 3 Lang. 4 Lang. 5 Additonal 3rd party package Fully integrated No mature/robust solution
  • 28. As a developer, I want to focus on building features that deliver business value
  • 29. Which of these concerns can be solved at environment level?
  • 30. Soluto - Second iteration of microservices
  • 31. Kubernetes - 1000 foot view ● Cluster manager ● Orchestrate container workloads ● Lots of capabilities - container networking, service discovery, load-balancing, auto-scaling, secrets, volumes and much more… ● Steep learning curve ● Widely adopted
  • 32. Pod in a nutshell ● Basic scheduling unit of Kubernetes ● Pod per service ● Group of containers ● Containers in a pod share: ○ Network interface ○ Volumes ○ Process namespace Pod 1 Pod 2 Kubernetes pods Collections of containers that are co-scheduled Node
  • 33. A “sidecar” container ● Additional container adjacent ● Provide functionality to support our main app ● Co-scheduled together on the same pod Main App Sidecar Pod Main App Sidecar Replica Main App Sidecar Replica
  • 34. Sidecars can help us solve infrastructure concerns externally to our app
  • 36. What did we just see? ● Lots of code elimination ● A leaner, more testable service ● Declarative approach - define what you want, the environment will take care of the rest
  • 37. What did we just see? ● External processes ● Agents and Proxies ● Supporting containers are co-scheduled along the “main” container Airbag (.Net)
  • 38. How far can we go? ● Gateways - routing, caching, validation, rate limiting, policies ● Configuration - secrets, cloud resource binding ● Tools - remote debugging/profiling ● Supporting services - analytics, feature flags, etc… ● Probably more...
  • 39. Different implementations ● Reverse proxies/application gateways ● Log collectors ● Metrics exporters ● Many open-source and enterprise solutions - https://landscape.cncf.io/
  • 41. Serverless ● Allows you to focus only on functions and nothing else… ● Sort-of language agnostic ● Event-driven model with separation between triggers/sources/sinks managed by declarative configuration
  • 42. Serverless - drawbacks ● Works mostly for stateless workload ● Popular solutions comes with serious vendor lock-in across all stack ● Many efforts to make it better/stronger/faster and standard ● Might be the best solution in the future
  • 43. How did it affect us? ● Still on-going process ● Cleaner, leaner services ● Testing got easier ● Faster adoptions of new languages and tools
  • 44. Things we haven’t figured out yet... ● Deployment/Configuration validation ● Isn’t it too magical?
  • 45. As a developer, I want to focus on building features that deliver business value.
  • 46. What can the infrastructure do for you?
  • 49. Additional resources ● Tools: ○ AirBag - www.github.com/soluto/airbag ○ DQD - www.github.com/soluto/dqd ○ FluentD - https://www.fluentd.org/ ○ Prometheus - https://prometheus.io ○ Istio - https://istio.io/ ○ Minikube - github.com/kubernetes/minikube ○ Skaffold - github.com/GoogleContainerTools/skaffold ○ Oidc-server-mock - github.com/Soluto/oidc-server-mock
  • 50. Additional resources ● CNCF landscape - https://landscape.cncf.io/ ● Design patterns for container-based distributed systems - https://static.googleusercontent.com/media/research.google.com/en//pubs/archiv e/45406.pdf ● Introduction to modern network load balancing and proxying - https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and- proxying-a57f6ff80236

Editor's Notes

  1. Need to improve
  2. Regardless
  3. Regardless
  4. Still on-going process New services with almost no “infra” code Testing got easier Faster adoptions of new languages and tools Better developer productivity