SlideShare a Scribd company logo
1 of 43
Download to read offline
Xen and the Art of
Rails Deployment
Who am I?

ā€¢ Ezra Zygmuntowicz
ā€¢ Rubyist for 4 years
ā€¢ Engine Yard Founder and Architect
ā€¢ Blog: http://brainspl.at
Deploying Rails

ā€¢ Details have changed rapidly over the years
ā€¢ Many different webservers have come and
  gone
ā€¢ Basics remain the same
Full Stack Request/Response Life-Cycle


ā€¢   Request comes into gateway
    server


ā€¢   Rewrite rules are evaluated and
    request gets served directly if itā€™s
    a static asset


ā€¢   Dynamic requests are proxied to
    one Mongrel in the Mongrel
    Cluster


ā€¢   Mongrel dispatches request
    through Rails and returns
    response to client
History Lesson
 ā€¢   CGI

 ā€¢   Apache1.3.x/mod_fastcgi

 ā€¢   Lighttpd/fcgi

 ā€¢   Apache2.x/mod_fcgid

 ā€¢   Lighttpd/SCGI

 ā€¢   Lightspeed
Enough Already




X
  ā€¢   CGI

  ā€¢   Apache1.3.x/mod_fastcgi

  ā€¢   Lighttpd/fcgi

  ā€¢   Apache2.x/mod_fcgid

  ā€¢   Lighttpd/SCGI

  ā€¢   Lightspeed
Enter Mongrel

The year of the Dog
What is Mongrel?
Mongrel is an HTTP Server
 Library written by Zed Shaw

ā€¢ Fast HTTP Parser written in Ragel + C
ā€¢ Fast URI Classiļ¬er written in C
ā€¢ Stackable Request Handlers
ā€¢ Flexible Conļ¬guration
ā€¢ Secure and RFC Compliant HTTP Parser
Ragel State Machine
Deļ¬ned HTTP Parser
Why is Mongrel better?

ā€¢ HTTP is a well known and well tooled
  protocol
ā€¢ Mongrel is way easier to setup and use
ā€¢ Transparent wire protocol
But Rails isnā€™t Thread Safe!

ā€¢ Giant Mutex Lock around Rails Dispatch
ā€¢ Only one request served at a time by one
  mongrel
ā€¢ Use mongrel_cluster to scale with multiple
  processes
Rails Internal Request/Response Life-Cycle
ā€¢   Mongrel Locks Mutex

ā€¢   Rails Dispatcher is invoked with
    request/response objects

ā€¢   Routing is invoked and returns
    the proper Controller object or
    404 if no route found

ā€¢   Filter chain is invoked

ā€¢   Controllerā€™s Action is called,
    manipulates Models

ā€¢   View is rendered and any after
    ļ¬lters are called

ā€¢   Mongrel Unlocks Mutex

ā€¢   Final response or error page
    returned to client
New dog seeking old
          tricks
ā€¢   Wide array of options for HTTP tools to front mongrel
    clusters

ā€¢   Pen, Pound, Balance, Haproxy ( No static ļ¬le serving, just
    proxies)

ā€¢   Lightspeed can serve static ļ¬les and proxy to mongrel

ā€¢   Apache2.2.x/mod_proxy_balancer can do the same
On the prowl for the
       perfect stack
ā€¢   Pen(no ssl support, no connection rate limiting)

ā€¢   Pound(Falls down under high load, no connection rate limiting)

ā€¢   Haproxy(supports conn rate limits, very high perf, no static ļ¬les
    so more moving parts in a full stack)

ā€¢   Lightspeed(free version is crippled)

ā€¢   Apache2.2.x(Does work but.. bloat, bloat, bloat...)
Nginx:
From Russia, with Love
ā€¢   Seriously bent on performance

ā€¢   Super small resource footprint

ā€¢   Stands up under the heaviest loads without leaking memory

ā€¢   Killer rewrite and proxy modules

ā€¢   Approachable author and growing community
Nginx + Mongrel
ā€¢   This is *the* stack to be on

ā€¢   Only keep apache around for mod_dav_svn

ā€¢   Flexible nginx.conf syntax allows for serving static ļ¬les and
    rails caches and proxying dynamic requests to mongrel

ā€¢   Fast, fast, fast

ā€¢   Did I say itā€™s fast yet?
A few gotchas


