SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
☔

VERTEBRA
Bringing the Cloud Down To Earth

      Jayson Vantuyl
        Chief Systems Architect
        Engine Yard, Inc.
Who Is This Guy?

Jayson Vantuyl
  Chief Systems Architect /
  Founder
  Architecting Large
  Networks Since 1994
Engine Yard, Inc.
  Large Hosting Provider
  focused on hosting Ruby
  Applications
  Managing Over 2,000
  Virtual Servers
The Classic Blockers


My existing resources are not in the cloud.
A critical component is not in the cloud.
Critical components don’t fit together.
I’m on a budget: small first, scale later.
My boss wants it all (or some of it) in-house.
Fog Computing

It’s a Cloud, but it’s “down
to Earth”. Fog, get it?

Focus on What, Not Where

Clouds Without Borders

Don’t Rain On My Parade

A Sky Full Of Clouds
The Nuts and Bolts

                                  Agents

Agents

XMPP
                                  XMPP
Discovery

Security              Security                Workflow
                          &        Resource    Engine
                                   Database
                      Discovery
XMPP

XML Messaging and           Ordered Message Delivery,
Presence Protocol           Presence

IETF Standard (RFC 3920,    Many Implementations,
3921)                       Designed To Be Extensible

Each Connection Is          Server-to-Server Security via
Essentially Two Streaming   Dial-Back
XML Documents
                            Application-Level Reliability
Authentication              via SRV DNS Records

Transport Security
Resources


Every point of control in the system is described
by a set of a “resources” (much like a URL).
These resources need not be unique in the cloud.
They are organized into hierarchies.
They are the point of abstraction.
Some Possible Resources
                            bob@mycompany.com:      sally@mycompany.com:
                               /us/ny/new_york         /ca/qc/montreal
Each box is an agent that      /sales/copy_writer      /sales/rep
offers operations on the    jack@mycompany.com:     jill@mycompany.com:
listed resources               /us/dc/washington       /us/fl/tampa
                               /research/weapons       /ops/helpdesk
                               /clearance/s
                               /clearance/c
Geography                      /clearance/ers
                               /clearance/rs

                            web@mycompany.com:      mail@mycompany.com:
Organizational Structure       /net/tcpip              /net/tcpip
                               /server/http            /server/smtp
                               /blog                   /service/mailer

Security Clearance          us_sec@mycompany.com:   ca_sec@mycompany.com:
                               /security               /security
                               /us                     /ca
Type Of Service             us_hr@mycompany.com:    ca_hr@mycompany.com:
                               /hr                     /hr
                               /us                     /ca
Operations

Fundamental Unit Of Work In Vertebra
Shaped Like Remote Procedure Call
Receives Parameters In A Namespace
Discover Agents That Provide The Resources
Request — Ack — Result* — Done
Scope (i.e. shotgun or sniper?)
Example Operations
                              instant_message(who=/sales,msg=”Goodbye.”)

                              fire(who=/manage/sales)

                              kick_out(who=/security/sales)

Completely Unrealistic        add_entry(site=/blog,message=”Fired Sales!”)
Example
                              bob@mycompany.com:        sally@mycompany.com:
                                 /us/ny/new_york           /ca/qc/montreal
                                 /sales/copy_writer        /sales/rep
Let’s Fire Some People, The
                              us_hr@mycompany.com:      ca_hr@mycompany.com:
Entire Sales Dept.               /manage                   /manage
                                 /us                       /ca


Then Blog About It            us_sec@mycompany.com:
                                 /security
                                                        ca_sec@mycompany.com:
                                                           /security
                                 /us                       /ca

                              web@mycompany.com:
                                 /net/tcpip
                                 /server/http
                                 /blog
An Ominous Message
                              instant_message(who=/sales,msg=”Goodbye.”)

“who” is a resource,          fire(who=/manage/sales)
discovery is done on          kick_out(who=/security/sales)
/sales
                              add_entry(site=/blog,message=”Fired Sales!”)


We discover                   bob@mycompany.com:
                                 /us/ny/new_york
                                                        sally@mycompany.com:
                                                           /ca/qc/montreal
sally@mycompany.com and          /sales/copy_writer        /sales/rep

