SlideShare a Scribd company logo
1 of 46
Download to read offline
INFRASTRUCTURE FOR
DECISION MAKERS
Questions for a better architecture
Eric Lubow @elubow #ddsea15
PERSONAL VANITY
๏ CTO of SimpleReach
๏ Co-Author of Practical
Cassandra
๏ Skydiver, Mixed Martial
Artist, Motorcyclist, Dog Dad
(IG: @charliedognyc), NY
Giants fan
Eric Lubow @elubow #ddsea15
SIMPLEREACH
๏ Identify the best content
๏ Use engagement metrics
๏ Stream processing ingest
๏ Many metrics, time sliced
๏ Multiple data stores
Eric Lubow @elubow #ddsea15
What do you mean infrastructure?
Eric Lubow @elubow #ddsea15
๏ Architects
๏ CTOs
๏ Lead Developers
๏ Developers
๏ Basically everyone
WHO IS MAKING THESE DECISIONS?
Eric Lubow @elubow #ddsea15
YOU WOULDN’T BUILD
SOFTWARE WITHOUT PLANNING
FIRST, SO WHY WOULD YOU
BUILD AN ARCHITECTURE
WITHOUT PLANNING?
Eric Lubow @elubow #ddsea15
๏ Architectures get built ad hoc
๏ Pieces tend to be built as needed and not always thought out
๏ Many lead developers don’t have a lot of architecture experience
๏ We don’t live in a perfect world and are usually time bound
๏ Product needs to be built and we’ll figure out the rest later (technical debt)
REALITY OF THE SITUATION
Eric Lubow @elubow #ddsea15
What are we actually going to talk
about today?
Eric Lubow @elubow #ddsea15
๏ Hardware
๏ Cloud
๏ Databases
๏ Message Systems
๏ Scale/Scaling
๏ Costs
๏ Compliance
๏ Development ease
๏ Authentication
FRAMEWORK FOR BUILDING
๏ Developer / Operational Capabilities
๏ Available Support
๏ Monitoring / Instrumentation
๏ Testing / Staging / QA
๏ Repeatability of Systems
๏ Safety nets
๏ Pressure valves
๏ Administration ease
๏ Authorization
Eric Lubow @elubow #ddsea15
WHY SHOULDN’T I LEAVE RIGHT NOW
Eric Lubow @elubow #ddsea15
๏ Unsexy talks can have good information
๏ Understanding these concepts can save lots of technical debt
๏ There are lessons learned from not knowing which to ask questions
๏ I’m kind of entertaining
๏ In case I’m not entertaining, I’ll use some entertaining pictures
๏ I’m going to tell you a story
REASONS TO LISTEN
Eric Lubow @elubow #ddsea15
HOW DID SIMPLEREACH GET FROM …
Eric Lubow @elubow #ddsea15
TO …
Business/Application/Translation/Data Access
Router/Load Balancer/Config/Authentication
SERVICE SERVICE SERVICE SERVICE
SERVICE SERVICE SERVICE SERVICE
Redshift
Platform
Eric Lubow @elubow #ddsea15
๏ Allows people to use a common language when discussing or solving problems
๏ Allows a common toolset for solving problems
๏ Simplifies difficult tasks
๏ Every language has frameworks: Ruby/Rails, Python/Django, Javascript/Ember.js
๏ Attempts to answer the questions:
๏ How should I do this?
๏ Is this a good idea?
๏ Is this the right tool?
WHY ARE FRAMEWORKS IMPORTANT
Eric Lubow @elubow #ddsea15
Eric Lubow @elubow #ddsea15
๏ Where is this going to live?
๏ How do I get data in?
๏ How am I going to store the data?
๏ How do I move data around?
BASIC QUESTIONS
๏ How should data look coming out?
๏ How do I get data out?
๏ How do I know if something is wrong?
๏ How do I maintain/scale/build?
Eric Lubow @elubow #ddsea15
๏ Is this going on the cloud? Amazon, Google, Azure, Rackspace?
๏ Do you need to be in a data center?
๏ Are APIs important?
๏ What kind of distribution of services / fault tolerance needs to be
available?
๏ What kind of SLAs do you need to meet (100% uptime)?
WHERE IS THIS GOING TO LIVE?
Eric Lubow @elubow #ddsea15
HOW DO I GET DATA IN?
๏ Build apps that follow the same paradigm
๏ POST data to an end point
๏ Consume off a queue
๏ Use message systems for queueing
๏ Message aggregation for efficiency
๏ Message sampling for throttles
๏ Try to avoid talking directly to a database from client facing applications
๏ Write your own client driver to talk to your architecture
Eric Lubow @elubow #ddsea15
HOW AM I GOING TO STORE THE
DATA?
Eric Lubow @elubow #ddsea15
๏ What’s the latest cool technology?
CHOOSING A DATABASE IS EASY, #AMIRITE
๏ What is my data volume?
๏ What are my query patterns?
๏ Is my data (un)structured?
๏ Will data remain consistent?
๏ Am I read heavy or write heavy?
๏ Am I batch loading data?
๏ Is eventually consistent data ok?
๏ Can I have a DR plan?
๏ Legal/compliance requirements?
๏ Are there experts/enterprise support?
๏ What’s the community like?
๏ Easy to administer?
๏ Tooling, monitoring, language support?
๏ Cloud or iron?
๏ High volume ingestion or batch loading?
๏ Fault tolerance?
๏ Open source vs enterprise system?
๏ Employee learning curve vs. learning cost?
Eric Lubow @elubow #ddsea15
HOW DO I MOVE DATA AROUND?
ROAD METAPHOR:
๏Messages = Cars
๏Message System = Highway / Roads
๏Database = Parking Lot
๏Cache = Cell Phone Lot
๏Commerce/Industry = Worker/
Consumer/Analyzer
๏Enrichment = Gas Station
Eric Lubow @elubow #ddsea15
๏ Only recently starting to become part of important discussions
๏ Provide consistent interfaces between disparate systems
๏ Clients can have minimal architecture knowledge
๏ Everyone can speak the same language (JSON, please not XML)
๏ Allow for high availability
๏ Help minimize the cost of downtime
๏ Control data flow patterns
๏ Makes [horizontal] scaling easier
๏ Enrichment/in-stream modifications of data
๏ Instrument and monitor data states between systems
MESSAGE SYSTEMS ARE MY FAV
Eric Lubow @elubow #ddsea15
๏ Distributed and de-centralized topology
๏ At least once delivery guaranteed
๏ Multi-cast style message routing
๏ Simple to configure and deploy
๏ All for zero-downtime maintenance windows
๏ Ephemeral channels for testing data
๏ Channel sampling
NSQ
nsq.io
Eric Lubow @elubow #ddsea15
HOW SHOULD DATA LOOK COMING OUT?
๏ Agree on a data format?
๏ XML, JSON, AVROJSON
๏ Again, please don’t use XML
๏ HATEOAS - heavy lift but decent client support
๏ What meta data should be sent with the response?
๏ How can unnecessary calls to an API be mitigated?
Eric Lubow @elubow #ddsea15
HOW DO I GET DATA OUT?
๏ Monolithic service architecture
๏ REST interface through a single URL to ask for data?
๏ Many micro-service end points?
๏ HTTP / RPC / THRIFT
๏ JSON API / HATEOS / CUSTOM
๏ How many libraries need to be written, tested and maintained?
Eric Lubow @elubow #ddsea15
And now back to our story…
Eric Lubow @elubow #ddsea15
SIMPLEREACH CONTEXT
๏ 100 million URLs
๏ 300 million Tweets
๏ 50k - 100k events per second (tens of billions of events per day)
๏ 200G new per hour
๏ 700T of total data (10T per month)
๏ 10T of hot data
๏ 2-3T of daily log data
๏ Excludes all monitoring data
Eric Lubow @elubow #ddsea15
Solr
Solr
Vertica + Cassandra
Vertica + Cassandra
Vertica
Mongo
Eric Lubow @elubow #ddsea15
STREAM-BASED DATA COLLECTION
Internet
Edge
InternalAPI
Solr
C*
Mongo
Redis
Vertica
API
Fire
Hose
App
Consumers
Queue
Eric Lubow @elubow #ddsea15
NEED FOR SPEED
๏ Concurrency
๏ Compiled code is much faster
๏ Statically typed languages make for less unexpected error situations
๏ Still speaks every other interchange language
๏ Cleaner code
Eric Lubow @elubow #ddsea15
MICROSERVICES: THE NEW HOTNESS!
๏ Fine grained, clearly scoped services
๏ Break 1 thing != break #allthethings
๏ Better fault isolation
๏ Easier to create throttles/release
valves
๏ Better able to monitor more
granularly
๏ Made everyone more devopsy
MICROSERVICES: THE NEW HOTNESS?
๏ Strict micro-service setups have
large database overheads
๏ Testing/deployments are more
complex
๏ More general overhead
๏ Slow down developer time
๏ Service discovery
Pros Cons
Eric Lubow @elubow #ddsea15
HYBRID MICRO-SERVICE / SHARED LIBRARY
Business/Application/Translation/Data Access
Router/Load Balancer/Config/Authentication
SERVICE SERVICE SERVICE SERVICE
SERVICE SERVICE SERVICE SERVICE
Redshift
Platform
Eric Lubow @elubow #ddsea15
GENERIC SERVICE AND DATA FLOW
Redshift
Data Access Layer
Business Logic
NSQApplication Layer
NSQ
router
auth
Data Access Layer
Business Logic
NSQApplication Layer
NSQ
Data Access Layer
Business Logic
NSQApplication Layer
NSQ Data Access Layer
Business Logic
NSQApplication Layer
NSQ
logstash
Eric Lubow @elubow #ddsea15
SMART ROUTER
๏ Handles service state and service registry/discovery information
๏ Canonical reference for all things platform
๏ Prevents older versions of services from re-appearing
๏ Highly available proxy application
๏ Has burst-able capacity to mitigate DoS
๏ Auto-scaling tier
Eric Lubow @elubow #ddsea15
BUSINESS LOGIC LAYER
๏ Contains thicker macro services
๏ Aggregates common features and functionality
๏ Permissioning/throttling/access restrictions
๏ Centrally handling trigger events
๏ Exposing various API end points
๏ Orchestrating calls to the DAL
Eric Lubow @elubow #ddsea15
DATA ACCESS LAYER
๏ Responsible for CRUD
๏ Houses many of the data models
๏ Responsible for balancing throughput of data in/out of databases
๏ Minimize the number of DB connections by using pooling
Eric Lubow @elubow #ddsea15
HYBRID MICRO-SERVICE / SHARED LIBRARY
Redshift
Platform
WebApp 1 WebApp 2 Python App Go App
Ingestion
Stream
Proxy/
Router
Ingestion
Stream
Ingestion
Stream
Eric Lubow @elubow #ddsea15
SMILEY HAPPY PEOPLE
Eric Lubow @elubow #ddsea15
HOW DO I KNOW IF SOMETHING IS WRONG
๏ Testing
๏ Monitoring
๏ Instrumentation
๏ No pull requests w/o instrumentation
๏ No pull requests w/o monitoring
๏ Build dashboards
Eric Lubow @elubow #ddsea15
DASHBOARD #ALLTHETHINGS
Eric Lubow @elubow #ddsea15
WHAT SHOULD I MONITOR/INSTRUMENT?
๏ Frequency
๏ Error rates
๏ Success rates
๏ Request Volume
๏ Message Counts
Eric Lubow @elubow #ddsea15
HOW DO I MAINTAIN/SCALE/BUILD?
๏ Already discussed monitoring/instrumentation
๏ Making sure you can maintain architecture is the same as ensuring you can
maintain code
๏ Have easy to use, flexible deployment systems
๏ Keep an audit trail
๏ Make processes repeatable and systematic
๏ Configuration management
๏ Automation (event based when possible)
๏ Easy enough to add and maintain but difficult to break
Eric Lubow @elubow #ddsea15
If you want to increase innovation,
you need to lower the cost of failure.
Joi Ito, MIT Media Lab
Eric Lubow @elubow #ddsea15
WHAT JUST HAPPENED
๏ A little architecture knowledge is a good thing
๏ Don’t start out with complexity
๏ Build what you need with growth in mind
๏ Make sure you have the basics covered
๏ Might be something to the micro-service hype
๏ Monitor everything
๏ Allow customizations and innovations
Eric Lubow @elubow #ddsea15
QUESTIONS IN LIFE ARE GUARANTEED,
ANSWERS AREN’T.
Eric Lubow
@elubow
Data Day Seattle
#ddsea15