ā€¢   Nginx buffers ļ¬le uploads, so no mongrel_upload_progress. This
    will be addressed soon

ā€¢   No connection rate limiting for proxy module yet, this too shall
    pass
A bright future for nginx

ā€¢   mod_rewrite is going away

ā€¢   To be replaced with http_script_module

ā€¢   This will embed the NekoVM(http://nekovm.org/) directly in
    nginx so customizing behavior for rewriting and proxying will
    become inļ¬nitley ļ¬‚exible
Perfect Simple Stack

    ā€¢   Linux

    ā€¢   Nginx

    ā€¢   Mongrel(mongrel_cluster)

    ā€¢   Monit
Swiftiply:
Teaching the Dog new tricks
      http://swiftiply.swiftcore.org
Swiftiply: Evented Mongrel
 ā€¢   Hot patch to Mongrel

 ā€¢   Removes Rubyā€™s Threadā€™s and Socket handling from Mongrel
     Core

 ā€¢   Replace with EventMachine event loop

 ā€¢   Mongrel becomes Single threaded, event driven

 ā€¢   Noticable Speed and IO throughtput increase

 ā€¢   Stands up much better under higher concurrent load without
     starting to slow down or leak memory
But how does a single threaded
event driven mongrel outperform
    a multithreaded mongrel?
ā€¢   Rubyā€™s green threads have a lot of overhead in context switching
    and have to copy a lot of state context for each thread

ā€¢   Mutual exclusion locks are expensive

ā€¢   One process can only do so much IO

ā€¢   Event driven means running in a tight loop and ļ¬ring callbacks in
    response to network ā€˜eventsā€™

ā€¢   Since there is no context switching between threads, a single
    process has less overhead to deal with which allows for higher
    throughput and faster networking IO
Mongrel VS Evented Mongrel
       in a Hello World dogļ¬ght
  Mongrel:
1 concurrent
    user


   Evented
  Mongrel:
1 concurrent
     user
Mongrel:
100 concurrent
     users




Evented Mongrel:
 100 concurrent
      users
Swiftiply Proxy

ā€¢   Event driven proxy, small memory footprint(7-10Mb)

ā€¢   Faster then Haproxy

ā€¢   Did I mention Fast?
How it differs from a
               normal proxy
Standard proxy must know about the        With swiftiply, the backends connect to the proxy. So
ports of all backends. Usually requires   all mongrels get started on the same port and then
    restart to add more backends            they open a persistent connection to the proxy
This means you can start and stop as many
        mongrels as you want and they get auto
               conļ¬gured in the proxy!




This opens the door for scaling the number of mongrels
 automatically in response to increased load on the ļ¬‚y!
The Zen of Xen
Monolithic Linux VS
      Modularized Linux
ā€¢   Old way of thinking is dedicated boxes running all services in
    one big hodgepodge on one kernel

ā€¢   New school is sharply targeted virtualized linux with each VM
    running a single tier or service
We all strive for code
    modularization right?
ā€¢   Why not do the same thing with our servers?

ā€¢   Each VM runs one or two related services

ā€¢   Simpliļ¬es deployment and scaling

ā€¢   Even if you only have one box you absolutely should run
    Xen on it from the start
Old VS New
What happens when you need to
 scale to more then one box?
Old School
ā€¢   Get another box and move mysql on there

ā€¢   Get another box to run some of the other services

ā€¢   Lots of setup required, downtime to migrate

ā€¢   Complex Linux installs with many services running are harder
    to debug when performance problems happen

ā€¢   This *can* scale but is way less ļ¬‚exible
New School
ā€¢   Add another box with Xen installed

ā€¢   Pick a few services that need more resources and migrate
    them *live* to the other machine

ā€¢   Each VM runs one thing and runs it well

ā€¢   Easy to target performance problems

ā€¢   Scales much better
Advanced Clustering
ā€¢   Virtualized compute nodes that boot Xen dom0 off of USB
    thumb drives

ā€¢   SAN storage for all Xen domU(VPSā€™s)

ā€¢   Red Hat Clustering Suite for fencing and cluster quorems

ā€¢   GFS for 100% posix compliant clustered ļ¬lesystem(no shitty
    NFS)

ā€¢   Hardware load balancers or dedicated boxes running Ultra
    Monkey or just straight LVS
Fabric of Compute and
        Storage
ā€¢   When a compute node fails just swap it out for a new one and
    plug in the thumbdrive and youā€™re back in business

ā€¢   Move hot VMā€™s to less loaded nodes easily as they are not tied
    to a single machine

ā€¢   Deploy your app code to one node and then bounce the
    mongrels on all nodes with a clustered ļ¬lesystem like GFS

ā€¢   Fragment and page caching consistency across all nodes
    instantly

ā€¢   Scale from one or 2 VMā€™s to as many as trafļ¬c requires *and*
    back down again once trafļ¬c subsides.
RAM RAM RAM

ā€¢   Most Rails apps are RAM bound way before they are CPU
    bound

ā€¢   Average mongrel size on 64bit EngineYard is 70-120Mb *per*
    mongrel. Slightly less on 32 bit systems

ā€¢   Rmagick and :include the worst culprits

ā€¢   95% of Rails apps will leak memory at one point or another
Rails eats Database
resources for breakfast
ā€¢   Majority of app in the wild have *no* indexes in their
    databases

ā€¢   Learn when and where to apply indexes, it will save your
    ass

ā€¢   ActiveRecord insulates developers from SQL to the point
    of massive ineļ¬ciencies. Look at your logs and see what
    SQL is being generated. Do not fear the SQL and donā€™t
    think you can get away without some denormalization and
    custom SQL if you plan on your app having a chance of
    scaling
Other tips & tricks
ā€¢   *Donā€™t* use ļ¬lesystem sessions, AR or SQLSession or
    memcached if you donā€™t need persistance

ā€¢   script/runner is massively ineļ¬cient. Try as hard as possible
    to not load all of rails in your background processes. Use
    the raw Mysql library and plain ruby if you can and your
    servers will thank you for it

ā€¢   *Do not* use script runner to process incoming email.
    Run a daemon in a loop and poll a mail server with net/
    pop2 or net/imap. Forking a whole rails process for each
    incoming email will never work in a production
    environment period
Rails is great for the
           80/20 rule
ā€¢   But you are on your own when you need the last 20%

ā€¢   Learn how to write custom mongrel handlers for perf critical
    sections of your app

ā€¢   When is optimization not premature?

ā€¢   Ruby is plenty fast, itā€™s rails that tends to be on the slow side

ā€¢   Cache, cache, cache. It doesnt get much faster then service
    cached static html ļ¬les
Parting Thought

ā€¢   Donā€™t take what I or anyone else says about this stuff as
    gospel

ā€¢   Test it and benchmark it for yourself to be sure

ā€¢   Trust but verify and you will stay in good shape
Questions?

More Related Content

What's hot

Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Serverswebhostingguy
Ā 
Reactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServicesReactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServicesStƩphane Maldini
Ā 
Scaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSBrett McLain
Ā 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpdotCloud
Ā 
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017Rick Hightower
Ā 
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackIntroduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackCraig Sebenik
Ā 
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Erik Onnen
Ā 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminarGal Marder
Ā 
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013Christopher Curtin
Ā 
Caching 101: Caching on the JVM (and beyond)
Caching 101: Caching on the JVM (and beyond)Caching 101: Caching on the JVM (and beyond)
Caching 101: Caching on the JVM (and beyond)Louis Jacomet
Ā 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsJonas BonƩr
Ā 
NATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsNATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsDerek Collison
Ā 
Developing with the Go client for Apache Kafka
Developing with the Go client for Apache KafkaDeveloping with the Go client for Apache Kafka
Developing with the Go client for Apache KafkaJoe Stein
Ā 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camelprajods
Ā 
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014Derek Collison
Ā 

What's hot (15)

Beyond Apache: Faster Web Servers
Beyond Apache: Faster Web ServersBeyond Apache: Faster Web Servers
Beyond Apache: Faster Web Servers
Ā 
Reactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServicesReactor, Reactive streams and MicroServices
Reactor, Reactive streams and MicroServices
Ā 
Scaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWS
Ā 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from Yelp
Ā 
High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017High-speed, Reactive Microservices 2017
High-speed, Reactive Microservices 2017
Ā 
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackIntroduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStack
Ā 
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Ā 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
Ā 
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Ā 
Caching 101: Caching on the JVM (and beyond)
Caching 101: Caching on the JVM (and beyond)Caching 101: Caching on the JVM (and beyond)
Caching 101: Caching on the JVM (and beyond)
Ā 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Ā 
NATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsNATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platforms
Ā 
Developing with the Go client for Apache Kafka
Developing with the Go client for Apache KafkaDeveloping with the Go client for Apache Kafka
Developing with the Go client for Apache Kafka
Ā 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
Ā 
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014
Ā 

Viewers also liked

Regulation on the parameterization of islamic financial products by abdul gha...
Regulation on the parameterization of islamic financial products by abdul gha...Regulation on the parameterization of islamic financial products by abdul gha...
Regulation on the parameterization of islamic financial products by abdul gha...Alhuda Centre of Islamic Banking & Economics
Ā 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Newlink
Ā 
2011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-12011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-1Newlink
Ā 
Things will make india devoloped
Things will make india devolopedThings will make india devoloped
Things will make india devolopedJinu Joseph
Ā 
Business model-design-and-innovation-for-competitive-advantage-19352
Business model-design-and-innovation-for-competitive-advantage-19352Business model-design-and-innovation-for-competitive-advantage-19352
Business model-design-and-innovation-for-competitive-advantage-19352Newlink
Ā 

Viewers also liked (6)

Regulation on the parameterization of islamic financial products by abdul gha...
Regulation on the parameterization of islamic financial products by abdul gha...Regulation on the parameterization of islamic financial products by abdul gha...
Regulation on the parameterization of islamic financial products by abdul gha...
Ā 
Kf wr book
Kf wr bookKf wr book
Kf wr book
Ā 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01
Ā 
2011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-12011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-1
Ā 
Things will make india devoloped
Things will make india devolopedThings will make india devoloped
Things will make india devoloped
Ā 
Business model-design-and-innovation-for-competitive-advantage-19352
Business model-design-and-innovation-for-competitive-advantage-19352Business model-design-and-innovation-for-competitive-advantage-19352
Business model-design-and-innovation-for-competitive-advantage-19352
Ā 

Similar to Xen and-the-art-of-rails-deployment2640

Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_monTomas Doran
Ā 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMathew Beane
Ā 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiyaajayrcgmail
Ā 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkTomas Doran
Ā 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceEvan McGee
Ā 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
Ā 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services ArchitectureRanjan Baisak
Ā 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance DrupalChapter Three
Ā 
Cooking a rabbit pie
Cooking a rabbit pieCooking a rabbit pie
Cooking a rabbit pieTomas Doran
Ā 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyserAlex Moskvin
Ā 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStackTesora
Ā 
Machine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkMLMachine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkMLArnab Biswas
Ā 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackMatt Lord
Ā 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
Ā 
Flexible compute
Flexible computeFlexible compute
Flexible computePeter Clapham
Ā 
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Bob Pusateri
Ā 
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and HadoopEventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and HadoopAyon Sinha
Ā 
DrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilityDrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilitycherryhillco
Ā 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
Ā 

Similar to Xen and-the-art-of-rails-deployment2640 (20)

webservers
webserverswebservers
webservers
Ā 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
Ā 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling Magento
Ā 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
Ā 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Ā 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Ā 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
Ā 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
Ā 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
Ā 
Cooking a rabbit pie
Cooking a rabbit pieCooking a rabbit pie
Cooking a rabbit pie
Ā 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
Ā 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
Ā 
Machine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkMLMachine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkML
Ā 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
Ā 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
Ā 
Flexible compute
Flexible computeFlexible compute
Flexible compute
Ā 
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Ā 
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and HadoopEventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Eventual Consistency @WalmartLabs with Kafka, Avro, SolrCloud and Hadoop
Ā 
DrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilityDrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalability
Ā 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
Ā 

More from Newlink

Thefutureofwork 091027180703-phpapp01
Thefutureofwork 091027180703-phpapp01Thefutureofwork 091027180703-phpapp01
Thefutureofwork 091027180703-phpapp01Newlink
Ā 
2011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-12011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-1Newlink
Ā 
Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01
Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01
Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01Newlink
Ā 
Virtualizationonibmbladecenter 1225792256455769-8
Virtualizationonibmbladecenter 1225792256455769-8Virtualizationonibmbladecenter 1225792256455769-8
Virtualizationonibmbladecenter 1225792256455769-8Newlink
Ā 
Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Newlink
Ā 
Voicecon094distrfinal 090427125221-phpapp01
Voicecon094distrfinal 090427125221-phpapp01Voicecon094distrfinal 090427125221-phpapp01
Voicecon094distrfinal 090427125221-phpapp01Newlink
Ā 
Thenewnetworkforthedatacenter 100519185534-phpapp02
Thenewnetworkforthedatacenter 100519185534-phpapp02Thenewnetworkforthedatacenter 100519185534-phpapp02
Thenewnetworkforthedatacenter 100519185534-phpapp02Newlink
Ā 
Avaya sipwithinyourenterprise-090629022848-phpapp02
Avaya sipwithinyourenterprise-090629022848-phpapp02Avaya sipwithinyourenterprise-090629022848-phpapp02
Avaya sipwithinyourenterprise-090629022848-phpapp02Newlink
Ā 
Curso de-asterisk-everano-2007-1204975330483842-4
Curso de-asterisk-everano-2007-1204975330483842-4Curso de-asterisk-everano-2007-1204975330483842-4
Curso de-asterisk-everano-2007-1204975330483842-4Newlink
Ā 
Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02Newlink
Ā 
Vnx series-technical-review-110616214632-phpapp02
Vnx series-technical-review-110616214632-phpapp02Vnx series-technical-review-110616214632-phpapp02
Vnx series-technical-review-110616214632-phpapp02Newlink
Ā 
Imentorstevejobspdf 110826082634-phpapp02
Imentorstevejobspdf 110826082634-phpapp02Imentorstevejobspdf 110826082634-phpapp02
Imentorstevejobspdf 110826082634-phpapp02Newlink
Ā 
Qcon 111122082620-phpapp02
Qcon 111122082620-phpapp02Qcon 111122082620-phpapp02
Qcon 111122082620-phpapp02Newlink
Ā 
Awssummit2011nytimesfinal com-110610112751-phpapp01
Awssummit2011nytimesfinal com-110610112751-phpapp01Awssummit2011nytimesfinal com-110610112751-phpapp01
Awssummit2011nytimesfinal com-110610112751-phpapp01Newlink
Ā 
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)Newlink
Ā 
Apc 091016024613-phpapp01
Apc 091016024613-phpapp01Apc 091016024613-phpapp01
Apc 091016024613-phpapp01Newlink
Ā 
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)Newlink
Ā 
Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Newlink
Ā 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02Newlink
Ā 
Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Newlink
Ā 