bob@mycompany.com             us_hr@mycompany.com:      ca_hr@mycompany.com:
                                 /manage                   /manage
                                 /us                       /ca

Both get “instant_message”    us_sec@mycompany.com:     ca_sec@mycompany.com:
operation, and the agent on      /security
                                 /us
                                                           /security
                                                           /ca
their computer delivers the
message, “Goodbye.”           web@mycompany.com:
                                 /net/tcpip
                                 /server/http
                                 /blog
You’re Fired!
                              instant_message(who=/sales,msg=”Goodbye.”)

                              fire(who=/manage/sales)
“who” is a resource,
discovery is done on          kick_out(who=/security/sales)

/manage/sales                 add_entry(site=/blog,message=”Fired Sales!”)

                              bob@mycompany.com:        sally@mycompany.com:
We discover us_hr and            /us/ny/new_york
                                 /sales/copy_writer
                                                           /ca/qc/montreal
                                                           /sales/rep
ca_hr, which both offer
                              us_hr@mycompany.com:      ca_hr@mycompany.com:
/manage                          /manage                   /manage
                                 /us                       /ca


the “fire” operation goes to   us_sec@mycompany.com:
                                 /security
                                                        ca_sec@mycompany.com:
                                                           /security
the the HR departments for       /us                       /ca

both countries                web@mycompany.com:
                                 /net/tcpip
                                 /server/http
                                 /blog
Kick ‘Em Out!
                                 instant_message(who=/sales,msg=”Goodbye.”)

“who” is a resource,             fire(who=/manage/sales)
discovery is done on             kick_out(who=/security/sales)
/security/sales
                                 add_entry(site=/blog,message=”Fired Sales!”)


We discover us_sec and           bob@mycompany.com:
                                    /us/ny/new_york
                                                           sally@mycompany.com:
                                                              /ca/qc/montreal
ca_sec, which provide               /sales/copy_writer        /sales/rep

/security                        us_hr@mycompany.com:      ca_hr@mycompany.com:
                                    /manage                   /manage
                                    /us                       /ca

Security (in both countries)     us_sec@mycompany.com:     ca_sec@mycompany.com:
gets the operation to kick out      /security
                                    /us
                                                              /security
                                                              /ca
everybody that matches /
sales                            web@mycompany.com:
                                    /net/tcpip
                                    /server/http
                                    /blog
Gloat!
                                  instant_message(who=/sales,msg=”Goodbye.”)

                                  fire(who=/manage/sales)
“site” is a resource, discovery
is performed on                   kick_out(who=/security/sales)

/blog                             add_entry(site=/blog,message=”Fired Sales!”)

                                  bob@mycompany.com:        sally@mycompany.com:
We discover                          /us/ny/new_york
                                     /sales/copy_writer
                                                               /ca/qc/montreal
                                                               /sales/rep
web@mycompany.com,
                                  us_hr@mycompany.com:      ca_hr@mycompany.com:
which provides /blog                 /manage                   /manage
                                     /us                       /ca


The operation to post the         us_sec@mycompany.com:
                                     /security
                                                            ca_sec@mycompany.com:
                                                               /security
blog entry goes to the web           /us                       /ca

server agent.                     web@mycompany.com:
                                     /net/tcpip
                                     /server/http
                                     /blog
Get Your Head In The Cloud

Operations in many agents with one request
Replace the “sales” entry with “us” to fire the
whole US workforce
Replace “sales” with “us/ny” to fire the New York
office
Can Subdivide the HR office any time and just
offer the correct resources
Get Your Head In The Cloud

The agents are abstracted.
HR in the US might be done by human with
some CRM.
HR in Canada might be automated, or might be
paper-only, with people doing the work.
Same for security, and the web server.
Reduced To Set Notation
In the abstract, a resource is a set that   There are useful operations on sets of
maps to a set of agents                     resources, such as “coverage”

Resources may be singly inherited           For any operation, the set of
                                            discovered agents is the union of the
The set that maps to a resource is a        sets mapped to by the intersection of
subset of the set that maps to its          the set of requested resources and set
parent                                      of actual resources
What Do We Get Out Of This?

 Computational Patterns   Component Abstraction

   map-reduce               Same Resources,
                            Different Code
   traditional RPC
                            Same Resources, Same
   message passing          Code
   job queue                Different Resources,
                            Same Code
   observer
