SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
ARBYTE
      ETYBRA
       Alistair N. MacLeod
        anm@lokku.com




ltd
Arbyte

  Alistair N.
  MacLeod

Motivation         1 Motivation
Problem
Requirements
Existing Systems
Arbyte

Architecture       2 Architecture
Component
Diagram

Design and
Implementa-
tion
                   3 Design and Implementation
Objects
Processes
IPC

Practicalities     4 Practicalities
Deployment
Project Status
Introduction

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte                 Arbyte - Job queuing and execution framework
Architecture
Component
                       Required system to run jobs
Diagram

Design and
                       Considered gearman, TheSchwartz . . .
Implementa-
tion                   Decided to create wrapper - Arbyte
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Requirements

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements           Fully scalable
Existing Systems
Arbyte                 Modular
Architecture
Component              Logging
Diagram

Design and             Good reliability
Implementa-
tion                   Thor Compliance
Objects
Processes
IPC
                       Batching
Practicalities
Deployment
Project Status
Batching

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte

Architecture           Job specific optimisations
Component
Diagram
                       In main queue
Design and
Implementa-
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Distributed Computing Models

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte
                       Cluster
Architecture
Component
Diagram
                       Grid
Design and
Implementa-
                       MapReduce
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Distributed Computing Models

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte
                       Cluster
Architecture
Component
Diagram
                       Grid
Design and
Implementa-
                       MapReduce
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Gearman

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems   Limitations                       Features
Arbyte

Architecture           Not reliable                      Has multiple manager /
Component                                                queuing daemons
Diagram                No retries
Design and                                                   Scalable
Implementa-            It didn’t work when I tried           No single point of
tion
Objects                it                                    failure
Processes
IPC

Practicalities
Deployment
Project Status
The Schwartz

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements       Limitations                  Features
Existing Systems
Arbyte
                       Single DB store - not        Reliability
Architecture
Component              easily scalable
Diagram

Design and             No batching after
Implementa-
tion                   submission.
Objects
Processes              Relational DB overhead
IPC

Practicalities
Deployment
Project Status
Helios

    Arbyte

  Alistair N.
  MacLeod

Motivation         Layer over TheSchwartz
Problem
Requirements
Existing Systems
Arbyte

Architecture
Component
Diagram            Limitations                   Features
Design and
Implementa-            Same as TheSchwartz           Manages worker processes
tion
Objects                Doesn’t add batching or       Adds XML Job submission
Processes
IPC                    change the fundamental        format and web interface
Practicalities         architecture
Deployment
Project Status
Non-Perl

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte

Architecture
                       Possible but not as good for hacking on, integrating
Component
Diagram
                       components.
Design and             We mostly have perl skills.
Implementa-
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Considered

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte
                       Torque
Architecture
Component
Diagram                Hadoop
Design and
Implementa-
                       Dr. Queue
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Back to Arbyte

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte                 Modular framework for job queuing and execution
Architecture
Component              Flexible, Customisable
Diagram

Design and
                       Can be used with many other systems
Implementa-
tion
                           e.g. Gearman, with batching, reliability and retries
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Job Producers   JobBuffer                  JobRunner     Helios
                           Manager
Job Producers   JobBuffer                  JobRunner    Gearman
                           Manager
Job Producers   JobBuffer                  JobRunner     Simple

                               Arbyte Boundary
                                                      JobExecutor

                                                      JobExecutor

                                                      JobExecutor
Job Producers   JobBuffer                  JobRunner     Helios
                              Manager
   Job Producers   JobBuffer                  JobRunner    Gearman
                              Manager
   Job Producers   JobBuffer                  JobRunner     Simple

                                  Arbyte Boundary
                                                         JobExecutor

                                                         JobExecutor

                                                         JobExecutor



Responsibilities
    Storing Jobs
    Job Specific Optimisations
    Batching
    Priorities
Notes
    Currently have JobBuffer::Simple
Job Producers   JobBuffer                  JobRunner     Helios
                              Manager
   Job Producers   JobBuffer                  JobRunner    Gearman
                              Manager
   Job Producers   JobBuffer                  JobRunner     Simple

                                  Arbyte Boundary
                                                         JobExecutor

                                                         JobExecutor

                                                         JobExecutor



Responsibilities
    Logging
    Retries
    Basic load balancing
Notes
    Only “active” component