More Related Content

What's hot

My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicApollo Clark
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
APIs for the Internet of Things
APIs for the Internet of ThingsAPIs for the Internet of Things
APIs for the Internet of ThingsKinoma
 
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Peter Leschev
 
GoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraGoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraDerek Collison
 
Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Justin Ryan
 
Freelancing and side-projects on Rails
Freelancing and side-projects on RailsFreelancing and side-projects on Rails
Freelancing and side-projects on RailsJohn McCaffrey
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of ThingsKinoma
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageDerek Collison
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performanceJohn McCaffrey
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish DatabaseGaetano Giunta
 
Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 dimakovalenko
 
Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?David Hoerster
 
Powerful Automation Made Simple
Powerful Automation Made SimplePowerful Automation Made Simple
Powerful Automation Made SimpleGaetano Giunta
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
Ruby performance - The low hanging fruit
Ruby performance - The low hanging fruitRuby performance - The low hanging fruit
Ruby performance - The low hanging fruitBruce Werdschinski
 
Symfony vs. Message Brokers
Symfony  vs.  Message BrokersSymfony  vs.  Message Brokers
Symfony vs. Message BrokersGaetano Giunta
 
AWS Meetup - Nordstrom Data Lab and the AWS Cloud
AWS Meetup - Nordstrom Data Lab and the AWS CloudAWS Meetup - Nordstrom Data Lab and the AWS Cloud
AWS Meetup - Nordstrom Data Lab and the AWS CloudNordstromDataLab
 