What I Didn’t Tell You About
Responses from Operations    Resource Advertising
and How They Aggregate
                             Federating Clouds
The RBAC Security
Implementation               Fault-Tolerant, Distributed
                             Core Implementation
The Workflow Engine
                             Monitoring Protocol
The Resource-Keyed
Database                     Job Management Protocol

Intrinsic I18n               Distributed Audit System

Extensible Data Marshaling   Distributed Log System
This innovation brought to you by




Reliability, Ease of Use, Scalability

Mais conteúdo relacionado

Destaque

Intimus Presentatie Voorstelling
Intimus Presentatie VoorstellingIntimus Presentatie Voorstelling
Intimus Presentatie VoorstellingIntimus
 
女人一路走好
女人一路走好女人一路走好
女人一路走好wcjmaomao
 
London Mapping Marathon Lightening Talk at SOTM2008
London Mapping Marathon Lightening Talk at SOTM2008London Mapping Marathon Lightening Talk at SOTM2008
London Mapping Marathon Lightening Talk at SOTM2008Shaun McDonald
 
J81140 d6 educational curriculum & methods
J81140 d6 educational curriculum & methodsJ81140 d6 educational curriculum & methods
J81140 d6 educational curriculum & methodsWilliam Kritsonis
 
Economics 1 1 Notes Lower Version
Economics 1 1 Notes Lower VersionEconomics 1 1 Notes Lower Version
Economics 1 1 Notes Lower Versiongaringshawn
 
Building private-clouds-qconsf
Building private-clouds-qconsfBuilding private-clouds-qconsf
Building private-clouds-qconsfAndrew Shafer
 
Heb Research Proposal 260108
Heb Research Proposal 260108Heb Research Proposal 260108
Heb Research Proposal 260108watchthefly
 
Manufacturing competitiveness of Indian States
Manufacturing competitiveness of Indian StatesManufacturing competitiveness of Indian States
Manufacturing competitiveness of Indian StatesAnshul Pachouri
 
Williams, Monica National Focus On Postmodernism In Higher Education
Williams, Monica National Focus On Postmodernism In Higher EducationWilliams, Monica National Focus On Postmodernism In Higher Education
Williams, Monica National Focus On Postmodernism In Higher EducationWilliam Kritsonis
 
假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务
假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务
假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务zcopdane
 

Destaque (20)

20080714122342
2008071412234220080714122342
20080714122342
 
Intimus Presentatie Voorstelling
Intimus Presentatie VoorstellingIntimus Presentatie Voorstelling
Intimus Presentatie Voorstelling
 
女人一路走好
女人一路走好女人一路走好
女人一路走好
 
Tutorial
TutorialTutorial
Tutorial
 
London Mapping Marathon Lightening Talk at SOTM2008
London Mapping Marathon Lightening Talk at SOTM2008London Mapping Marathon Lightening Talk at SOTM2008
London Mapping Marathon Lightening Talk at SOTM2008
 
J81140 d6 educational curriculum & methods
J81140 d6 educational curriculum & methodsJ81140 d6 educational curriculum & methods
J81140 d6 educational curriculum & methods
 
Web2.0 Atp
Web2.0 AtpWeb2.0 Atp
Web2.0 Atp
 
gopala
gopalagopala
gopala
 
ENT DAY 2 INTRO TO PAUL
ENT DAY 2 INTRO TO PAULENT DAY 2 INTRO TO PAUL
ENT DAY 2 INTRO TO PAUL
 
Economics 1 1 Notes Lower Version
Economics 1 1 Notes Lower VersionEconomics 1 1 Notes Lower Version
Economics 1 1 Notes Lower Version
 
Building private-clouds-qconsf
Building private-clouds-qconsfBuilding private-clouds-qconsf
Building private-clouds-qconsf
 
Fulfillment 3 Psalm 2
Fulfillment 3 Psalm 2Fulfillment 3 Psalm 2
Fulfillment 3 Psalm 2
 
Heb Research Proposal 260108
Heb Research Proposal 260108Heb Research Proposal 260108
Heb Research Proposal 260108
 
Positive attitude
Positive attitude Positive attitude
Positive attitude
 