More from Newlink (20)

Thefutureofwork 091027180703-phpapp01
Thefutureofwork 091027180703-phpapp01Thefutureofwork 091027180703-phpapp01
Thefutureofwork 091027180703-phpapp01
Ā 
2011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-12011 06-29- sp-seminar- cisco cdn solution-1
2011 06-29- sp-seminar- cisco cdn solution-1
Ā 
Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01
Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01
Ciscounifiedservicedeliverylaunchmay2009final 090512004229-phpapp01
Ā 
Virtualizationonibmbladecenter 1225792256455769-8
Virtualizationonibmbladecenter 1225792256455769-8Virtualizationonibmbladecenter 1225792256455769-8
Virtualizationonibmbladecenter 1225792256455769-8
Ā 
Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640
Ā 
Voicecon094distrfinal 090427125221-phpapp01
Voicecon094distrfinal 090427125221-phpapp01Voicecon094distrfinal 090427125221-phpapp01
Voicecon094distrfinal 090427125221-phpapp01
Ā 
Thenewnetworkforthedatacenter 100519185534-phpapp02
Thenewnetworkforthedatacenter 100519185534-phpapp02Thenewnetworkforthedatacenter 100519185534-phpapp02
Thenewnetworkforthedatacenter 100519185534-phpapp02
Ā 
Avaya sipwithinyourenterprise-090629022848-phpapp02
Avaya sipwithinyourenterprise-090629022848-phpapp02Avaya sipwithinyourenterprise-090629022848-phpapp02
Avaya sipwithinyourenterprise-090629022848-phpapp02
Ā 
Curso de-asterisk-everano-2007-1204975330483842-4
Curso de-asterisk-everano-2007-1204975330483842-4Curso de-asterisk-everano-2007-1204975330483842-4
Curso de-asterisk-everano-2007-1204975330483842-4
Ā 
Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02Asterisk presence-im-091015103222-phpapp02
Asterisk presence-im-091015103222-phpapp02
Ā 
Vnx series-technical-review-110616214632-phpapp02
Vnx series-technical-review-110616214632-phpapp02Vnx series-technical-review-110616214632-phpapp02
Vnx series-technical-review-110616214632-phpapp02
Ā 
Imentorstevejobspdf 110826082634-phpapp02
Imentorstevejobspdf 110826082634-phpapp02Imentorstevejobspdf 110826082634-phpapp02
Imentorstevejobspdf 110826082634-phpapp02
Ā 
Qcon 111122082620-phpapp02
Qcon 111122082620-phpapp02Qcon 111122082620-phpapp02
Qcon 111122082620-phpapp02
Ā 
Awssummit2011nytimesfinal com-110610112751-phpapp01
Awssummit2011nytimesfinal com-110610112751-phpapp01Awssummit2011nytimesfinal com-110610112751-phpapp01
Awssummit2011nytimesfinal com-110610112751-phpapp01
Ā 
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Ā 
Apc 091016024613-phpapp01
Apc 091016024613-phpapp01Apc 091016024613-phpapp01
Apc 091016024613-phpapp01
Ā 
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Thenewnetworkforthedatacenter 100519185534-phpapp02 (1)
Ā 
Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640
Ā 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
Ā 
Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640Xen and-the-art-of-rails-deployment2640
Xen and-the-art-of-rails-deployment2640
Ā 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
Ā 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
Ā 
FULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | Delhisoniya singh
Ā 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
Ā 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
Ā 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
Ā 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
Ā 
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
Ā 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
Ā 
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...Patryk Bandurski
Ā 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
Ā 
Hyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your BudgetHyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your BudgetEnjoy Anytime
Ā 
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
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
Ā 
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
Ā 
#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
Ā 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
Ā 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Ā 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Ā 
FULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY šŸ” 8264348440 šŸ” Call Girls in Diplomatic Enclave | Delhi
Ā 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Ā 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
Ā 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Ā 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Ā 
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
Ā 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Ā 
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Ā 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Ā 
Hyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your BudgetHyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad āœØ 7001305949 āœØ Cheap Price Your Budget
Ā 
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
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Ā 
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...
Ā 
#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
Ā 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Ā 