Nordstrom Data Lab Recommendo API with Node.js
Nordstrom Data Lab Recommendo API with Node.jsNordstrom Data Lab Recommendo API with Node.js
Nordstrom Data Lab Recommendo API with Node.jsDavid Von Lehman
 

What's hot (20)

My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is Magic
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
APIs for the Internet of Things
APIs for the Internet of ThingsAPIs for the Internet of Things
APIs for the Internet of Things
 
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
 
GoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraGoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at Apcera
 
Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)
 
Freelancing and side-projects on Rails
Freelancing and side-projects on RailsFreelancing and side-projects on Rails
Freelancing and side-projects on Rails
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of Things
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performance
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013
 
Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?
 
Powerful Automation Made Simple
Powerful Automation Made SimplePowerful Automation Made Simple
Powerful Automation Made Simple
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Ruby performance - The low hanging fruit
Ruby performance - The low hanging fruitRuby performance - The low hanging fruit
Ruby performance - The low hanging fruit
 
Wongnai Engineering Story
Wongnai Engineering StoryWongnai Engineering Story
Wongnai Engineering Story
 
Symfony vs. Message Brokers
Symfony  vs.  Message BrokersSymfony  vs.  Message Brokers
Symfony vs. Message Brokers
 
AWS Meetup - Nordstrom Data Lab and the AWS Cloud
AWS Meetup - Nordstrom Data Lab and the AWS CloudAWS Meetup - Nordstrom Data Lab and the AWS Cloud
AWS Meetup - Nordstrom Data Lab and the AWS Cloud
 