Manufacturing competitiveness of Indian States
Manufacturing competitiveness of Indian StatesManufacturing competitiveness of Indian States
Manufacturing competitiveness of Indian States
 
Ilike dogs
Ilike dogsIlike dogs
Ilike dogs
 
Istanbul issep2014
Istanbul issep2014Istanbul issep2014
Istanbul issep2014
 
Williams, Monica National Focus On Postmodernism In Higher Education
Williams, Monica National Focus On Postmodernism In Higher EducationWilliams, Monica National Focus On Postmodernism In Higher Education
Williams, Monica National Focus On Postmodernism In Higher Education
 
假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务
假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务
假人攻击器|蚂蚁帝国假人|DDOS攻击业务|DDos业务
 
Court Case 2
Court  Case 2Court  Case 2
Court Case 2
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Vertebra: Bringing The Cloud Down To Earth

  • 1. ☔ VERTEBRA Bringing the Cloud Down To Earth Jayson Vantuyl Chief Systems Architect Engine Yard, Inc.
  • 2. Who Is This Guy? Jayson Vantuyl Chief Systems Architect / Founder Architecting Large Networks Since 1994 Engine Yard, Inc. Large Hosting Provider focused on hosting Ruby Applications Managing Over 2,000 Virtual Servers
  • 3. The Classic Blockers My existing resources are not in the cloud. A critical component is not in the cloud. Critical components don’t fit together. I’m on a budget: small first, scale later. My boss wants it all (or some of it) in-house.
  • 4. Fog Computing It’s a Cloud, but it’s “down to Earth”. Fog, get it? Focus on What, Not Where Clouds Without Borders Don’t Rain On My Parade A Sky Full Of Clouds
  • 5. The Nuts and Bolts Agents Agents XMPP XMPP Discovery Security Security Workflow & Resource Engine Database Discovery
  • 6. XMPP XML Messaging and Ordered Message Delivery, Presence Protocol Presence IETF Standard (RFC 3920, Many Implementations, 3921) Designed To Be Extensible Each Connection Is Server-to-Server Security via Essentially Two Streaming Dial-Back XML Documents Application-Level Reliability Authentication via SRV DNS Records Transport Security
  • 7. Resources Every point of control in the system is described by a set of a “resources” (much like a URL). These resources need not be unique in the cloud. They are organized into hierarchies. They are the point of abstraction.
  • 8. Some Possible Resources bob@mycompany.com: sally@mycompany.com: /us/ny/new_york /ca/qc/montreal Each box is an agent that /sales/copy_writer /sales/rep offers operations on the jack@mycompany.com: jill@mycompany.com: listed resources /us/dc/washington /us/fl/tampa /research/weapons /ops/helpdesk /clearance/s /clearance/c Geography /clearance/ers /clearance/rs web@mycompany.com: mail@mycompany.com: Organizational Structure /net/tcpip /net/tcpip /server/http /server/smtp /blog /service/mailer Security Clearance us_sec@mycompany.com: ca_sec@mycompany.com: /security /security /us /ca Type Of Service us_hr@mycompany.com: ca_hr@mycompany.com: /hr /hr /us /ca
  • 9. Operations Fundamental Unit Of Work In Vertebra Shaped Like Remote Procedure Call Receives Parameters In A Namespace Discover Agents That Provide The Resources Request — Ack — Result* — Done Scope (i.e. shotgun or sniper?)
  • 10. Example Operations instant_message(who=/sales,msg=”Goodbye.”) fire(who=/manage/sales) kick_out(who=/security/sales) Completely Unrealistic add_entry(site=/blog,message=”Fired Sales!”) Example bob@mycompany.com: sally@mycompany.com: /us/ny/new_york /ca/qc/montreal /sales/copy_writer /sales/rep Let’s Fire Some People, The us_hr@mycompany.com: ca_hr@mycompany.com: Entire Sales Dept. /manage /manage /us /ca Then Blog About It us_sec@mycompany.com: /security ca_sec@mycompany.com: /security /us /ca web@mycompany.com: /net/tcpip /server/http /blog
  • 11. An Ominous Message instant_message(who=/sales,msg=”Goodbye.”) “who” is a resource, fire(who=/manage/sales) discovery is done on kick_out(who=/security/sales) /sales add_entry(site=/blog,message=”Fired Sales!”) We discover bob@mycompany.com: /us/ny/new_york sally@mycompany.com: /ca/qc/montreal sally@mycompany.com and /sales/copy_writer /sales/rep bob@mycompany.com us_hr@mycompany.com: ca_hr@mycompany.com: /manage /manage /us /ca Both get “instant_message” us_sec@mycompany.com: ca_sec@mycompany.com: operation, and the agent on /security /us /security /ca their computer delivers the message, “Goodbye.” web@mycompany.com: /net/tcpip /server/http /blog
  • 12. You’re Fired! instant_message(who=/sales,msg=”Goodbye.”) fire(who=/manage/sales) “who” is a resource, discovery is done on kick_out(who=/security/sales) /manage/sales add_entry(site=/blog,message=”Fired Sales!”) bob@mycompany.com: sally@mycompany.com: We discover us_hr and /us/ny/new_york /sales/copy_writer /ca/qc/montreal /sales/rep ca_hr, which both offer us_hr@mycompany.com: ca_hr@mycompany.com: /manage /manage /manage /us /ca the “fire” operation goes to us_sec@mycompany.com: /security ca_sec@mycompany.com: /security the the HR departments for /us /ca both countries web@mycompany.com: /net/tcpip /server/http /blog
  • 13. Kick ‘Em Out! instant_message(who=/sales,msg=”Goodbye.”) “who” is a resource, fire(who=/manage/sales) discovery is done on kick_out(who=/security/sales) /security/sales add_entry(site=/blog,message=”Fired Sales!”) We discover us_sec and bob@mycompany.com: /us/ny/new_york sally@mycompany.com: /ca/qc/montreal ca_sec, which provide /sales/copy_writer /sales/rep /security us_hr@mycompany.com: ca_hr@mycompany.com: /manage /manage /us /ca Security (in both countries) us_sec@mycompany.com: ca_sec@mycompany.com: gets the operation to kick out /security /us /security /ca everybody that matches / sales web@mycompany.com: /net/tcpip /server/http /blog
  • 14. Gloat! instant_message(who=/sales,msg=”Goodbye.”) fire(who=/manage/sales) “site” is a resource, discovery is performed on kick_out(who=/security/sales) /blog add_entry(site=/blog,message=”Fired Sales!”) bob@mycompany.com: sally@mycompany.com: We discover /us/ny/new_york /sales/copy_writer /ca/qc/montreal /sales/rep web@mycompany.com, us_hr@mycompany.com: ca_hr@mycompany.com: which provides /blog /manage /manage /us /ca The operation to post the us_sec@mycompany.com: /security ca_sec@mycompany.com: /security blog entry goes to the web /us /ca server agent. web@mycompany.com: /net/tcpip /server/http /blog
  • 15. Get Your Head In The Cloud Operations in many agents with one request Replace the “sales” entry with “us” to fire the whole US workforce Replace “sales” with “us/ny” to fire the New York office Can Subdivide the HR office any time and just offer the correct resources
  • 16. Get Your Head In The Cloud The agents are abstracted. HR in the US might be done by human with some CRM. HR in Canada might be automated, or might be paper-only, with people doing the work. Same for security, and the web server.
  • 17. Reduced To Set Notation In the abstract, a resource is a set that There are useful operations on sets of maps to a set of agents resources, such as “coverage” Resources may be singly inherited For any operation, the set of discovered agents is the union of the The set that maps to a resource is a sets mapped to by the intersection of subset of the set that maps to its the set of requested resources and set parent of actual resources
  • 18. What Do We Get Out Of This? Computational Patterns Component Abstraction map-reduce Same Resources, Different Code traditional RPC Same Resources, Same message passing Code job queue Different Resources, Same Code observer
  • 19. What I Didn’t Tell You About Responses from Operations Resource Advertising and How They Aggregate Federating Clouds The RBAC Security Implementation Fault-Tolerant, Distributed Core Implementation The Workflow Engine Monitoring Protocol The Resource-Keyed Database Job Management Protocol Intrinsic I18n Distributed Audit System Extensible Data Marshaling Distributed Log System
  • 20. This innovation brought to you by Reliability, Ease of Use, Scalability