atlas lbaas overview
TRANSCRIPT
![Page 1: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/1.jpg)
Atlas LBaaS Overview
September 2012
![Page 2: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/2.jpg)
Atlas Architecture tenets
• Database is the source of truth – Configuration on devices is enforced to match DB
• LBaaS APIs that change state are asynchronous – Operations return as soon as DB is updated
– Devices are updated in the background
• Scaling in Atlas is achieved through – Use of async operations through ActiveMQ
– Use of Cluster of Atlas servers
![Page 3: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/3.jpg)
Atlas Server scalable and HA deployment
![Page 4: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/4.jpg)
Atlas infrastructure dependency
• Atlas infrastructure is based on: – Any Java Server (Jetty, Tomcat, Glassfish, JBOSS, etc.)
– Spring framework (IoC, annotations, xml config)
– JAXB (for generating API objects and mapping to REST)
– Dozer (utility to map between Java classes)
– Abstraction of persistence providers (JPA) => DB, ORM and Transactions
– Abstraction of message queueing (JMS) => Message Queues
– Unit testing framework (SureFire)
![Page 5: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/5.jpg)
Tenant API specification
• Multi-Tenant API • Specification: wiki.openstack.org/Atlas-LB • Follows OpenStack API design recommendations • Determined after careful research into the common
capabilities of open source and commercial load balancers. • Specified using XML Schema file (XSD)
– API POJO classes generated from spec.
• Supports both JSON and XML – JSON payload generated from XML schema – ATOM support skeleton is there
• Can list active extensions • Support account limits
![Page 6: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/6.jpg)
Atlas Plugins and extensions
Core
Extension
A D A P T E R
Core API
Extension API
![Page 7: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/7.jpg)
Atlas Core
![Page 8: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/8.jpg)
Core Resource Model
![Page 9: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/9.jpg)
REST Layer
Persistence Service Layer
(transactions)
Persistence Repository
Layer (ORM)
![Page 10: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/10.jpg)
MQ Consumers
Device Adapter
REST Layer
![Page 11: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/11.jpg)
JAXB (XSD files)
Atlas data-model component
XML request JSON request JAX-RS (CXF)
Resource classes
JAXB object
Atlas API component
Dozer Mapper
1 2 3
4 5
Service classes
Atlas persistence component
Repository Classes
(Hibernate)
Async classes
7
DB
6 8
Atlas API component
Atlas API component
Message Queue (ActiveMQ)
Entity Object
JAXB object
Entity Object
Entity Object
9 Response
![Page 12: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/12.jpg)
Message Queue (ActiveMQ)
Async classes
(Listeners)
Consume message
Atlas persistence component
Repository Classes
(Hibernate)
DB
ID
ReverseProxy Service
Adapter classes
Endpoint config Entity
Object
Entity Object
Entity Object
Network
LB Device LB Device
LB Device LB Device
LB Device
Endpoint config
Reads
1
2 3
4
5
6
7 Device-specific
API 8 Update
status
Atlas adapter component
![Page 13: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/13.jpg)
Adapters
![Page 14: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/14.jpg)
Adapter Tasks
• Minimum sharing with Core – Only what is specified in the interface
• Translates Atlas APIs and semantics to device API or configuration
• Manages IPv4 and IPv6 address pools • Manages devices. Could include onboarding and failure
detection • Manages rollback on failure to ensure device config
stays correct • Decides on device placement for each load balancer • Reports back any errors to core
![Page 15: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/15.jpg)
Core Adapter Contract
![Page 16: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/16.jpg)
Adapter Core Usage interface
![Page 17: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/17.jpg)
Extensions
![Page 18: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/18.jpg)
Rackspace Extended Adapter
![Page 19: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/19.jpg)
Citrix Extended Adapter
![Page 20: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/20.jpg)
Validation Framework
![Page 21: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/21.jpg)
Notification Service
![Page 22: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/22.jpg)
Scheduled Jobs
![Page 23: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/23.jpg)
Atlas Extension Structure
• Extend the core XSD to specify new APIs or extension into existing APIs
• Extend the resource layer
• Extend the Service Layer
• Extend the Repository layer
• Extend the Async layer
• Extend the adapter layer
![Page 24: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/24.jpg)
Example of extending API
![Page 25: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/25.jpg)
packaging
• Java WAR file
• Debian package
• Adapters are built as separate JAR files
• Extensions are built as separate JAR files
![Page 26: Atlas LBaaS overview](https://reader033.vdocuments.us/reader033/viewer/2022052412/557ddbe6d8b42a4e358b48a0/html5/thumbnails/26.jpg)
END