SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Automate Roadmap
Madhu Kanoor 
Automate Team 
mkanoor@redhat.com
Agenda 
Background 
Recent changes 
Future Plan 
Q & A
Background 
Automate is a ManageIQ toolset used to 
1. Extend the product to implement customer specific requirements 
2. Update the behavior of the different workflows in the product 
3. Integrate with other products 
Examples 
4. Set the name of a VM or instance to be based on specific enterprise guidelines. 
5. Control the placement of VM’s or instances. 
6. Custom buttons to enable common tasks e.g. Add Hard Drive to a VM
Object Model 
Automate uses an object model comprising of 
● Domains 
● Namespaces 
● Classes 
● Instances 
● Methods 
Domain 
Namespace1 Namespace2 
Class1 Class2 Class3 Class4 
Instance1 Method1 Instance2 Method2
Domain Search 
DOMAIN1 (Priority 10) 
NAMESPACE1 
CLASS1 
● INST1 
● INST2 
DOMAIN2 (Priority 20) 
NAMESPACE1 
CLASS1 
● INST1 
● INST3 
NAMESPACE1/CLASS1/INST1 will get picked from DOMAIN2 
NAMESPACE1/CLASS1/INST2 will get picked up from DOMAIN1 
This is a kin to the file search path when looking for executables in operating 
systems. (ls versus /bin/ls)
Storage 
Automate object model is stored in a relational database in the following 6 tables 
1. miq_ae_namespaces 
2. miq_ae_classes 
3. miq_ae_instances 
4. miq_ae_methods 
5. miq_ae_fields 
6. miq_ae_values
Basic Flow 
PostgresSQL 
Automate Explorer 
Read/Write/Reset/Restore 
Tools (Export/Import) 
Automate Engine 
Process Model 
R/W 
R/W 
R
Recent Changes 
In the Anand release of ManageIQ the following changes were introduced 
1. The automate model was converted to YAML for 
a. Seeding the database 
b. Exporting models from PostgresSQL 
c. Importing models into PostgresSQL 
d. Restoring the Automate model from a backup 
2. Domains were introduced to segregate the models 
a. ManageIQ (Readonly) 
b. User/Customer (Read/write) 
c. Each domain is stored in a separate directory (vmdb/db/fixtures/ae_datastore) 
3. Instance and Method overrides
Future Plan 
Version control Automate Model 
REST API for Automate Methods 
Separate out the Automate Engine as a Ruby 
Gem/Rails Engine
Version Control 
Automate Model
Use cases 
● Users would like to make incremental 
changes to the Automate model and revert 
back to a previous state. 
● User edits are currently written directly to the 
database and cannot be easily undone. 
● Audit Trail
Proposal 
Use GIT to Version control the Automate model 
The Automate Engine reads the model from the 
GIT repository 
The MIQ Automate Explorer will make changes 
to the Automate model, which will get saved via 
GIT.
Comparison 
Postgres 
Pros: 
Single database can be shared 
between multiple appliances in a 
zone. 
Transactions 
Backups/Replications 
Cons: 
Lacks version control 
GIT + Filesystem based DB 
Pros: 
Git provides the version control 
Provides History 
Ability to undo changes 
Share repositories 
Cons: 
Another system to be managed for 
backups, replications etc.
Multi Appliance Environment 
Appliance 1 
Appliance 2 
Appliance 3 
Appliance 4 
Domains 
GIT 
Master 
GIT 
Slave 
(Secondary) 
GIT 
Slave 
GIT 
Slave 
Clone/Pull 
Clone/Pull Clone/Pull 
Domains 
Domains 
Domains 
Postgres 
ManageI 
Q 
External 
Repos 
Write Repo 
Metadata
GIT Master 
Manages the domain repository information in Postgres 
Internal Domains (Customer typically Read/Write) 
External Domains (ManageIQ,Vendor1,Vendor2 Readonly) 
Repository Location 
Last Commit Information 
Automate Explorer Read/Write Automate Model 
All Import/Export runs on this appliance only
GIT Slave 
Synchronization 
Reads the repository information from PostgresSQL 
Disables the Automate Worker role for the appliance 
Waits for all the existing Automate Workers to end 
Synchronizes the Automate DB (add/update/delete domains) 
Re-enables the Automate Worker role for the appliance 
Automate Explorer read only mode
Commits 
● Commit Boundaries 
o Single File changes (Instance, Method) 
o Multiple File Changes (Domain, Namespace, Class 
changes)
Discussion Points 
- GIT Server protocol (ssh, https?) 
- Should we allow for branching? 
- How often should we commit changes on 
GIT Master? 
- How often should the GIT pull be run on the 
connected appliances?
Discussion Points 
● RBAC for Automate Model 
● UI controls 
● Single/Multiple appliances allow for editing the model 
● Undoing Commits 
o Undoing back to a specific commit 
o Undoing a single commit
Demo 
Automate Explorer using the filesystem as a 
storage for Automate Model.
Comparison 
UI UI 
ActiveRecord 
PostgresSQL 
FileSystemAccess 
GIT
Replacing ActiveRecord Classes 
● ActiveModel 
● Validation 
● Attribute Methods 
● Naming 
● MiqAeGit 
○ Implements the GIT Interface using rugged gem 
○ Cloning, Commit 
● MiqAeModelBase 
○ Included by MiqAeNamespace, MiqAeDomain, MiqAeClass, MiqAeInstance, 
MiqAeMethod 
○ Read/Write routed thru MiqAeGit
REST API 
Methods
REST API for Automate Methods 
Automate methods are executed by the 
Automate Engine. 
Currently uses DRb to establish connection 
with the Method process to exchange ruby 
objects. 
Ruby is the only language supported because 
of DRb
Method Dispatch 
The Automation Engine Worker 
VMDB Workspace 
DRb 
Server Automate Method 
Service Model DRb Client
Method Dispatch (REST) 
The Automation Engine Worker 
VMDB Workspace 
Automate Method 
REST Method 
Web Service Worker 
(REST Server) 
Write
Plan 
Add a new aetype for REST based methods 
This would trigger saving of the workspace 
Generating a token for the workspace persisted 
to the DB 
This has been implemented previously when 
we supported Perl and other languages.
Discussions 
Persisting the workspace 
Reading/Writing workspace from the REST Worker 
Reconstituting workspace for the Automate Worker when 
the method ends
Automate Engine 
Gem
Automate Engine Gem 
Automate Engine is responsible for 
- Reading the Automate Model 
- Instantiating a workspace to store objects 
- Compose in memory objects from the 
automate model 
- Execute Methods 
- Execute State Machines
Advantages of a Gem 
● Easier to maintain 
● Modular 
● Isolated testing
Discussions 
Dependency on core class in VMDB 
(MiqQueue) 
Deliver from Queue 
Queue for retries 
Exposing the Service Model 
Registering built in methods that don’t use 
DRb
Q & A