Xen and-the-art-of-rails-deployment2640

  • 1. Xen and the Art of Rails Deployment
  • 2. Who am I? ā€¢ Ezra Zygmuntowicz ā€¢ Rubyist for 4 years ā€¢ Engine Yard Founder and Architect ā€¢ Blog: http://brainspl.at
  • 3. Deploying Rails ā€¢ Details have changed rapidly over the years ā€¢ Many different webservers have come and gone ā€¢ Basics remain the same
  • 4. Full Stack Request/Response Life-Cycle ā€¢ Request comes into gateway server ā€¢ Rewrite rules are evaluated and request gets served directly if itā€™s a static asset ā€¢ Dynamic requests are proxied to one Mongrel in the Mongrel Cluster ā€¢ Mongrel dispatches request through Rails and returns response to client
  • 5. History Lesson ā€¢ CGI ā€¢ Apache1.3.x/mod_fastcgi ā€¢ Lighttpd/fcgi ā€¢ Apache2.x/mod_fcgid ā€¢ Lighttpd/SCGI ā€¢ Lightspeed
  • 6. Enough Already X ā€¢ CGI ā€¢ Apache1.3.x/mod_fastcgi ā€¢ Lighttpd/fcgi ā€¢ Apache2.x/mod_fcgid ā€¢ Lighttpd/SCGI ā€¢ Lightspeed
  • 9. Mongrel is an HTTP Server Library written by Zed Shaw ā€¢ Fast HTTP Parser written in Ragel + C ā€¢ Fast URI Classiļ¬er written in C ā€¢ Stackable Request Handlers ā€¢ Flexible Conļ¬guration ā€¢ Secure and RFC Compliant HTTP Parser
  • 11. Why is Mongrel better? ā€¢ HTTP is a well known and well tooled protocol ā€¢ Mongrel is way easier to setup and use ā€¢ Transparent wire protocol
  • 12. But Rails isnā€™t Thread Safe! ā€¢ Giant Mutex Lock around Rails Dispatch ā€¢ Only one request served at a time by one mongrel ā€¢ Use mongrel_cluster to scale with multiple processes
  • 13. Rails Internal Request/Response Life-Cycle ā€¢ Mongrel Locks Mutex ā€¢ Rails Dispatcher is invoked with request/response objects ā€¢ Routing is invoked and returns the proper Controller object or 404 if no route found ā€¢ Filter chain is invoked ā€¢ Controllerā€™s Action is called, manipulates Models ā€¢ View is rendered and any after ļ¬lters are called ā€¢ Mongrel Unlocks Mutex ā€¢ Final response or error page returned to client
  • 14. New dog seeking old tricks ā€¢ Wide array of options for HTTP tools to front mongrel clusters ā€¢ Pen, Pound, Balance, Haproxy ( No static ļ¬le serving, just proxies) ā€¢ Lightspeed can serve static ļ¬les and proxy to mongrel ā€¢ Apache2.2.x/mod_proxy_balancer can do the same
  • 15. On the prowl for the perfect stack ā€¢ Pen(no ssl support, no connection rate limiting) ā€¢ Pound(Falls down under high load, no connection rate limiting) ā€¢ Haproxy(supports conn rate limits, very high perf, no static ļ¬les so more moving parts in a full stack) ā€¢ Lightspeed(free version is crippled) ā€¢ Apache2.2.x(Does work but.. bloat, bloat, bloat...)
  • 16. Nginx: From Russia, with Love ā€¢ Seriously bent on performance ā€¢ Super small resource footprint ā€¢ Stands up under the heaviest loads without leaking memory ā€¢ Killer rewrite and proxy modules ā€¢ Approachable author and growing community
  • 17. Nginx + Mongrel ā€¢ This is *the* stack to be on ā€¢ Only keep apache around for mod_dav_svn ā€¢ Flexible nginx.conf syntax allows for serving static ļ¬les and rails caches and proxying dynamic requests to mongrel ā€¢ Fast, fast, fast ā€¢ Did I say itā€™s fast yet?
  • 18. A few gotchas ā€¢ Nginx buffers ļ¬le uploads, so no mongrel_upload_progress. This will be addressed soon ā€¢ No connection rate limiting for proxy module yet, this too shall pass
  • 19. A bright future for nginx ā€¢ mod_rewrite is going away ā€¢ To be replaced with http_script_module ā€¢ This will embed the NekoVM(http://nekovm.org/) directly in nginx so customizing behavior for rewriting and proxying will become inļ¬nitley ļ¬‚exible
  • 20. Perfect Simple Stack ā€¢ Linux ā€¢ Nginx ā€¢ Mongrel(mongrel_cluster) ā€¢ Monit
  • 21. Swiftiply: Teaching the Dog new tricks http://swiftiply.swiftcore.org
  • 22. Swiftiply: Evented Mongrel ā€¢ Hot patch to Mongrel ā€¢ Removes Rubyā€™s Threadā€™s and Socket handling from Mongrel Core ā€¢ Replace with EventMachine event loop ā€¢ Mongrel becomes Single threaded, event driven ā€¢ Noticable Speed and IO throughtput increase ā€¢ Stands up much better under higher concurrent load without starting to slow down or leak memory
  • 23. But how does a single threaded event driven mongrel outperform a multithreaded mongrel? ā€¢ Rubyā€™s green threads have a lot of overhead in context switching and have to copy a lot of state context for each thread ā€¢ Mutual exclusion locks are expensive ā€¢ One process can only do so much IO ā€¢ Event driven means running in a tight loop and ļ¬ring callbacks in response to network ā€˜eventsā€™ ā€¢ Since there is no context switching between threads, a single process has less overhead to deal with which allows for higher throughput and faster networking IO
  • 24. Mongrel VS Evented Mongrel in a Hello World dogļ¬ght Mongrel: 1 concurrent user Evented Mongrel: 1 concurrent user
  • 25. Mongrel: 100 concurrent users Evented Mongrel: 100 concurrent users
  • 26. Swiftiply Proxy ā€¢ Event driven proxy, small memory footprint(7-10Mb) ā€¢ Faster then Haproxy ā€¢ Did I mention Fast?
  • 27. How it differs from a normal proxy Standard proxy must know about the With swiftiply, the backends connect to the proxy. So ports of all backends. Usually requires all mongrels get started on the same port and then restart to add more backends they open a persistent connection to the proxy
  • 28. This means you can start and stop as many mongrels as you want and they get auto conļ¬gured in the proxy! This opens the door for scaling the number of mongrels automatically in response to increased load on the ļ¬‚y!
  • 29. The Zen of Xen
  • 30. Monolithic Linux VS Modularized Linux ā€¢ Old way of thinking is dedicated boxes running all services in one big hodgepodge on one kernel ā€¢ New school is sharply targeted virtualized linux with each VM running a single tier or service
  • 31. We all strive for code modularization right? ā€¢ Why not do the same thing with our servers? ā€¢ Each VM runs one or two related services ā€¢ Simpliļ¬es deployment and scaling ā€¢ Even if you only have one box you absolutely should run Xen on it from the start
  • 33. What happens when you need to scale to more then one box?
  • 34. Old School ā€¢ Get another box and move mysql on there ā€¢ Get another box to run some of the other services ā€¢ Lots of setup required, downtime to migrate ā€¢ Complex Linux installs with many services running are harder to debug when performance problems happen ā€¢ This *can* scale but is way less ļ¬‚exible
  • 35. New School ā€¢ Add another box with Xen installed ā€¢ Pick a few services that need more resources and migrate them *live* to the other machine ā€¢ Each VM runs one thing and runs it well ā€¢ Easy to target performance problems ā€¢ Scales much better
  • 36. Advanced Clustering ā€¢ Virtualized compute nodes that boot Xen dom0 off of USB thumb drives ā€¢ SAN storage for all Xen domU(VPSā€™s) ā€¢ Red Hat Clustering Suite for fencing and cluster quorems ā€¢ GFS for 100% posix compliant clustered ļ¬lesystem(no shitty NFS) ā€¢ Hardware load balancers or dedicated boxes running Ultra Monkey or just straight LVS
  • 37. Fabric of Compute and Storage ā€¢ When a compute node fails just swap it out for a new one and plug in the thumbdrive and youā€™re back in business ā€¢ Move hot VMā€™s to less loaded nodes easily as they are not tied to a single machine ā€¢ Deploy your app code to one node and then bounce the mongrels on all nodes with a clustered ļ¬lesystem like GFS ā€¢ Fragment and page caching consistency across all nodes instantly ā€¢ Scale from one or 2 VMā€™s to as many as trafļ¬c requires *and* back down again once trafļ¬c subsides.
  • 38. RAM RAM RAM ā€¢ Most Rails apps are RAM bound way before they are CPU bound ā€¢ Average mongrel size on 64bit EngineYard is 70-120Mb *per* mongrel. Slightly less on 32 bit systems ā€¢ Rmagick and :include the worst culprits ā€¢ 95% of Rails apps will leak memory at one point or another
  • 39. Rails eats Database resources for breakfast ā€¢ Majority of app in the wild have *no* indexes in their databases ā€¢ Learn when and where to apply indexes, it will save your ass ā€¢ ActiveRecord insulates developers from SQL to the point of massive ineļ¬ciencies. Look at your logs and see what SQL is being generated. Do not fear the SQL and donā€™t think you can get away without some denormalization and custom SQL if you plan on your app having a chance of scaling
  • 40. Other tips & tricks ā€¢ *Donā€™t* use ļ¬lesystem sessions, AR or SQLSession or memcached if you donā€™t need persistance ā€¢ script/runner is massively ineļ¬cient. Try as hard as possible to not load all of rails in your background processes. Use the raw Mysql library and plain ruby if you can and your servers will thank you for it ā€¢ *Do not* use script runner to process incoming email. Run a daemon in a loop and poll a mail server with net/ pop2 or net/imap. Forking a whole rails process for each incoming email will never work in a production environment period
  • 41. Rails is great for the 80/20 rule ā€¢ But you are on your own when you need the last 20% ā€¢ Learn how to write custom mongrel handlers for perf critical sections of your app ā€¢ When is optimization not premature? ā€¢ Ruby is plenty fast, itā€™s rails that tends to be on the slow side ā€¢ Cache, cache, cache. It doesnt get much faster then service cached static html ļ¬les
  • 42. Parting Thought ā€¢ Donā€™t take what I or anyone else says about this stuff as gospel ā€¢ Test it and benchmark it for yourself to be sure ā€¢ Trust but verify and you will stay in good shape