Job Producers   JobBuffer                    JobRunner     Helios
                                Manager
   Job Producers   JobBuffer                    JobRunner    Gearman
                                Manager
   Job Producers   JobBuffer                    JobRunner     Simple

                                    Arbyte Boundary
                                                           JobExecutor

                                                           JobExecutor

                                                           JobExecutor



Responsibilities
    Arrange for Job Execution
Notes
    Consistent interface
Job Producers   JobBuffer                       JobRunner     Helios
                                  Manager
  Job Producers   JobBuffer                       JobRunner    Gearman
                                  Manager
  Job Producers   JobBuffer                       JobRunner     Simple

                                      Arbyte Boundary
                                                             JobExecutor

                                                             JobExecutor

                                                             JobExecutor



Notes
   JobRunner::Simple is implemented
         Forks a helper process
   Others are examples (todo)
Job Producers   JobBuffer                    JobRunner     Helios
                               Manager
   Job Producers   JobBuffer                    JobRunner    Gearman
                               Manager
   Job Producers   JobBuffer                    JobRunner     Simple

                                    Arbyte Boundary
                                                           JobExecutor

                                                           JobExecutor

                                                           JobExecutor



Responsibilities
    Run Job code
    Report success / failure
Notes
    Classes correspond to Job classes
Object Implementation: Options

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte

Architecture           Homemade
Component
Diagram
                       Moose
Design and
Implementa-
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Object Implementation: Choice

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte
                       Using homemade objects
Architecture
Component
Diagram
                       All hashes
Design and
Implementa-
                       AUTOLOADed get and set methods
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Processes

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
                       No threads
Existing Systems
Arbyte                 JobBuffer
Architecture
Component
                       JobRunner
Diagram
                           Will likely have own processes
Design and
Implementa-                e.g. JobRunnerHelper
tion
Objects                Manager
Processes
IPC                        StatusAccepter
Practicalities
Deployment
Project Status
IPC Requirements

    Arbyte

  Alistair N.
  MacLeod

Motivation         Wanted something with:
Problem
Requirements           Easy way to serverify an object
Existing Systems
Arbyte
                       Stub generation
Architecture
Component
Diagram
                       Parameter passing
Design and             Exceptions
Implementa-
tion
Objects
                       Timeouts
Processes
IPC                    Security
Practicalities
Deployment
                       Garbage collection
Project Status
Remote Object System

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte                 Object Oriented Design RMI like system
Architecture
Component
                       Assumed RMI on CPAN (Ruby has it, DRb) but no
Diagram
                           Feel like fixing this?
Design and
Implementa-
tion                   Had to make do
Objects
Processes
IPC

Practicalities
Deployment
Project Status
IPC: Implementation Options

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
                   Considered
Arbyte

Architecture
                       GRID::Machine
Component
Diagram                Distributed::Process
Design and
Implementa-            RPC::Serialized
tion
Objects                RCGI - RPC with CGI server
Processes
IPC

Practicalities
Deployment
Project Status
IPC: Implementation Choice

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
                   Event::RPC
Requirements
Existing Systems       Closest to RMI
Arbyte

Architecture           Maintained
Component
Diagram                Has (some) timeouts
Design and
Implementa-            Propagates Exceptions
tion
Objects
Processes
                       Confusing - capabilities not clear
IPC
                       Using some hackery to make it Good Enough
Practicalities
Deployment
Project Status
Deployment Hardware

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte

Architecture           Own Servers
Component
Diagram

Design and               Cloud
Implementa-
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Grid Management Software

    Arbyte

  Alistair N.
  MacLeod

Motivation         To Manage
Problem
Requirements           Booting
Existing Systems
Arbyte
                       Package distribution
Architecture
Component
Diagram
                       Configuration
Design and         For example
Implementa-
tion
Objects
                       RPMs
Processes
IPC                    Puppet
Practicalities
Deployment
                       Wigwam
Project Status
Project Status

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
                   Now
Requirements
Existing Systems       Running in parallel with production system
Arbyte

Architecture       Todo
Component
Diagram                Better JobBuffers
Design and
Implementa-            Better JobRunners
tion
Objects
Processes
                       Worker capabilities?
IPC
                       Optimise
Practicalities
Deployment
Project Status
The Route to CPAN

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte                Object system
Architecture
Component
                      Config system
Diagram

Design and
                      High level documentation
