SlideShare a Scribd company logo
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

More Related Content

What's hot

OpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIsOpenGL ES EGL Spec&APIs
OpenGL ES EGL Spec&APIs
Jungsoo Nam
 
Reactive Programming with JavaScript
Reactive Programming with JavaScriptReactive Programming with JavaScript
Reactive Programming with JavaScript
Codemotion
 
Angular Weekend
Angular WeekendAngular Weekend
Angular Weekend
Troy Miles
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android development
GDGKuwaitGoogleDevel
 
Flamingo Core Concepts
Flamingo Core ConceptsFlamingo Core Concepts
Flamingo Core Concepts
i-love-flamingo
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testing
Visual Engineering
 
OpenStack Dashboard - Diablo
OpenStack Dashboard - DiabloOpenStack Dashboard - Diablo
OpenStack Dashboard - Diablo
devcamcar
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue API
OSInet
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello World
i-love-flamingo
 
GraphQL in Symfony
GraphQL in SymfonyGraphQL in Symfony
GraphQL in Symfony
Bernd 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 Compose
Ramon 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
 
Cocoa heads 09112017
Cocoa heads 09112017Cocoa heads 09112017
Cocoa heads 09112017
Vincent Pradeilles
 
What is OpenGL ?
What is OpenGL ?What is OpenGL ?
What is OpenGL ?
Mohammad Hosein Nemati
 
Building interactive web app with shiny
Building interactive web app with shinyBuilding interactive web app with shiny
Building interactive web app with shiny
Vivian S. Zhang
 
Workshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design PatternsWorkshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design Patterns
Visual Engineering
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication development
Ganesh Gembali
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applications
Paweł Żurowski
 
React Native One Day
React Native One DayReact Native One Day
React Native One Day
Troy Miles
 

What's hot (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
 

Similar to Design Summit - Automate roadmap - Madhu Kanoor

Guvnor presentation jervis liu
Guvnor presentation jervis liuGuvnor presentation jervis liu
Guvnor presentation jervis liu
jbossug
 
Sprint 12
Sprint 12Sprint 12
Sprint 12
ManageIQ
 
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
ohadlevy
 
Building a production ready meteor app
Building a production ready meteor appBuilding a production ready meteor app
Building a production ready meteor app
Ritik Malhotra
 
Lotus Domino 8.5
Lotus Domino 8.5Lotus Domino 8.5
Lotus Domino 8.5
Lalit Sharma
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS Backend
Laurent 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 2018
Antonios Giannopoulos
 
Advanced Metadata w/ David Riecks
Advanced Metadata w/ David RiecksAdvanced Metadata w/ David Riecks
Advanced Metadata w/ David Riecks
globaledit®
 
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 Partners
Craeg 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 Guide
Mohanraj Thirumoorthy
 
Slack in the Age of Prometheus
Slack in the Age of PrometheusSlack in the Age of Prometheus
Slack in the Age of Prometheus
George 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 docker
Federico 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 Bosschaert
mfrancis
 
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
Lyzun Oleksandr
 
Threading Successes 03 Gamebryo
Threading Successes 03   GamebryoThreading Successes 03   Gamebryo
Threading Successes 03 Gamebryo
guest40fc7cd
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
Software Infrastructure
 
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
Mack Hardy
 
Web Technology Part 2
Web Technology Part 2Web Technology Part 2
Web Technology Part 2
Thapar Institute
 

Similar to 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
 

More from ManageIQ

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

More from ManageIQ (20)

ManageIQ - Sprint 237 Review - Slide Deck
ManageIQ - Sprint 237 Review - Slide DeckManageIQ - Sprint 237 Review - Slide Deck
ManageIQ - Sprint 237 Review - Slide Deck
 
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
 

Recently uploaded

AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 

Recently uploaded (20)

AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 

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