Weitere ähnliche Inhalte

Was ist angesagt?

OpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsOpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsJungsoo Nam
 
Reactive Programming with JavaScript
Reactive Programming with JavaScriptReactive Programming with JavaScript
Reactive Programming with JavaScriptCodemotion
 
Angular Weekend
Angular WeekendAngular Weekend
Angular WeekendTroy Miles
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDGKuwaitGoogleDevel
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingVisual Engineering
 
OpenStack Dashboard - Diablo
OpenStack Dashboard - DiabloOpenStack Dashboard - Diablo
OpenStack Dashboard - Diablodevcamcar
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue APIOSInet
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello Worldi-love-flamingo
 
GraphQL in Symfony
GraphQL in SymfonyGraphQL in Symfony
GraphQL in SymfonyBernd Alter
 
High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript BlrDroid
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeRamon Ribeiro Rabello
 
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)vitalipe
 
Building interactive web app with shiny
Building interactive web app with shinyBuilding interactive web app with shiny
Building interactive web app with shinyVivian S. Zhang
 
Workshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design PatternsWorkshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design PatternsVisual Engineering
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication developmentGanesh Gembali
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applicationsPaweł Żurowski
 
React Native One Day
React Native One DayReact Native One Day
React Native One DayTroy Miles
 

Was ist angesagt? (20)

OpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsOpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIs
 
Reactive Programming with JavaScript
Reactive Programming with JavaScriptReactive Programming with JavaScript
Reactive Programming with JavaScript
 