Implementa-
tion                  More tests
Objects
Processes
IPC

Practicalities
Deployment
Project Status
Questions

    Arbyte

  Alistair N.
  MacLeod

Motivation
Problem
Requirements
Existing Systems
Arbyte

Architecture
Component
Diagram
                   Questions
Design and
Implementa-
tion
Objects
Processes
IPC

Practicalities
Deployment
Project Status

Más contenido relacionado

Similar a Arbyte - A modular, flexible, scalable job queing and execution system

Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activitiAlfresco Software
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiToni de la Fuente
 
Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)Joram Barrez
 
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Atlassian
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17sakpob
 
Agile labs 2011
Agile labs   2011Agile labs   2011
Agile labs 2011vpraghu
 
XPages is Workflow's new best friend
XPages is Workflow's new best friendXPages is Workflow's new best friend
XPages is Workflow's new best friendStephan H. Wissel
 
Improving UX through Application Lifecycle Management
Improving UX through Application Lifecycle ManagementImproving UX through Application Lifecycle Management
Improving UX through Application Lifecycle Managementgoodfriday
 
Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?Adis Jugo
 
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...Cloudera, Inc.
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxDarren Sim
 
2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introduction2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introductionMike Marin
 
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...manssandstrom
 
Introduction to Ember.js and how we used it at FlowPro.io
Introduction to Ember.js and how we used it at FlowPro.ioIntroduction to Ember.js and how we used it at FlowPro.io
Introduction to Ember.js and how we used it at FlowPro.ioPaul Knittel
 
RESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMRESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMoslc
 
Intro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUGIntro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUGRay Ploski
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Ryan Cuprak
 
Simon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architectSimon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architectdrewz lin
 
Ejb course in-mumbai
Ejb course in-mumbaiEjb course in-mumbai
Ejb course in-mumbaivibrantuser
 

Similar a Arbyte - A modular, flexible, scalable job queing and execution system (20)

Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activiti
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - Activiti
 
Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)Activiti in Action (Devoxx 2010)
Activiti in Action (Devoxx 2010)
 
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17
 
Agile labs 2011
Agile labs   2011Agile labs   2011
Agile labs 2011
 
XPages is Workflow's new best friend
XPages is Workflow's new best friendXPages is Workflow's new best friend
XPages is Workflow's new best friend
 
Improving UX through Application Lifecycle Management
Improving UX through Application Lifecycle ManagementImproving UX through Application Lifecycle Management
Improving UX through Application Lifecycle Management
 
Introducing spring
Introducing springIntroducing spring
Introducing spring
 
Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?
 
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
 
2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introduction2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introduction
 
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
 
Introduction to Ember.js and how we used it at FlowPro.io
Introduction to Ember.js and how we used it at FlowPro.ioIntroduction to Ember.js and how we used it at FlowPro.io
Introduction to Ember.js and how we used it at FlowPro.io
 
RESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMRESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALM
 
Intro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUGIntro to Drools - St Louis Gateway JUG
Intro to Drools - St Louis Gateway JUG
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
 
Simon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architectSimon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architect
 
Ejb course in-mumbai
Ejb course in-mumbaiEjb course in-mumbai
Ejb course in-mumbai
 

Más de lokku

Geocoding Overview
Geocoding OverviewGeocoding Overview
Geocoding Overviewlokku
 
OpenCage Data and sustainable business models for open data
OpenCage Data and sustainable business models for open data OpenCage Data and sustainable business models for open data
OpenCage Data and sustainable business models for open data lokku
 
Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014
Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014
Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014lokku
 
A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data  A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data lokku
 
Geo-search-location-based-results-for-site-search
Geo-search-location-based-results-for-site-searchGeo-search-location-based-results-for-site-search
Geo-search-location-based-results-for-site-searchlokku
 
Geocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR event
Geocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR eventGeocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR event
Geocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR eventlokku
 
Nestoria new design
Nestoria new designNestoria new design
Nestoria new designlokku
 
CSS::SpriteMaker in action!
CSS::SpriteMaker in action!CSS::SpriteMaker in action!
CSS::SpriteMaker in action!lokku
 
Reducing the technical hurdle - why we started OpenCage Data
Reducing the technical hurdle - why we started OpenCage DataReducing the technical hurdle - why we started OpenCage Data
Reducing the technical hurdle - why we started OpenCage Datalokku
 
