SlideShare a Scribd company logo
1 of 26
Download to read offline
Atlas LBaaS Overview

    September 2012
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
Atlas Server scalable and HA
        deployment
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)
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
Atlas Plugins and extensions


   Core
    API                  A
                         D
               Core
                         A
                         P
 Extension               T
    API                  E
             Extension   R
Atlas Core
Core Resource Model
REST
    Layer




  Persistence
    Service
     Layer
(transactions)




Persistence
Repository
   Layer
  (ORM)
REST
 Layer




   MQ
Consumers




 Device
Adapter
Atlas
                       data-model                         Atlas API
                       component                          component
 XML request
 JSON request                             JAXB object     JAX-RS (CXF)
                          JAXB
         1                                   2              Resource
                       (XSD files)                                       3 JAXB object
      9                                                      classes
          Response
                                           Entity       Entity        4
    Atlas API                        7     Object              5   Entity
                                                        Object                  Dozer
    component                                                      Object
                                                                               Mapper

              Async             Repository
                                                             Service             Atlas API
             classes              Classes
                                                             classes             component
                                (Hibernate)
               8
                                     6        Atlas persistence
Message                                          component
Queue
(ActiveMQ)

                                     DB
Message
 Queue
 (ActiveMQ)
                                                                       Atlas adapter
              1 Consume message                                        component
                                                          Entity
           Async                   4                      Object
                                           ReverseProxy                  Adapter
          classes             Entity                               6
                                              Service                    classes
        (Listeners)           Object                      Endpoint
Entity 3   ID                                              config            Device-specific
         2            8   Update                                         7
Object                    status
                                           Reads                                  API
                                       5
                                           Endpoint
         Repository                         config
           Classes                                                     Network
         (Hibernate)

                      Atlas persistence
                         component

                                                                       LB Device
                                                                        LB Device
              DB                                                          LB Device
                                                                           LB Device
                                                                             LB Device
Adapters
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
Core Adapter Contract
Adapter Core Usage interface
Extensions
Rackspace Extended Adapter
Citrix Extended Adapter
Validation Framework
Notification Service
Scheduled Jobs
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
Example of extending API
packaging
•   Java WAR file
•   Debian package
•   Adapters are built as separate JAR files
•   Extensions are built as separate JAR files
END

More Related Content

What's hot

Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Baruch Sadogursky
 
Clustering In The Wild
Clustering In The WildClustering In The Wild
Clustering In The Wild
Sergio Bossa
 

What's hot (20)

Vertica And Spark: Connecting Computation And Data
Vertica And Spark: Connecting Computation And DataVertica And Spark: Connecting Computation And Data
Vertica And Spark: Connecting Computation And Data
 
Strudel: Framework for Transaction Performance Analyses on SQL/NoSQL Systems
Strudel: Framework for Transaction Performance Analyses on SQL/NoSQL SystemsStrudel: Framework for Transaction Performance Analyses on SQL/NoSQL Systems
Strudel: Framework for Transaction Performance Analyses on SQL/NoSQL Systems
 
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
 
Reflective injection using TypeScript
Reflective injection using TypeScriptReflective injection using TypeScript
Reflective injection using TypeScript
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
 
Deploying Microservice on Docker
Deploying Microservice on DockerDeploying Microservice on Docker
Deploying Microservice on Docker
 
Catalyst optimizer
Catalyst optimizerCatalyst optimizer
Catalyst optimizer
 
.NET Core, ASP.NET Core Course, Session 9
.NET Core, ASP.NET Core Course, Session 9.NET Core, ASP.NET Core Course, Session 9
.NET Core, ASP.NET Core Course, Session 9
 
From I/O To RAM
From I/O To RAMFrom I/O To RAM
From I/O To RAM
 
Reactive programming on Android
Reactive programming on AndroidReactive programming on Android
Reactive programming on Android
 
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
 
Angular Offline Progressive Web Apps With NodeJS
Angular Offline Progressive Web Apps With NodeJSAngular Offline Progressive Web Apps With NodeJS
Angular Offline Progressive Web Apps With NodeJS
 
Data cleaning with the Kurator toolkit: Bridging the gap between conventional...
Data cleaning with the Kurator toolkit: Bridging the gap between conventional...Data cleaning with the Kurator toolkit: Bridging the gap between conventional...
Data cleaning with the Kurator toolkit: Bridging the gap between conventional...
 
.NET Core, ASP.NET Core Course, Session 17
.NET Core, ASP.NET Core Course, Session 17.NET Core, ASP.NET Core Course, Session 17
.NET Core, ASP.NET Core Course, Session 17
 
Clustering In The Wild
Clustering In The WildClustering In The Wild
Clustering In The Wild
 
Making Machine Learning Easy with H2O and WebFlux
Making Machine Learning Easy with H2O and WebFluxMaking Machine Learning Easy with H2O and WebFlux
Making Machine Learning Easy with H2O and WebFlux
 
Streaming ETL for All
Streaming ETL for AllStreaming ETL for All
Streaming ETL for All
 
Apache Spark on HDinsight Training
Apache Spark on HDinsight TrainingApache Spark on HDinsight Training
Apache Spark on HDinsight Training
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks
 