Angular Weekend
Angular WeekendAngular Weekend
Angular Weekend
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android development
 
Flamingo Core Concepts
Flamingo Core ConceptsFlamingo Core Concepts
Flamingo Core Concepts
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testing
 
OpenStack Dashboard - Diablo
OpenStack Dashboard - DiabloOpenStack Dashboard - Diablo
OpenStack Dashboard - Diablo
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue API
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello World
 
GraphQL in Symfony
GraphQL in SymfonyGraphQL in Symfony
GraphQL in Symfony
 
High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
 
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)
 
Cocoa heads 09112017
Cocoa heads 09112017Cocoa heads 09112017
Cocoa heads 09112017
 
What is OpenGL ?
What is OpenGL ?What is OpenGL ?
What is OpenGL ?
 
Building interactive web app with shiny
Building interactive web app with shinyBuilding interactive web app with shiny
Building interactive web app with shiny
 
Workshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design PatternsWorkshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design Patterns
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication development
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applications
 
React Native One Day
React Native One DayReact Native One Day
React Native One Day
 

Ähnlich wie Design Summit - Automate roadmap - Madhu Kanoor

Guvnor presentation jervis liu
Guvnor presentation jervis liuGuvnor presentation jervis liu
Guvnor presentation jervis liujbossug
 
PuppetCamp - How Puppet helped us to standardize, communicate and work together
PuppetCamp - How Puppet helped us to standardize, communicate and work togetherPuppetCamp - How Puppet helped us to standardize, communicate and work together
PuppetCamp - How Puppet helped us to standardize, communicate and work togetherohadlevy
 
Building a production ready meteor app
Building a production ready meteor appBuilding a production ready meteor app
Building a production ready meteor appRitik Malhotra
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS BackendLaurent Cerveau
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018Antonios Giannopoulos
 
Advanced Metadata w/ David Riecks
Advanced Metadata w/ David RiecksAdvanced Metadata w/ David Riecks
Advanced Metadata w/ David Riecksglobaledit®
 
OSGi Cloud Ecosystems (OSGi Users Forum Germany)
OSGi Cloud Ecosystems (OSGi Users Forum Germany)OSGi Cloud Ecosystems (OSGi Users Forum Germany)
OSGi Cloud Ecosystems (OSGi Users Forum Germany)David Bosschaert
 
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel PartnersCraeg Strong
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideMohanraj Thirumoorthy
 
Slack in the Age of Prometheus
Slack in the Age of PrometheusSlack in the Age of Prometheus
Slack in the Age of PrometheusGeorge Luong
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerFederico Palladoro
 
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...Craeg Strong
 
OSGi Cloud Ecosystems - David Bosschaert
OSGi Cloud Ecosystems - David BosschaertOSGi Cloud Ecosystems - David Bosschaert
OSGi Cloud Ecosystems - David Bosschaertmfrancis
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudLyzun Oleksandr
 
Threading Successes 03 Gamebryo
Threading Successes 03   GamebryoThreading Successes 03   Gamebryo
Threading Successes 03 Gamebryoguest40fc7cd
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 

Ähnlich wie Design Summit - Automate roadmap - Madhu Kanoor (20)

Guvnor presentation jervis liu
Guvnor presentation jervis liuGuvnor presentation jervis liu
Guvnor presentation jervis liu
 
Sprint 12
Sprint 12Sprint 12
Sprint 12
 
PuppetCamp - How Puppet helped us to standardize, communicate and work together
PuppetCamp - How Puppet helped us to standardize, communicate and work togetherPuppetCamp - How Puppet helped us to standardize, communicate and work together
PuppetCamp - How Puppet helped us to standardize, communicate and work together
 
Building a production ready meteor app
Building a production ready meteor appBuilding a production ready meteor app
Building a production ready meteor app
 
Lotus Domino 8.5
Lotus Domino 8.5Lotus Domino 8.5
Lotus Domino 8.5
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS Backend
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018
 
Advanced Metadata w/ David Riecks
Advanced Metadata w/ David RiecksAdvanced Metadata w/ David Riecks
Advanced Metadata w/ David Riecks
 
