SlideShare a Scribd company logo
1 of 35
Download to read offline
From monoliths to
microservices - a journey
with Confluent
A presentation on lessons learned from migrations and resiliency
Indeed
1. Indeed is the #1 job site in the world in
60 countries on 30 languages with
250M unique monthly visitors1
, 225M
resumes, 700M+ total ratings and
reviews
2. Headquartered at Austin, Texas.
Subsidiary of Recruit Holding Co., Ltd.
15+ office locations across the globe
including “Remote” offices everywhere
3. A metasearch engine for job listings
including company career web pages
and recruiting firms
1
ComScore, Total Visits, March 2021
About me
Gayathri Veale
Senior Infrastructure Engineer
Persistence Platforms
● Start with “I don’t know”
● Rely on data
● Experiment
● Measure
● Rely on experimental evidence
● Qualitative metrics
● Quantitative metrics
● Make better decisions
Data driven, a core value
“If we can measure it, we can improve it” - Donal McMahon, VP Data Science
Platform first
Society
Job Seekers
Employers
A lot of possibilities when
platform is first!
1. What segment are we
focusing on?
2. What products?
3. What priorities?
4. Which features?
5. What resources do we need?
6. How big are the
deployments?
7. How should we scale them?
Segmentation
Developer first
Self Serve
Continuous
delivery
Push on
green*
* Push on Green
● Self service
○ Infrastructure as a
Service
○ Environment as a
Service
● Canary deploys
● Automation
● CI/CD
● Coexist with legacy
code
● Built-in observability
● Security
Break Things
Faster (But Not in
Prod)
Use cases
We crawl job sites/posts and:
1. obtain normalized form
2. enrich gathered data
3. aggregate the jobs
We want data access to be:
1. Simple
2. Fast
3. Comprehensive
4. Relevant
Use cases
We have change data capture
pipelines that batch and share data
between different:
● Domains
● Integrations
● Data stores
● Exchanges
● Warehouses
● Analytics
Use cases
We microbatch events in streams
1. Stateful processing
2. Enrichment
3. Distributed processing
4. Rolling deployments
5. Persistent state stores
6. Faster recovery
Scale
On average, we process:
> 25,000 distinct event types
> 4.5 trillion events per month
~ 4.5 PB uncompressed per month
Logrepo
Why Kafka?
High performance
low latency data
pipelines
Stream analytics
Business critical
applications
Open-source
Streaming
Platform
Data integration
Why Kafka?
Open-source
Streaming
Platform
A distributed and replicated
structured commit log
Write ahead log
Transaction log
Recovery log
2 phase commit
Audit log
Logs: the heart of any data driven system
Get the Ebook!
Kafka Streams
Kafka Connect
Replication,
MirrorMaker
Stream Governance
3 phase commit
Append only Durable Immutable
Why Confluent?
Data Analytics
Databases
CRM
Marketing Apache Kafka©
Reference: https://docs.confluent.io/platform/current/platform.html
Management and Monitoring
Performance and Scalability
Development and Connectivity
Resilience and Security
Data Lakes
Data
Warehouses
Models & ML
Event Stores
We started with SOA● Standard deployables,
libraries and frameworks
● Separate control and data
plane
● Separate deployment
groups (for each
datacenter, site and
environment)
● Instances (daemons) in
multiple environments
● Integrations to frontend
Projects
Deployment
groups
Instances
Frontend
Result: Repeatable maintenance, procedures, deployments and
some monoliths
What kind of Monoliths?
1. Single process serving all
functionality of a system
2. Modular processes serving
particular functions and
coupled together for a
system
3. Third party systems
Code that
changes
together stays
together
Synchronous
calls
Encapsulation
Did we just make modular Monoliths?
Tightly coupled,
1. Services
2. Implementation
3. Temporal
4. Deployment
5. Domain
Kristen Westeinde’s talk is very insightful
Service mesh
Sidecar that guarantees
delivery of requests in a
complex topology of services
that comprise a modern,
cloud native application
Separate service application from
service communication logic
Pattern: Service Mesh, Phil Calçado
Some free benefits
● Service discovery - figure out IP addresses and ports of
instances of a service
● Load balancing - when you have multiple instances of a
service, distribute requests among them
● Circuit breaking - stop sending requests to an
unhealthy instance
● Rate limiting - only allow clients a certain number of
requests over a certain period of time
● Authentication - use API Keys and Allow lists
● Encryption - TLS across the wire
“Service Mesh? It’s a proxy” - Kafka and The Service Mesh - Gwen Shapira
Modern data flows are seams in the mesh
There’s data hidden in that mesh!
● Streaming platform
● Decentralized
● SaaS
● Governance
a. Discovery
b. Lineage
c. Policy
d. Classification
e. Observability
Sharing data better
We want systems to be responsive, resilient, elastic and message driven - The Reactive Manifesto
Events are
notifications
Messages are
data sent to an
addressable
recipient
ETL to Cloud
Publish
Consume
Data Domain
Event Store
Bounded context A Bounded context B
Bounded context C Bounded context D
App
Legacy
Get the Ebook!
APP
Sourcing
CQRS + Kafka Streams
We use Confluent Cloud, fully
managed Kafka platform
APP1 APP2
APP3 APP4
Queue
CDC + Event Streaming
APP5
Event driven
You said Kafka is a:
- Queue
- Database
Do we still need schema?
Do we still
need
common
structures?
● A monolith is a legitimate
solution
● You can have a centralized
database
● It’s ok to have many databases
Synchronous coupling between APIs of loosely
coupled services interacting with a database
Datastores are views of events in
our durable immutable event log
An old
reminder
about
pipes…
Doug McIlroy, the inventor of Unix pipes in
Unix philosophy* states,
(i) Make each program do one thing well
(ii) Expect the output of every program to
become the input to another
*The Bell System Technical Journal. Bell Laboratories. M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing
System Forward”. 1978. 57 (6, part 2). p. 1902.
Filter Filter
Filter
Pipe Pipe
Pipe
Smart endpoints, dumb pipes
● Collect events between domains
● Integrate
○ Asynchronous routing
○ Cross regions and datacenter
○ Protocols
■ gRPC2
■ HTTP2
■ REST
○ Language agnostic
○ APIs for each service
○ SLO per API
○ Schema adherence
● Business Logic or Machine Learning
Kafka protocol filter for Envoy
Bridge to Cloud
Winter 2021 gave us added opportunities for
platformization – “reduce dependency on Texas as
a single site for serving critical production
applications”
Yes, this happened. It was not all fun
and games and Kubernetes…
Measure
throughput
and latency
Specs
Migration
Strategies
kafka-producer-perf-test
kafka-consumer-perf-test
Cluster Type
CKU
Single AZ
Multi AZ
Network Type
Lift, tinker and shift
Active/active-consumer offset sync
Migrated 116 business critical
clusters in multiple environments in
7 different regions to Confluent
Cloud
MirrorMaker*
Confluent
replicator
Cluster
Linking
Migration Strategies
On-premise
Producers
Cloud
Consumers
1. Produce to both on-premise and cloud
2. Migrate consumers over time to cloud
3. Run Mirror Maker at each local region
1. Deduplication
2. Aggregation approach
3. Compression
a. Zstd for best
compression
b. Lz4 for throughput
4. Partitioning
5. Enrichment/filtering
6. Ingress/ Egress
Aggregation
Mirror Makers
On-premise
Consumers
Cloud
Producers
1. Produce to both on-premise and cloud
2. Migrate consumers over time to cloud
3. Run Mirror Maker at aggregation region
Aggregation
Mirror Makers
Consume remote, produce
local (Best practice)
Consume local, produce remote
Consumers
Producers
Kafka Streams
Filter
&
join
Flat
map
1. Topology
2. Stateful processing
a. Aggregation
b. Joins
c. Windowing
d. Transformation
3. Persistent state stores
a. Assignment
b. Standby replicas
c. Membership
4. Performance tuning
a. Consumer sizing
b. RocksDB
c. Session timeout
Don’t do Kafka Streams
without:
- Partitioning strategy
- Schema
management
- Strategy to manage
state
- Considering
scalability
- Recovery lag
Developer Tools
Confluent-cli
Observability
Datadog Integration
Notifications
Cluster Load Metric
● Targeted Notifications
● Client labels
● Granular metrics
Trust and Security
- Transport
- TLS v1.2+
- SASL_SSL
- Private network
- Encryption at rest
- Access control
- Authorization
- Audit logs
- Compliance
- TLS v1.2+
- API Keys -
applications
- SAML/SSO - Users
- OAuth/ OIDC
Access
Data protection
Threat protection
Network security
Producers
Consumers
Data as a product
Data Quality
APIs
Event
Stores
CDC
Streams
What do data scientists do?
- Build predictive models
- Machine learning
- Data Clustering
- Trend detection
Mining
Management
Scale
Discovery and Governance
Data Mesh
Data Sharing
Disaster Recovery
Geo-replication
Edge Aggregation
Schema
registry
Cluster
Linking
Stream
Governance
Data Catalog
Data Lineage
Data Policies
Security
We are running a marathon
Official Terraform Provider
Security - OAuth and
OIDC
Kafka Streams enhancements
Observability improvements
Professional Services
Stream Governance
Building strategic partnership
Quarterly business reviews
Deep dive sessions
Regular office hours
Support syncup hours
Professional Services
Routine audits
Forecasting growth Technical architecture reviews
Thank you for your time