Viewers also liked

Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
OpenStack
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
Sim Janghoon
 

Viewers also liked (8)

Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
Containerizing Network Services - Alon Harel - OpenStack Day Israel 2016
 
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
Aptira presents OpenStack Load Balancing as a Service at Banglore India OSUG ...
 
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaSAutoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
 
The 'Untold' OpenStack Enterprise Customer Stories: Anthony Rees & Alex Tesch...
The 'Untold' OpenStack Enterprise Customer Stories: Anthony Rees & Alex Tesch...The 'Untold' OpenStack Enterprise Customer Stories: Anthony Rees & Alex Tesch...
The 'Untold' OpenStack Enterprise Customer Stories: Anthony Rees & Alex Tesch...
 
L4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi NetworksL4-L7 Application Services with Avi Networks
L4-L7 Application Services with Avi Networks
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
Linux kernel architecture
Linux kernel architectureLinux kernel architecture
Linux kernel architecture
 
OpenStack Neutron Tutorial
OpenStack Neutron TutorialOpenStack Neutron Tutorial
OpenStack Neutron Tutorial
 

Similar to Atlas LBaaS overview

OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2
Ilya Katsov
 
Comparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original SwiftComparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original Swift
Etsuji Nakai
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
Mert Çalışkan
 
Apache Aries Overview
Apache Aries   OverviewApache Aries   Overview
Apache Aries Overview
Ian Robinson
 
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
IndicThreads
 
OpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud SoftwareOpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud Software
openstackindia
 

Similar to Atlas LBaaS overview (20)

Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sina
 
Jlook open api platform-sysdevguide
Jlook open api platform-sysdevguideJlook open api platform-sysdevguide
Jlook open api platform-sysdevguide
 
OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2
 
Comparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original SwiftComparing GlusterFS-SwiftAPI with Original Swift
Comparing GlusterFS-SwiftAPI with Original Swift
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
 
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
ARC301 Intro to Chaos Monkey & the Simian Army - AWS re: Invent 2012
 
Java hibernate orm implementation tool
Java hibernate   orm implementation toolJava hibernate   orm implementation tool
Java hibernate orm implementation tool
 
Hibernate 3
Hibernate 3Hibernate 3
Hibernate 3
 
Containers, orchestration and security, oh my!
Containers, orchestration and security, oh my!Containers, orchestration and security, oh my!
Containers, orchestration and security, oh my!
 
ElephantDB
ElephantDBElephantDB
ElephantDB
 
Apache Aries Overview
Apache Aries   OverviewApache Aries   Overview
Apache Aries Overview
 
Hibernate
HibernateHibernate
Hibernate
 
Java EE and Glassfish
Java EE and GlassfishJava EE and Glassfish
Java EE and Glassfish
 
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
 
Hibernate
HibernateHibernate
Hibernate
 
Introduction to Hibernate
Introduction to HibernateIntroduction to Hibernate
Introduction to Hibernate
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack Tutorial
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop
 
Openstack: Open Source software for building public and private cloud.
Openstack: Open Source software for building public and private cloud.Openstack: Open Source software for building public and private cloud.
Openstack: Open Source software for building public and private cloud.
 
OpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud SoftwareOpenStack: Open Source Private/Public Cloud Software
OpenStack: Open Source Private/Public Cloud Software
 

Recently uploaded

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
Safe Software
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
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
Victor Rentea
 
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
panagenda
 
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
Safe Software
 

Recently uploaded (20)

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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...
 
+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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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...
 
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...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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 - 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...
 

Atlas LBaaS overview

  • 1. Atlas LBaaS Overview September 2012
  • 2. 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
  • 3. Atlas Server scalable and HA deployment
  • 4. 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)
  • 5. 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
  • 6. Atlas Plugins and extensions Core API A D Core A P Extension T API E Extension R
  • 9. REST Layer Persistence Service Layer (transactions) Persistence Repository Layer (ORM)
  • 10. REST Layer MQ Consumers Device Adapter
  • 11. Atlas data-model Atlas API component component XML request JSON request JAXB object JAX-RS (CXF) JAXB 1 2 Resource (XSD files) 3 JAXB object 9 classes Response Entity Entity 4 Atlas API 7 Object 5 Entity Object Dozer component Object Mapper Async Repository Service Atlas API classes Classes classes component (Hibernate) 8 6 Atlas persistence Message component Queue (ActiveMQ) DB
  • 12. Message Queue (ActiveMQ) Atlas adapter 1 Consume message component Entity Async 4 Object ReverseProxy Adapter classes Entity 6 Service classes (Listeners) Object Endpoint Entity 3 ID config Device-specific 2 8 Update 7 Object status Reads API 5 Endpoint Repository config Classes Network (Hibernate) Atlas persistence component LB Device LB Device DB LB Device LB Device LB Device
  • 14. 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
  • 16. Adapter Core Usage interface
  • 23. 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
  • 25. packaging • Java WAR file • Debian package • Adapters are built as separate JAR files • Extensions are built as separate JAR files
  • 26. END