OSGi Cloud Ecosystems (OSGi Users Forum Germany)
OSGi Cloud Ecosystems (OSGi Users Forum Germany)OSGi Cloud Ecosystems (OSGi Users Forum Germany)
OSGi Cloud Ecosystems (OSGi Users Forum Germany)
 
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211202 NADOG Adapting to Covid with Serverless Craeg Strong Ariel Partners
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
 
Slack in the Age of Prometheus
Slack in the Age of PrometheusSlack in the Age of Prometheus
Slack in the Age of Prometheus
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on docker
 
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
 
OSGi Cloud Ecosystems - David Bosschaert
OSGi Cloud Ecosystems - David BosschaertOSGi Cloud Ecosystems - David Bosschaert
OSGi Cloud Ecosystems - David Bosschaert
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento Cloud
 
Threading Successes 03 Gamebryo
Threading Successes 03   GamebryoThreading Successes 03   Gamebryo
Threading Successes 03 Gamebryo
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
Web Technology Part 2
Web Technology Part 2Web Technology Part 2
Web Technology Part 2
 

Mehr von ManageIQ

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 235 Review - Slide Deck
ManageIQ - Sprint 235 Review - Slide DeckManageIQ - Sprint 235 Review - Slide Deck
ManageIQ - Sprint 235 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide DeckManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 233 Review - Slide Deck
ManageIQ - Sprint 233 Review - Slide DeckManageIQ - Sprint 233 Review - Slide Deck
ManageIQ - Sprint 233 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 232 Review - Slide Deck
ManageIQ - Sprint 232 Review - Slide DeckManageIQ - Sprint 232 Review - Slide Deck
ManageIQ - Sprint 232 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 231 Review - Slide Deck
ManageIQ - Sprint 231 Review - Slide DeckManageIQ - Sprint 231 Review - Slide Deck
ManageIQ - Sprint 231 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 230 Review - Slide Deck
ManageIQ - Sprint 230 Review - Slide DeckManageIQ - Sprint 230 Review - Slide Deck
ManageIQ - Sprint 230 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 229 Review - Slide Deck
ManageIQ - Sprint 229 Review - Slide DeckManageIQ - Sprint 229 Review - Slide Deck
ManageIQ - Sprint 229 Review - Slide DeckManageIQ
 
ManageIQ - Sprint 228 Review - Slide Deck
ManageIQ - Sprint 228 Review - Slide DeckManageIQ - Sprint 228 Review - Slide Deck
ManageIQ - Sprint 228 Review - Slide DeckManageIQ
 
Sprint 227
Sprint 227Sprint 227
Sprint 227ManageIQ
 
Sprint 226
Sprint 226Sprint 226
Sprint 226ManageIQ
 
Sprint 225
Sprint 225Sprint 225
Sprint 225ManageIQ
 
Sprint 224
Sprint 224Sprint 224
Sprint 224ManageIQ
 
Sprint 223
Sprint 223Sprint 223
Sprint 223ManageIQ
 
Sprint 222
Sprint 222Sprint 222
Sprint 222ManageIQ
 
Sprint 221
Sprint 221Sprint 221
Sprint 221ManageIQ
 
Sprint 220
Sprint 220Sprint 220
Sprint 220ManageIQ
 
Sprint 219
Sprint 219Sprint 219
Sprint 219ManageIQ
 
Sprint 218
Sprint 218Sprint 218
Sprint 218ManageIQ
 
Sprint 217
Sprint 217Sprint 217
Sprint 217ManageIQ
 

Mehr von ManageIQ (20)

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
ManageIQ - Sprint 235 Review - Slide Deck
ManageIQ - Sprint 235 Review - Slide DeckManageIQ - Sprint 235 Review - Slide Deck
ManageIQ - Sprint 235 Review - Slide Deck
 
ManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide DeckManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide Deck
 
ManageIQ - Sprint 233 Review - Slide Deck
ManageIQ - Sprint 233 Review - Slide DeckManageIQ - Sprint 233 Review - Slide Deck
ManageIQ - Sprint 233 Review - Slide Deck
 
ManageIQ - Sprint 232 Review - Slide Deck
ManageIQ - Sprint 232 Review - Slide DeckManageIQ - Sprint 232 Review - Slide Deck
ManageIQ - Sprint 232 Review - Slide Deck
 