More Related Content

Similar to From Monoliths to Microservices - A Journey With Confluent With Gayathri Veale | Current 2022

How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
VMware Tanzu
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Kai Wähner
 

Similar to From Monoliths to Microservices - A Journey With Confluent With Gayathri Veale | Current 2022 (20)

Message Driven and Event Sourcing
Message Driven and Event SourcingMessage Driven and Event Sourcing
Message Driven and Event Sourcing
 
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it YourselfWhy Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
 
Partner Connect APAC - 2022 - April
Partner Connect APAC - 2022 - AprilPartner Connect APAC - 2022 - April
Partner Connect APAC - 2022 - April
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Introducing Events and Stream Processing into Nationwide Building Society (Ro...
Introducing Events and Stream Processing into Nationwide Building Society (Ro...Introducing Events and Stream Processing into Nationwide Building Society (Ro...
Introducing Events and Stream Processing into Nationwide Building Society (Ro...
 
Confluent Messaging Modernization Forum
Confluent Messaging Modernization ForumConfluent Messaging Modernization Forum
Confluent Messaging Modernization Forum
 
Best Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
Best Practices for Building Hybrid-Cloud Architectures | Hans JespersenBest Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
Best Practices for Building Hybrid-Cloud Architectures | Hans Jespersen
 
Streaming Data Ingest and Processing with Apache Kafka
Streaming Data Ingest and Processing with Apache KafkaStreaming Data Ingest and Processing with Apache Kafka
Streaming Data Ingest and Processing with Apache Kafka
 
Benefits of Stream Processing and Apache Kafka Use Cases
Benefits of Stream Processing and Apache Kafka Use CasesBenefits of Stream Processing and Apache Kafka Use Cases
Benefits of Stream Processing and Apache Kafka Use Cases
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
Reinventing Kafka in the Data Streaming Era - Jun Rao
Reinventing Kafka in the Data Streaming Era - Jun RaoReinventing Kafka in the Data Streaming Era - Jun Rao
Reinventing Kafka in the Data Streaming Era - Jun Rao
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Devoxx university - Kafka de haut en bas
Devoxx university - Kafka de haut en basDevoxx university - Kafka de haut en bas
Devoxx university - Kafka de haut en bas
 
Evolving from Messaging to Event Streaming
Evolving from Messaging to Event StreamingEvolving from Messaging to Event Streaming
Evolving from Messaging to Event Streaming
 
A Microservices Journey - Susanne Kaiser
A Microservices Journey - Susanne KaiserA Microservices Journey - Susanne Kaiser
A Microservices Journey - Susanne Kaiser
 

More from HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 

More from HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Recently uploaded

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

From Monoliths to Microservices - A Journey With Confluent With Gayathri Veale | Current 2022

  • 1. From monoliths to microservices - a journey with Confluent A presentation on lessons learned from migrations and resiliency
  • 2. Indeed 1. Indeed is the #1 job site in the world in 60 countries on 30 languages with 250M unique monthly visitors1 , 225M resumes, 700M+ total ratings and reviews 2. Headquartered at Austin, Texas. Subsidiary of Recruit Holding Co., Ltd. 15+ office locations across the globe including “Remote” offices everywhere 3. A metasearch engine for job listings including company career web pages and recruiting firms 1 ComScore, Total Visits, March 2021
  • 3. About me Gayathri Veale Senior Infrastructure Engineer Persistence Platforms
  • 4.
  • 5. ● Start with “I don’t know” ● Rely on data ● Experiment ● Measure ● Rely on experimental evidence ● Qualitative metrics ● Quantitative metrics ● Make better decisions Data driven, a core value “If we can measure it, we can improve it” - Donal McMahon, VP Data Science
  • 6. Platform first Society Job Seekers Employers A lot of possibilities when platform is first! 1. What segment are we focusing on? 2. What products? 3. What priorities? 4. Which features? 5. What resources do we need? 6. How big are the deployments? 7. How should we scale them? Segmentation
  • 7. Developer first Self Serve Continuous delivery Push on green* * Push on Green ● Self service ○ Infrastructure as a Service ○ Environment as a Service ● Canary deploys ● Automation ● CI/CD ● Coexist with legacy code ● Built-in observability ● Security Break Things Faster (But Not in Prod)
  • 8. Use cases We crawl job sites/posts and: 1. obtain normalized form 2. enrich gathered data 3. aggregate the jobs We want data access to be: 1. Simple 2. Fast 3. Comprehensive 4. Relevant
  • 9. Use cases We have change data capture pipelines that batch and share data between different: ● Domains ● Integrations ● Data stores ● Exchanges ● Warehouses ● Analytics
  • 10. Use cases We microbatch events in streams 1. Stateful processing 2. Enrichment 3. Distributed processing 4. Rolling deployments 5. Persistent state stores 6. Faster recovery
  • 11. Scale On average, we process: > 25,000 distinct event types > 4.5 trillion events per month ~ 4.5 PB uncompressed per month Logrepo
  • 12. Why Kafka? High performance low latency data pipelines Stream analytics Business critical applications Open-source Streaming Platform Data integration
  • 13. Why Kafka? Open-source Streaming Platform A distributed and replicated structured commit log Write ahead log Transaction log Recovery log 2 phase commit Audit log Logs: the heart of any data driven system Get the Ebook! Kafka Streams Kafka Connect Replication, MirrorMaker Stream Governance 3 phase commit Append only Durable Immutable
  • 14. Why Confluent? Data Analytics Databases CRM Marketing Apache Kafka© Reference: https://docs.confluent.io/platform/current/platform.html Management and Monitoring Performance and Scalability Development and Connectivity Resilience and Security Data Lakes Data Warehouses Models & ML Event Stores
  • 15. We started with SOA● Standard deployables, libraries and frameworks ● Separate control and data plane ● Separate deployment groups (for each datacenter, site and environment) ● Instances (daemons) in multiple environments ● Integrations to frontend Projects Deployment groups Instances Frontend Result: Repeatable maintenance, procedures, deployments and some monoliths
  • 16. What kind of Monoliths? 1. Single process serving all functionality of a system 2. Modular processes serving particular functions and coupled together for a system 3. Third party systems Code that changes together stays together Synchronous calls Encapsulation
  • 17. Did we just make modular Monoliths? Tightly coupled, 1. Services 2. Implementation 3. Temporal 4. Deployment 5. Domain Kristen Westeinde’s talk is very insightful
  • 18. Service mesh Sidecar that guarantees delivery of requests in a complex topology of services that comprise a modern, cloud native application Separate service application from service communication logic Pattern: Service Mesh, Phil Calçado
  • 19. Some free benefits ● Service discovery - figure out IP addresses and ports of instances of a service ● Load balancing - when you have multiple instances of a service, distribute requests among them ● Circuit breaking - stop sending requests to an unhealthy instance ● Rate limiting - only allow clients a certain number of requests over a certain period of time ● Authentication - use API Keys and Allow lists ● Encryption - TLS across the wire “Service Mesh? It’s a proxy” - Kafka and The Service Mesh - Gwen Shapira
  • 20. Modern data flows are seams in the mesh There’s data hidden in that mesh! ● Streaming platform ● Decentralized ● SaaS ● Governance a. Discovery b. Lineage c. Policy d. Classification e. Observability
  • 21. Sharing data better We want systems to be responsive, resilient, elastic and message driven - The Reactive Manifesto Events are notifications Messages are data sent to an addressable recipient ETL to Cloud Publish Consume Data Domain Event Store Bounded context A Bounded context B Bounded context C Bounded context D App Legacy Get the Ebook! APP Sourcing CQRS + Kafka Streams We use Confluent Cloud, fully managed Kafka platform APP1 APP2 APP3 APP4 Queue CDC + Event Streaming APP5
  • 22. Event driven You said Kafka is a: - Queue - Database Do we still need schema? Do we still need common structures? ● A monolith is a legitimate solution ● You can have a centralized database ● It’s ok to have many databases Synchronous coupling between APIs of loosely coupled services interacting with a database Datastores are views of events in our durable immutable event log
  • 23. An old reminder about pipes… Doug McIlroy, the inventor of Unix pipes in Unix philosophy* states, (i) Make each program do one thing well (ii) Expect the output of every program to become the input to another *The Bell System Technical Journal. Bell Laboratories. M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing System Forward”. 1978. 57 (6, part 2). p. 1902. Filter Filter Filter Pipe Pipe Pipe
  • 24. Smart endpoints, dumb pipes ● Collect events between domains ● Integrate ○ Asynchronous routing ○ Cross regions and datacenter ○ Protocols ■ gRPC2 ■ HTTP2 ■ REST ○ Language agnostic ○ APIs for each service ○ SLO per API ○ Schema adherence ● Business Logic or Machine Learning Kafka protocol filter for Envoy
  • 25. Bridge to Cloud Winter 2021 gave us added opportunities for platformization – “reduce dependency on Texas as a single site for serving critical production applications” Yes, this happened. It was not all fun and games and Kubernetes… Measure throughput and latency Specs Migration Strategies kafka-producer-perf-test kafka-consumer-perf-test Cluster Type CKU Single AZ Multi AZ Network Type Lift, tinker and shift Active/active-consumer offset sync Migrated 116 business critical clusters in multiple environments in 7 different regions to Confluent Cloud MirrorMaker* Confluent replicator Cluster Linking
  • 26. Migration Strategies On-premise Producers Cloud Consumers 1. Produce to both on-premise and cloud 2. Migrate consumers over time to cloud 3. Run Mirror Maker at each local region 1. Deduplication 2. Aggregation approach 3. Compression a. Zstd for best compression b. Lz4 for throughput 4. Partitioning 5. Enrichment/filtering 6. Ingress/ Egress Aggregation Mirror Makers On-premise Consumers Cloud Producers 1. Produce to both on-premise and cloud 2. Migrate consumers over time to cloud 3. Run Mirror Maker at aggregation region Aggregation Mirror Makers Consume remote, produce local (Best practice) Consume local, produce remote Consumers Producers
  • 27. Kafka Streams Filter & join Flat map 1. Topology 2. Stateful processing a. Aggregation b. Joins c. Windowing d. Transformation 3. Persistent state stores a. Assignment b. Standby replicas c. Membership 4. Performance tuning a. Consumer sizing b. RocksDB c. Session timeout Don’t do Kafka Streams without: - Partitioning strategy - Schema management - Strategy to manage state - Considering scalability - Recovery lag
  • 29. Observability Datadog Integration Notifications Cluster Load Metric ● Targeted Notifications ● Client labels ● Granular metrics
  • 30. Trust and Security - Transport - TLS v1.2+ - SASL_SSL - Private network - Encryption at rest - Access control - Authorization - Audit logs - Compliance - TLS v1.2+ - API Keys - applications - SAML/SSO - Users - OAuth/ OIDC Access Data protection Threat protection Network security
  • 31. Producers Consumers Data as a product Data Quality APIs Event Stores CDC Streams What do data scientists do? - Build predictive models - Machine learning - Data Clustering - Trend detection Mining Management Scale
  • 32. Discovery and Governance Data Mesh Data Sharing Disaster Recovery Geo-replication Edge Aggregation Schema registry Cluster Linking Stream Governance Data Catalog Data Lineage Data Policies Security
  • 33. We are running a marathon Official Terraform Provider Security - OAuth and OIDC Kafka Streams enhancements Observability improvements Professional Services Stream Governance
  • 34. Building strategic partnership Quarterly business reviews Deep dive sessions Regular office hours Support syncup hours Professional Services Routine audits Forecasting growth Technical architecture reviews
  • 35. Thank you for your time