Nordstrom Data Lab Recommendo API with Node.js
Nordstrom Data Lab Recommendo API with Node.jsNordstrom Data Lab Recommendo API with Node.js
Nordstrom Data Lab Recommendo API with Node.js
 

Similar to Infrastructure for Decision Makers

Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsTeamstudio
 
Bringing it all together
Bringing it all togetherBringing it all together
Bringing it all togetherMelissaMcKay15
 
Building serverless apps with Go & SAM
Building serverless apps with Go & SAMBuilding serverless apps with Go & SAM
Building serverless apps with Go & SAMLeon Stigter
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Christian Heilmann
 
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!Serdar Basegmez
 
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...indeedeng
 
Sharing Best Practices and Recommendations from the Integration Battlefield
Sharing Best Practices and Recommendations from the Integration BattlefieldSharing Best Practices and Recommendations from the Integration Battlefield
Sharing Best Practices and Recommendations from the Integration BattlefieldWSO2
 
INTERFACE, by apidays - The Evolution of Data Movement.pdf
INTERFACE, by apidays - The Evolution of Data Movement.pdfINTERFACE, by apidays - The Evolution of Data Movement.pdf
INTERFACE, by apidays - The Evolution of Data Movement.pdfapidays
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices EnvironmentSteve Pember
 