ManageIQ - Sprint 231 Review - Slide Deck
ManageIQ - Sprint 231 Review - Slide DeckManageIQ - Sprint 231 Review - Slide Deck
ManageIQ - Sprint 231 Review - Slide Deck
 
ManageIQ - Sprint 230 Review - Slide Deck
ManageIQ - Sprint 230 Review - Slide DeckManageIQ - Sprint 230 Review - Slide Deck
ManageIQ - Sprint 230 Review - Slide Deck
 
ManageIQ - Sprint 229 Review - Slide Deck
ManageIQ - Sprint 229 Review - Slide DeckManageIQ - Sprint 229 Review - Slide Deck
ManageIQ - Sprint 229 Review - Slide Deck
 
ManageIQ - Sprint 228 Review - Slide Deck
ManageIQ - Sprint 228 Review - Slide DeckManageIQ - Sprint 228 Review - Slide Deck
ManageIQ - Sprint 228 Review - Slide Deck
 
Sprint 227
Sprint 227Sprint 227
Sprint 227
 
Sprint 226
Sprint 226Sprint 226
Sprint 226
 
Sprint 225
Sprint 225Sprint 225
Sprint 225
 
Sprint 224
Sprint 224Sprint 224
Sprint 224
 
Sprint 223
Sprint 223Sprint 223
Sprint 223
 
Sprint 222
Sprint 222Sprint 222
Sprint 222
 
Sprint 221
Sprint 221Sprint 221
Sprint 221
 
Sprint 220
Sprint 220Sprint 220
Sprint 220
 
Sprint 219
Sprint 219Sprint 219
Sprint 219
 
Sprint 218
Sprint 218Sprint 218
Sprint 218
 
Sprint 217
Sprint 217Sprint 217
Sprint 217
 