Css sprite_maker-1
Css  sprite_maker-1Css  sprite_maker-1
Css sprite_maker-1lokku
 
Nestoria case study - The effective use of geo-data for search marketing
Nestoria case study - The effective use of geo-data for search marketingNestoria case study - The effective use of geo-data for search marketing
Nestoria case study - The effective use of geo-data for search marketinglokku
 
The Nestoria GeoChallenge
The Nestoria GeoChallengeThe Nestoria GeoChallenge
The Nestoria GeoChallengelokku
 
Geo-Data for Search Marketing SEM & SEO
Geo-Data for Search Marketing SEM & SEOGeo-Data for Search Marketing SEM & SEO
Geo-Data for Search Marketing SEM & SEOlokku
 
Making using OSM data simpler - OpenCage Data
Making using OSM data simpler - OpenCage Data Making using OSM data simpler - OpenCage Data
Making using OSM data simpler - OpenCage Data lokku
 
What’s next in mapping for portals? ppw2012
What’s next in mapping for portals? ppw2012What’s next in mapping for portals? ppw2012
What’s next in mapping for portals? ppw2012lokku
 
How Nestoria switched to OpenStreetMap maps
How Nestoria switched to OpenStreetMap mapsHow Nestoria switched to OpenStreetMap maps
How Nestoria switched to OpenStreetMap mapslokku
 
Remote Geocoding
Remote GeocodingRemote Geocoding
Remote Geocodinglokku
 
Lessons learned in doing lots with few people
Lessons learned in  doing lots with few peopleLessons learned in  doing lots with few people
Lessons learned in doing lots with few peoplelokku
 
Mapstraction
MapstractionMapstraction
Mapstractionlokku
 
Bar Camp London 7
Bar Camp London 7Bar Camp London 7
Bar Camp London 7lokku
 

Más de lokku (20)

Geocoding Overview
Geocoding OverviewGeocoding Overview
Geocoding Overview
 
OpenCage Data and sustainable business models for open data
OpenCage Data and sustainable business models for open data OpenCage Data and sustainable business models for open data
OpenCage Data and sustainable business models for open data
 
Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014
Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014
Presenting the OpenCage Geocoder at #londonapi 17 Sept 2014
 
A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data  A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data
 
Geo-search-location-based-results-for-site-search
Geo-search-location-based-results-for-site-searchGeo-search-location-based-results-for-site-search
Geo-search-location-based-results-for-site-search
 
Geocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR event
Geocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR eventGeocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR event
Geocoding India - talk delivered on 31 Jan 2014 at the Bangalore goeBLR event
 
Nestoria new design
Nestoria new designNestoria new design
Nestoria new design
 
CSS::SpriteMaker in action!
CSS::SpriteMaker in action!CSS::SpriteMaker in action!
CSS::SpriteMaker in action!
 
Reducing the technical hurdle - why we started OpenCage Data
Reducing the technical hurdle - why we started OpenCage DataReducing the technical hurdle - why we started OpenCage Data
Reducing the technical hurdle - why we started OpenCage Data
 
Css sprite_maker-1
Css  sprite_maker-1Css  sprite_maker-1
Css sprite_maker-1
 
Nestoria case study - The effective use of geo-data for search marketing
Nestoria case study - The effective use of geo-data for search marketingNestoria case study - The effective use of geo-data for search marketing
Nestoria case study - The effective use of geo-data for search marketing
 
The Nestoria GeoChallenge
The Nestoria GeoChallengeThe Nestoria GeoChallenge
The Nestoria GeoChallenge
 
Geo-Data for Search Marketing SEM & SEO
Geo-Data for Search Marketing SEM & SEOGeo-Data for Search Marketing SEM & SEO
Geo-Data for Search Marketing SEM & SEO
 
Making using OSM data simpler - OpenCage Data
Making using OSM data simpler - OpenCage Data Making using OSM data simpler - OpenCage Data
Making using OSM data simpler - OpenCage Data
 
What’s next in mapping for portals? ppw2012
What’s next in mapping for portals? ppw2012What’s next in mapping for portals? ppw2012
What’s next in mapping for portals? ppw2012
 
How Nestoria switched to OpenStreetMap maps
How Nestoria switched to OpenStreetMap mapsHow Nestoria switched to OpenStreetMap maps
How Nestoria switched to OpenStreetMap maps
 