Redis rise of Dataops
Redis rise of DataopsRedis rise of Dataops
Redis rise of Dataopslandoop
 
Stability patterns devoxx_pl_2017
Stability patterns devoxx_pl_2017Stability patterns devoxx_pl_2017
Stability patterns devoxx_pl_2017Daniel Lebrero
 
Rocking the microservice world with Helidon-LAOUCTour2023.pdf
Rocking the microservice world with Helidon-LAOUCTour2023.pdfRocking the microservice world with Helidon-LAOUCTour2023.pdf
Rocking the microservice world with Helidon-LAOUCTour2023.pdfAlberto Salazar
 
The Rise Of DataOps - SQL On Redis: Andrew Stevenson
The Rise Of DataOps - SQL On Redis: Andrew StevensonThe Rise Of DataOps - SQL On Redis: Andrew Stevenson
The Rise Of DataOps - SQL On Redis: Andrew StevensonRedis Labs
 
Optimizing Access with SQL Server
Optimizing Access with SQL ServerOptimizing Access with SQL Server
Optimizing Access with SQL ServerPRPASS Chapter
 
Image-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion MaximizationImage-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion MaximizationYottaa
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)Hyun-woo Park
 
What is spatial sql
What is spatial sqlWhat is spatial sql
What is spatial sqlshawty_ds
 
Web performance as rocket science
Web performance as rocket scienceWeb performance as rocket science
Web performance as rocket scienceAbati Adewale
 
NATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder MeetupNATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder MeetupApcera
 
Engage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest APIEngage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest APISerdar Basegmez
 

Similar to Infrastructure for Decision Makers (20)

Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
 
Bringing it all together
Bringing it all togetherBringing it all together
Bringing it all together
 
Building serverless apps with Go & SAM
Building serverless apps with Go & SAMBuilding serverless apps with Go & SAM
Building serverless apps with Go & SAM
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015
 
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
Engage 2020: Six Polite Ways to Design a RESTful API for Your Application!
 
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
 
Sharing Best Practices and Recommendations from the Integration Battlefield
Sharing Best Practices and Recommendations from the Integration BattlefieldSharing Best Practices and Recommendations from the Integration Battlefield
Sharing Best Practices and Recommendations from the Integration Battlefield
 
INTERFACE, by apidays - The Evolution of Data Movement.pdf
INTERFACE, by apidays - The Evolution of Data Movement.pdfINTERFACE, by apidays - The Evolution of Data Movement.pdf
INTERFACE, by apidays - The Evolution of Data Movement.pdf
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices Environment
 
Redis rise of Dataops
Redis rise of DataopsRedis rise of Dataops
Redis rise of Dataops
 
Stability patterns devoxx_pl_2017
Stability patterns devoxx_pl_2017Stability patterns devoxx_pl_2017
Stability patterns devoxx_pl_2017
 
Rocking the microservice world with Helidon-LAOUCTour2023.pdf
Rocking the microservice world with Helidon-LAOUCTour2023.pdfRocking the microservice world with Helidon-LAOUCTour2023.pdf
Rocking the microservice world with Helidon-LAOUCTour2023.pdf
 
The Rise Of DataOps - SQL On Redis: Andrew Stevenson
The Rise Of DataOps - SQL On Redis: Andrew StevensonThe Rise Of DataOps - SQL On Redis: Andrew Stevenson
The Rise Of DataOps - SQL On Redis: Andrew Stevenson
 
Optimizing Access with SQL Server
Optimizing Access with SQL ServerOptimizing Access with SQL Server
Optimizing Access with SQL Server
 
Image-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion MaximizationImage-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion Maximization
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
 
What is spatial sql
What is spatial sqlWhat is spatial sql
What is spatial sql
 
Web performance as rocket science
Web performance as rocket scienceWeb performance as rocket science
Web performance as rocket science
 
NATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder MeetupNATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder Meetup
 
Engage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest APIEngage 2023: Taking Domino Apps to the next level by providing a Rest API
Engage 2023: Taking Domino Apps to the next level by providing a Rest API
 