Kürzlich hochgeladen

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
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
 
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
 
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
 
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
 
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
 
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
 
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 ...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
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 WorkerThousandEyes
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Kürzlich hochgeladen (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
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...
 
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
 
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
 
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
 
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
 
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 ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
+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...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Design Summit - Automate roadmap - Madhu Kanoor

  • 2. Madhu Kanoor Automate Team mkanoor@redhat.com
  • 3. Agenda Background Recent changes Future Plan Q & A
  • 4. Background Automate is a ManageIQ toolset used to 1. Extend the product to implement customer specific requirements 2. Update the behavior of the different workflows in the product 3. Integrate with other products Examples 4. Set the name of a VM or instance to be based on specific enterprise guidelines. 5. Control the placement of VM’s or instances. 6. Custom buttons to enable common tasks e.g. Add Hard Drive to a VM
  • 5. Object Model Automate uses an object model comprising of ● Domains ● Namespaces ● Classes ● Instances ● Methods Domain Namespace1 Namespace2 Class1 Class2 Class3 Class4 Instance1 Method1 Instance2 Method2
  • 6. Domain Search DOMAIN1 (Priority 10) NAMESPACE1 CLASS1 ● INST1 ● INST2 DOMAIN2 (Priority 20) NAMESPACE1 CLASS1 ● INST1 ● INST3 NAMESPACE1/CLASS1/INST1 will get picked from DOMAIN2 NAMESPACE1/CLASS1/INST2 will get picked up from DOMAIN1 This is a kin to the file search path when looking for executables in operating systems. (ls versus /bin/ls)
  • 7. Storage Automate object model is stored in a relational database in the following 6 tables 1. miq_ae_namespaces 2. miq_ae_classes 3. miq_ae_instances 4. miq_ae_methods 5. miq_ae_fields 6. miq_ae_values
  • 8. Basic Flow PostgresSQL Automate Explorer Read/Write/Reset/Restore Tools (Export/Import) Automate Engine Process Model R/W R/W R
  • 9. Recent Changes In the Anand release of ManageIQ the following changes were introduced 1. The automate model was converted to YAML for a. Seeding the database b. Exporting models from PostgresSQL c. Importing models into PostgresSQL d. Restoring the Automate model from a backup 2. Domains were introduced to segregate the models a. ManageIQ (Readonly) b. User/Customer (Read/write) c. Each domain is stored in a separate directory (vmdb/db/fixtures/ae_datastore) 3. Instance and Method overrides
  • 10. Future Plan Version control Automate Model REST API for Automate Methods Separate out the Automate Engine as a Ruby Gem/Rails Engine
  • 12. Use cases ● Users would like to make incremental changes to the Automate model and revert back to a previous state. ● User edits are currently written directly to the database and cannot be easily undone. ● Audit Trail
  • 13. Proposal Use GIT to Version control the Automate model The Automate Engine reads the model from the GIT repository The MIQ Automate Explorer will make changes to the Automate model, which will get saved via GIT.
  • 14. Comparison Postgres Pros: Single database can be shared between multiple appliances in a zone. Transactions Backups/Replications Cons: Lacks version control GIT + Filesystem based DB Pros: Git provides the version control Provides History Ability to undo changes Share repositories Cons: Another system to be managed for backups, replications etc.
  • 15. Multi Appliance Environment Appliance 1 Appliance 2 Appliance 3 Appliance 4 Domains GIT Master GIT Slave (Secondary) GIT Slave GIT Slave Clone/Pull Clone/Pull Clone/Pull Domains Domains Domains Postgres ManageI Q External Repos Write Repo Metadata
  • 16. GIT Master Manages the domain repository information in Postgres Internal Domains (Customer typically Read/Write) External Domains (ManageIQ,Vendor1,Vendor2 Readonly) Repository Location Last Commit Information Automate Explorer Read/Write Automate Model All Import/Export runs on this appliance only
  • 17. GIT Slave Synchronization Reads the repository information from PostgresSQL Disables the Automate Worker role for the appliance Waits for all the existing Automate Workers to end Synchronizes the Automate DB (add/update/delete domains) Re-enables the Automate Worker role for the appliance Automate Explorer read only mode
  • 18. Commits ● Commit Boundaries o Single File changes (Instance, Method) o Multiple File Changes (Domain, Namespace, Class changes)
  • 19. Discussion Points - GIT Server protocol (ssh, https?) - Should we allow for branching? - How often should we commit changes on GIT Master? - How often should the GIT pull be run on the connected appliances?
  • 20. Discussion Points ● RBAC for Automate Model ● UI controls ● Single/Multiple appliances allow for editing the model ● Undoing Commits o Undoing back to a specific commit o Undoing a single commit
  • 21. Demo Automate Explorer using the filesystem as a storage for Automate Model.
  • 22. Comparison UI UI ActiveRecord PostgresSQL FileSystemAccess GIT
  • 23. Replacing ActiveRecord Classes ● ActiveModel ● Validation ● Attribute Methods ● Naming ● MiqAeGit ○ Implements the GIT Interface using rugged gem ○ Cloning, Commit ● MiqAeModelBase ○ Included by MiqAeNamespace, MiqAeDomain, MiqAeClass, MiqAeInstance, MiqAeMethod ○ Read/Write routed thru MiqAeGit
  • 25. REST API for Automate Methods Automate methods are executed by the Automate Engine. Currently uses DRb to establish connection with the Method process to exchange ruby objects. Ruby is the only language supported because of DRb
  • 26. Method Dispatch The Automation Engine Worker VMDB Workspace DRb Server Automate Method Service Model DRb Client
  • 27. Method Dispatch (REST) The Automation Engine Worker VMDB Workspace Automate Method REST Method Web Service Worker (REST Server) Write
  • 28. Plan Add a new aetype for REST based methods This would trigger saving of the workspace Generating a token for the workspace persisted to the DB This has been implemented previously when we supported Perl and other languages.
  • 29. Discussions Persisting the workspace Reading/Writing workspace from the REST Worker Reconstituting workspace for the Automate Worker when the method ends
  • 31. Automate Engine Gem Automate Engine is responsible for - Reading the Automate Model - Instantiating a workspace to store objects - Compose in memory objects from the automate model - Execute Methods - Execute State Machines
  • 32. Advantages of a Gem ● Easier to maintain ● Modular ● Isolated testing
  • 33. Discussions Dependency on core class in VMDB (MiqQueue) Deliver from Queue Queue for retries Exposing the Service Model Registering built in methods that don’t use DRb
  • 34. Q & A