Remote Geocoding
Remote GeocodingRemote Geocoding
Remote Geocoding
 
Lessons learned in doing lots with few people
Lessons learned in  doing lots with few peopleLessons learned in  doing lots with few people
Lessons learned in doing lots with few people
 
Mapstraction
MapstractionMapstraction
Mapstraction
 
Bar Camp London 7
Bar Camp London 7Bar Camp London 7
Bar Camp London 7
 

Último

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Último (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Arbyte - A modular, flexible, scalable job queing and execution system

  • 1. ARBYTE ETYBRA Alistair N. MacLeod anm@lokku.com ltd
  • 2. Arbyte Alistair N. MacLeod Motivation 1 Motivation Problem Requirements Existing Systems Arbyte Architecture 2 Architecture Component Diagram Design and Implementa- tion 3 Design and Implementation Objects Processes IPC Practicalities 4 Practicalities Deployment Project Status
  • 3. Introduction Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Arbyte - Job queuing and execution framework Architecture Component Required system to run jobs Diagram Design and Considered gearman, TheSchwartz . . . Implementa- tion Decided to create wrapper - Arbyte Objects Processes IPC Practicalities Deployment Project Status
  • 4. Requirements Arbyte Alistair N. MacLeod Motivation Problem Requirements Fully scalable Existing Systems Arbyte Modular Architecture Component Logging Diagram Design and Good reliability Implementa- tion Thor Compliance Objects Processes IPC Batching Practicalities Deployment Project Status
  • 5. Batching Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Architecture Job specific optimisations Component Diagram In main queue Design and Implementa- tion Objects Processes IPC Practicalities Deployment Project Status
  • 6. Distributed Computing Models Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Cluster Architecture Component Diagram Grid Design and Implementa- MapReduce tion Objects Processes IPC Practicalities Deployment Project Status
  • 7. Distributed Computing Models Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Cluster Architecture Component Diagram Grid Design and Implementa- MapReduce tion Objects Processes IPC Practicalities Deployment Project Status
  • 8. Gearman Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Limitations Features Arbyte Architecture Not reliable Has multiple manager / Component queuing daemons Diagram No retries Design and Scalable Implementa- It didn’t work when I tried No single point of tion Objects it failure Processes IPC Practicalities Deployment Project Status
  • 9. The Schwartz Arbyte Alistair N. MacLeod Motivation Problem Requirements Limitations Features Existing Systems Arbyte Single DB store - not Reliability Architecture Component easily scalable Diagram Design and No batching after Implementa- tion submission. Objects Processes Relational DB overhead IPC Practicalities Deployment Project Status
  • 10. Helios Arbyte Alistair N. MacLeod Motivation Layer over TheSchwartz Problem Requirements Existing Systems Arbyte Architecture Component Diagram Limitations Features Design and Implementa- Same as TheSchwartz Manages worker processes tion Objects Doesn’t add batching or Adds XML Job submission Processes IPC change the fundamental format and web interface Practicalities architecture Deployment Project Status
  • 11. Non-Perl Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Architecture Possible but not as good for hacking on, integrating Component Diagram components. Design and We mostly have perl skills. Implementa- tion Objects Processes IPC Practicalities Deployment Project Status
  • 12. Considered Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Torque Architecture Component Diagram Hadoop Design and Implementa- Dr. Queue tion Objects Processes IPC Practicalities Deployment Project Status
  • 13. Back to Arbyte Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Modular framework for job queuing and execution Architecture Component Flexible, Customisable Diagram Design and Can be used with many other systems Implementa- tion e.g. Gearman, with batching, reliability and retries Objects Processes IPC Practicalities Deployment Project Status
  • 14. Job Producers JobBuffer JobRunner Helios Manager Job Producers JobBuffer JobRunner Gearman Manager Job Producers JobBuffer JobRunner Simple Arbyte Boundary JobExecutor JobExecutor JobExecutor
  • 15. Job Producers JobBuffer JobRunner Helios Manager Job Producers JobBuffer JobRunner Gearman Manager Job Producers JobBuffer JobRunner Simple Arbyte Boundary JobExecutor JobExecutor JobExecutor Responsibilities Storing Jobs Job Specific Optimisations Batching Priorities Notes Currently have JobBuffer::Simple
  • 16. Job Producers JobBuffer JobRunner Helios Manager Job Producers JobBuffer JobRunner Gearman Manager Job Producers JobBuffer JobRunner Simple Arbyte Boundary JobExecutor JobExecutor JobExecutor Responsibilities Logging Retries Basic load balancing Notes Only “active” component
  • 17. Job Producers JobBuffer JobRunner Helios Manager Job Producers JobBuffer JobRunner Gearman Manager Job Producers JobBuffer JobRunner Simple Arbyte Boundary JobExecutor JobExecutor JobExecutor Responsibilities Arrange for Job Execution Notes Consistent interface
  • 18. Job Producers JobBuffer JobRunner Helios Manager Job Producers JobBuffer JobRunner Gearman Manager Job Producers JobBuffer JobRunner Simple Arbyte Boundary JobExecutor JobExecutor JobExecutor Notes JobRunner::Simple is implemented Forks a helper process Others are examples (todo)
  • 19. Job Producers JobBuffer JobRunner Helios Manager Job Producers JobBuffer JobRunner Gearman Manager Job Producers JobBuffer JobRunner Simple Arbyte Boundary JobExecutor JobExecutor JobExecutor Responsibilities Run Job code Report success / failure Notes Classes correspond to Job classes
  • 20. Object Implementation: Options Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Architecture Homemade Component Diagram Moose Design and Implementa- tion Objects Processes IPC Practicalities Deployment Project Status
  • 21. Object Implementation: Choice Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Using homemade objects Architecture Component Diagram All hashes Design and Implementa- AUTOLOADed get and set methods tion Objects Processes IPC Practicalities Deployment Project Status
  • 22. Processes Arbyte Alistair N. MacLeod Motivation Problem Requirements No threads Existing Systems Arbyte JobBuffer Architecture Component JobRunner Diagram Will likely have own processes Design and Implementa- e.g. JobRunnerHelper tion Objects Manager Processes IPC StatusAccepter Practicalities Deployment Project Status
  • 23. IPC Requirements Arbyte Alistair N. MacLeod Motivation Wanted something with: Problem Requirements Easy way to serverify an object Existing Systems Arbyte Stub generation Architecture Component Diagram Parameter passing Design and Exceptions Implementa- tion Objects Timeouts Processes IPC Security Practicalities Deployment Garbage collection Project Status
  • 24. Remote Object System Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Object Oriented Design RMI like system Architecture Component Assumed RMI on CPAN (Ruby has it, DRb) but no Diagram Feel like fixing this? Design and Implementa- tion Had to make do Objects Processes IPC Practicalities Deployment Project Status
  • 25. IPC: Implementation Options Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Considered Arbyte Architecture GRID::Machine Component Diagram Distributed::Process Design and Implementa- RPC::Serialized tion Objects RCGI - RPC with CGI server Processes IPC Practicalities Deployment Project Status
  • 26. IPC: Implementation Choice Arbyte Alistair N. MacLeod Motivation Problem Event::RPC Requirements Existing Systems Closest to RMI Arbyte Architecture Maintained Component Diagram Has (some) timeouts Design and Implementa- Propagates Exceptions tion Objects Processes Confusing - capabilities not clear IPC Using some hackery to make it Good Enough Practicalities Deployment Project Status
  • 27. Deployment Hardware Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Architecture Own Servers Component Diagram Design and Cloud Implementa- tion Objects Processes IPC Practicalities Deployment Project Status
  • 28. Grid Management Software Arbyte Alistair N. MacLeod Motivation To Manage Problem Requirements Booting Existing Systems Arbyte Package distribution Architecture Component Diagram Configuration Design and For example Implementa- tion Objects RPMs Processes IPC Puppet Practicalities Deployment Wigwam Project Status
  • 29. Project Status Arbyte Alistair N. MacLeod Motivation Problem Now Requirements Existing Systems Running in parallel with production system Arbyte Architecture Todo Component Diagram Better JobBuffers Design and Implementa- Better JobRunners tion Objects Processes Worker capabilities? IPC Optimise Practicalities Deployment Project Status
  • 30. The Route to CPAN Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Object system Architecture Component Config system Diagram Design and High level documentation Implementa- tion More tests Objects Processes IPC Practicalities Deployment Project Status
  • 31. Questions Arbyte Alistair N. MacLeod Motivation Problem Requirements Existing Systems Arbyte Architecture Component Diagram Questions Design and Implementa- tion Objects Processes IPC Practicalities Deployment Project Status