Recently uploaded

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Infrastructure for Decision Makers

  • 2. Eric Lubow @elubow #ddsea15 PERSONAL VANITY ๏ CTO of SimpleReach ๏ Co-Author of Practical Cassandra ๏ Skydiver, Mixed Martial Artist, Motorcyclist, Dog Dad (IG: @charliedognyc), NY Giants fan
  • 3. Eric Lubow @elubow #ddsea15 SIMPLEREACH ๏ Identify the best content ๏ Use engagement metrics ๏ Stream processing ingest ๏ Many metrics, time sliced ๏ Multiple data stores
  • 4. Eric Lubow @elubow #ddsea15 What do you mean infrastructure?
  • 5. Eric Lubow @elubow #ddsea15 ๏ Architects ๏ CTOs ๏ Lead Developers ๏ Developers ๏ Basically everyone WHO IS MAKING THESE DECISIONS?
  • 6. Eric Lubow @elubow #ddsea15 YOU WOULDN’T BUILD SOFTWARE WITHOUT PLANNING FIRST, SO WHY WOULD YOU BUILD AN ARCHITECTURE WITHOUT PLANNING?
  • 7. Eric Lubow @elubow #ddsea15 ๏ Architectures get built ad hoc ๏ Pieces tend to be built as needed and not always thought out ๏ Many lead developers don’t have a lot of architecture experience ๏ We don’t live in a perfect world and are usually time bound ๏ Product needs to be built and we’ll figure out the rest later (technical debt) REALITY OF THE SITUATION
  • 8. Eric Lubow @elubow #ddsea15 What are we actually going to talk about today?
  • 9. Eric Lubow @elubow #ddsea15 ๏ Hardware ๏ Cloud ๏ Databases ๏ Message Systems ๏ Scale/Scaling ๏ Costs ๏ Compliance ๏ Development ease ๏ Authentication FRAMEWORK FOR BUILDING ๏ Developer / Operational Capabilities ๏ Available Support ๏ Monitoring / Instrumentation ๏ Testing / Staging / QA ๏ Repeatability of Systems ๏ Safety nets ๏ Pressure valves ๏ Administration ease ๏ Authorization
  • 10. Eric Lubow @elubow #ddsea15 WHY SHOULDN’T I LEAVE RIGHT NOW
  • 11. Eric Lubow @elubow #ddsea15 ๏ Unsexy talks can have good information ๏ Understanding these concepts can save lots of technical debt ๏ There are lessons learned from not knowing which to ask questions ๏ I’m kind of entertaining ๏ In case I’m not entertaining, I’ll use some entertaining pictures ๏ I’m going to tell you a story REASONS TO LISTEN
  • 12. Eric Lubow @elubow #ddsea15 HOW DID SIMPLEREACH GET FROM …
  • 13. Eric Lubow @elubow #ddsea15 TO … Business/Application/Translation/Data Access Router/Load Balancer/Config/Authentication SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE Redshift Platform
  • 14. Eric Lubow @elubow #ddsea15 ๏ Allows people to use a common language when discussing or solving problems ๏ Allows a common toolset for solving problems ๏ Simplifies difficult tasks ๏ Every language has frameworks: Ruby/Rails, Python/Django, Javascript/Ember.js ๏ Attempts to answer the questions: ๏ How should I do this? ๏ Is this a good idea? ๏ Is this the right tool? WHY ARE FRAMEWORKS IMPORTANT
  • 15. Eric Lubow @elubow #ddsea15
  • 16. Eric Lubow @elubow #ddsea15 ๏ Where is this going to live? ๏ How do I get data in? ๏ How am I going to store the data? ๏ How do I move data around? BASIC QUESTIONS ๏ How should data look coming out? ๏ How do I get data out? ๏ How do I know if something is wrong? ๏ How do I maintain/scale/build?
  • 17. Eric Lubow @elubow #ddsea15 ๏ Is this going on the cloud? Amazon, Google, Azure, Rackspace? ๏ Do you need to be in a data center? ๏ Are APIs important? ๏ What kind of distribution of services / fault tolerance needs to be available? ๏ What kind of SLAs do you need to meet (100% uptime)? WHERE IS THIS GOING TO LIVE?
  • 18. Eric Lubow @elubow #ddsea15 HOW DO I GET DATA IN? ๏ Build apps that follow the same paradigm ๏ POST data to an end point ๏ Consume off a queue ๏ Use message systems for queueing ๏ Message aggregation for efficiency ๏ Message sampling for throttles ๏ Try to avoid talking directly to a database from client facing applications ๏ Write your own client driver to talk to your architecture
  • 19. Eric Lubow @elubow #ddsea15 HOW AM I GOING TO STORE THE DATA?
  • 20. Eric Lubow @elubow #ddsea15 ๏ What’s the latest cool technology? CHOOSING A DATABASE IS EASY, #AMIRITE ๏ What is my data volume? ๏ What are my query patterns? ๏ Is my data (un)structured? ๏ Will data remain consistent? ๏ Am I read heavy or write heavy? ๏ Am I batch loading data? ๏ Is eventually consistent data ok? ๏ Can I have a DR plan? ๏ Legal/compliance requirements? ๏ Are there experts/enterprise support? ๏ What’s the community like? ๏ Easy to administer? ๏ Tooling, monitoring, language support? ๏ Cloud or iron? ๏ High volume ingestion or batch loading? ๏ Fault tolerance? ๏ Open source vs enterprise system? ๏ Employee learning curve vs. learning cost?
  • 21. Eric Lubow @elubow #ddsea15 HOW DO I MOVE DATA AROUND? ROAD METAPHOR: ๏Messages = Cars ๏Message System = Highway / Roads ๏Database = Parking Lot ๏Cache = Cell Phone Lot ๏Commerce/Industry = Worker/ Consumer/Analyzer ๏Enrichment = Gas Station
  • 22. Eric Lubow @elubow #ddsea15 ๏ Only recently starting to become part of important discussions ๏ Provide consistent interfaces between disparate systems ๏ Clients can have minimal architecture knowledge ๏ Everyone can speak the same language (JSON, please not XML) ๏ Allow for high availability ๏ Help minimize the cost of downtime ๏ Control data flow patterns ๏ Makes [horizontal] scaling easier ๏ Enrichment/in-stream modifications of data ๏ Instrument and monitor data states between systems MESSAGE SYSTEMS ARE MY FAV
  • 23. Eric Lubow @elubow #ddsea15 ๏ Distributed and de-centralized topology ๏ At least once delivery guaranteed ๏ Multi-cast style message routing ๏ Simple to configure and deploy ๏ All for zero-downtime maintenance windows ๏ Ephemeral channels for testing data ๏ Channel sampling NSQ nsq.io
  • 24. Eric Lubow @elubow #ddsea15 HOW SHOULD DATA LOOK COMING OUT? ๏ Agree on a data format? ๏ XML, JSON, AVROJSON ๏ Again, please don’t use XML ๏ HATEOAS - heavy lift but decent client support ๏ What meta data should be sent with the response? ๏ How can unnecessary calls to an API be mitigated?
  • 25. Eric Lubow @elubow #ddsea15 HOW DO I GET DATA OUT? ๏ Monolithic service architecture ๏ REST interface through a single URL to ask for data? ๏ Many micro-service end points? ๏ HTTP / RPC / THRIFT ๏ JSON API / HATEOS / CUSTOM ๏ How many libraries need to be written, tested and maintained?
  • 26. Eric Lubow @elubow #ddsea15 And now back to our story…
  • 27. Eric Lubow @elubow #ddsea15 SIMPLEREACH CONTEXT ๏ 100 million URLs ๏ 300 million Tweets ๏ 50k - 100k events per second (tens of billions of events per day) ๏ 200G new per hour ๏ 700T of total data (10T per month) ๏ 10T of hot data ๏ 2-3T of daily log data ๏ Excludes all monitoring data
  • 28. Eric Lubow @elubow #ddsea15 Solr Solr Vertica + Cassandra Vertica + Cassandra Vertica Mongo
  • 29. Eric Lubow @elubow #ddsea15 STREAM-BASED DATA COLLECTION Internet Edge InternalAPI Solr C* Mongo Redis Vertica API Fire Hose App Consumers Queue
  • 30. Eric Lubow @elubow #ddsea15 NEED FOR SPEED ๏ Concurrency ๏ Compiled code is much faster ๏ Statically typed languages make for less unexpected error situations ๏ Still speaks every other interchange language ๏ Cleaner code
  • 31. Eric Lubow @elubow #ddsea15 MICROSERVICES: THE NEW HOTNESS!
  • 32. ๏ Fine grained, clearly scoped services ๏ Break 1 thing != break #allthethings ๏ Better fault isolation ๏ Easier to create throttles/release valves ๏ Better able to monitor more granularly ๏ Made everyone more devopsy MICROSERVICES: THE NEW HOTNESS? ๏ Strict micro-service setups have large database overheads ๏ Testing/deployments are more complex ๏ More general overhead ๏ Slow down developer time ๏ Service discovery Pros Cons
  • 33. Eric Lubow @elubow #ddsea15 HYBRID MICRO-SERVICE / SHARED LIBRARY Business/Application/Translation/Data Access Router/Load Balancer/Config/Authentication SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE SERVICE Redshift Platform
  • 34. Eric Lubow @elubow #ddsea15 GENERIC SERVICE AND DATA FLOW Redshift Data Access Layer Business Logic NSQApplication Layer NSQ router auth Data Access Layer Business Logic NSQApplication Layer NSQ Data Access Layer Business Logic NSQApplication Layer NSQ Data Access Layer Business Logic NSQApplication Layer NSQ logstash
  • 35. Eric Lubow @elubow #ddsea15 SMART ROUTER ๏ Handles service state and service registry/discovery information ๏ Canonical reference for all things platform ๏ Prevents older versions of services from re-appearing ๏ Highly available proxy application ๏ Has burst-able capacity to mitigate DoS ๏ Auto-scaling tier
  • 36. Eric Lubow @elubow #ddsea15 BUSINESS LOGIC LAYER ๏ Contains thicker macro services ๏ Aggregates common features and functionality ๏ Permissioning/throttling/access restrictions ๏ Centrally handling trigger events ๏ Exposing various API end points ๏ Orchestrating calls to the DAL
  • 37. Eric Lubow @elubow #ddsea15 DATA ACCESS LAYER ๏ Responsible for CRUD ๏ Houses many of the data models ๏ Responsible for balancing throughput of data in/out of databases ๏ Minimize the number of DB connections by using pooling
  • 38. Eric Lubow @elubow #ddsea15 HYBRID MICRO-SERVICE / SHARED LIBRARY Redshift Platform WebApp 1 WebApp 2 Python App Go App Ingestion Stream Proxy/ Router Ingestion Stream Ingestion Stream
  • 39. Eric Lubow @elubow #ddsea15 SMILEY HAPPY PEOPLE
  • 40. Eric Lubow @elubow #ddsea15 HOW DO I KNOW IF SOMETHING IS WRONG ๏ Testing ๏ Monitoring ๏ Instrumentation ๏ No pull requests w/o instrumentation ๏ No pull requests w/o monitoring ๏ Build dashboards
  • 41. Eric Lubow @elubow #ddsea15 DASHBOARD #ALLTHETHINGS
  • 42. Eric Lubow @elubow #ddsea15 WHAT SHOULD I MONITOR/INSTRUMENT? ๏ Frequency ๏ Error rates ๏ Success rates ๏ Request Volume ๏ Message Counts
  • 43. Eric Lubow @elubow #ddsea15 HOW DO I MAINTAIN/SCALE/BUILD? ๏ Already discussed monitoring/instrumentation ๏ Making sure you can maintain architecture is the same as ensuring you can maintain code ๏ Have easy to use, flexible deployment systems ๏ Keep an audit trail ๏ Make processes repeatable and systematic ๏ Configuration management ๏ Automation (event based when possible) ๏ Easy enough to add and maintain but difficult to break
  • 44. Eric Lubow @elubow #ddsea15 If you want to increase innovation, you need to lower the cost of failure. Joi Ito, MIT Media Lab
  • 45. Eric Lubow @elubow #ddsea15 WHAT JUST HAPPENED ๏ A little architecture knowledge is a good thing ๏ Don’t start out with complexity ๏ Build what you need with growth in mind ๏ Make sure you have the basics covered ๏ Might be something to the micro-service hype ๏ Monitor everything ๏ Allow customizations and innovations
  • 46. Eric Lubow @elubow #ddsea15 QUESTIONS IN LIFE ARE GUARANTEED, ANSWERS AREN’T. Eric Lubow @elubow Data Day Seattle #ddsea15