SlideShare a Scribd company logo
How To Build Your
Own Ops Framework
(If You Really Have To)
!
@svanderbleek
Do You Really Have To?

No
Use Chef
Desirables

Testable - Unit, Integration, Acceptance
Available - Bootstraps into cluster, no single point failure
Debuggable - Failure modes for deployments, swap-over
Audit-able - Who/What triggering changes in system
Just Chef?

Chef server high availability? Setting it up on your stack
will be non-trivial
Chef-Spec isn’t enough
Cucumber-Chef is cool
Test Kitchen - under rapid development
Components

Api - Entry Point, Control
Domain - Business Logic
Ops - Meat
Database - Persistence
App - Frontend
Api
Endpoints - Rack GET, POST, PUT etc
Entities - Output JSON Representation
Representations - Consume JSON Representation
Services - Interface to Domain and Ops
Clients - Interface to API for Domain/Ops/Command Line
Execution - Abstract asynchronous implementation
Domain

Resources - States and logic
Provisioners - State machines over Resources
Ops

Providers - Do steps as commanded by provisioner
Cloud Services - Get things done
Testing Tools - Prove things got done on actual
provisioned resources
Database

It’s just a database
stores data
Ok, has the Mappers that map Resources to MongoDB
and back
Can boostrap MongoDB Cluster
Resources

Can transition between states
Transitions are also resources (Inception)
Ours: Image, Cluster, Settings, Users, Permissions
Providers

Define implementations of each state resource state
Ending states and pending/doing states
Tell provisioner success/failure
Provisioner

Control provider flow
Tell client what’s up with resource state
Success and failure are transition events
Run inside Execution with run id of Transition
Example Flow

Image :pending
Image :build_pending
Image :building
Image :built
Make It A Framework

Just build your own subclasses of Resource/
Provisioner/Provider
And then the same for Entity/Endpoint/Service
Plus Mapper for Database
Ok … This is hard
Roadmap

DSL to build Resource/Provisioner
Api side is already DSL, Grape and Grape-Entity
The Frontend needs test coverage
Open Source
Profit?
Key Process Benefits
Write acceptance tests using RSpec matchers that run on
instances created by Api
When a deployment fails Api provides ssh access to
machine to diagnose failure
One stop shop for managing settings and service discovery
Failover built in, fundamental construct
Endpoints have Entities, self documenting
But

It’s not done yet
Lots of work
Monolithic? How to integrate with small tools team
builds
Bootstrap 3 Looks Nice
Static App Server, Ember.js with Emblem
This will change our life

Someday
Cool Sources

Test-Driven Infrastructure with Chef
DevOps Weekly
Just Release It!
Classics: Patterns of Enterprise Architecture/Growing
Object Oriented Software Guided By Tests

More Related Content

What's hot

Spring cloud config manage configuration
Spring cloud config manage configurationSpring cloud config manage configuration
Spring cloud config manage configuration
Janani Velmurugan
 
Moving From a Selenium Grid to the Cloud - A Real Life Story
Moving From a Selenium Grid to the Cloud - A Real Life StoryMoving From a Selenium Grid to the Cloud - A Real Life Story
Moving From a Selenium Grid to the Cloud - A Real Life Story
Sauce Labs
 
Tokyo Azure Meetup #14 - Azure Functions Proxies
Tokyo Azure Meetup #14  -  Azure Functions ProxiesTokyo Azure Meetup #14  -  Azure Functions Proxies
Tokyo Azure Meetup #14 - Azure Functions Proxies
Tokyo Azure Meetup
 
Design REST APIs using RAML
Design REST APIs using RAMLDesign REST APIs using RAML
Design REST APIs using RAML
AIMDek Technologies
 
Demystifying Web Performance
Demystifying Web PerformanceDemystifying Web Performance
Demystifying Web Performance
Atlassian
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
Ivan Katunou
 
Apinizer - Full API Lifecycle and Integration Platform
Apinizer - Full API Lifecycle and Integration Platform Apinizer - Full API Lifecycle and Integration Platform
Apinizer - Full API Lifecycle and Integration Platform
Mustafa Yildiz
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API Testing
TechWell
 
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Rencore
 
Save time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloudSave time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloud
Anshul Sharma
 
Vijay & Supriya - Test your service not your ui
Vijay & Supriya - Test your service not your uiVijay & Supriya - Test your service not your ui
Vijay & Supriya - Test your service not your ui
vodQA
 
(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014
(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014
(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014
Amazon Web Services
 
Selenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSelenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce Labs
Sauce Labs
 
Mobile APIs in Practice
Mobile APIs in PracticeMobile APIs in Practice
Mobile APIs in Practice
Tyler Singletary
 
BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...
BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...
BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...
JosephTesta9
 
Design mobile efficient Apis
Design mobile efficient ApisDesign mobile efficient Apis
Design mobile efficient Apis
Mobile Rtpl
 
VodQA_ParallelizingCukes_AmanKing
VodQA_ParallelizingCukes_AmanKingVodQA_ParallelizingCukes_AmanKing
VodQA_ParallelizingCukes_AmanKing
poojaelkunchwar
 
Mockingbird – mock api
Mockingbird – mock apiMockingbird – mock api
Mockingbird – mock api
Sagar Rao
 
Modern Tools for API Testing, Debugging and Monitoring
Modern Tools for API Testing, Debugging and MonitoringModern Tools for API Testing, Debugging and Monitoring
Modern Tools for API Testing, Debugging and Monitoring
Neil Mansilla
 

What's hot (19)

Spring cloud config manage configuration
Spring cloud config manage configurationSpring cloud config manage configuration
Spring cloud config manage configuration
 
Moving From a Selenium Grid to the Cloud - A Real Life Story
Moving From a Selenium Grid to the Cloud - A Real Life StoryMoving From a Selenium Grid to the Cloud - A Real Life Story
Moving From a Selenium Grid to the Cloud - A Real Life Story
 
Tokyo Azure Meetup #14 - Azure Functions Proxies
Tokyo Azure Meetup #14  -  Azure Functions ProxiesTokyo Azure Meetup #14  -  Azure Functions Proxies
Tokyo Azure Meetup #14 - Azure Functions Proxies
 
Design REST APIs using RAML
Design REST APIs using RAMLDesign REST APIs using RAML
Design REST APIs using RAML
 
Demystifying Web Performance
Demystifying Web PerformanceDemystifying Web Performance
Demystifying Web Performance
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 
Apinizer - Full API Lifecycle and Integration Platform
Apinizer - Full API Lifecycle and Integration Platform Apinizer - Full API Lifecycle and Integration Platform
Apinizer - Full API Lifecycle and Integration Platform
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API Testing
 
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
Provisioning SPFx Solutions to SharePoint Online using PnP, ALM APIs and more!
 
Save time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloudSave time, save money: Move your selenium testing on cloud
Save time, save money: Move your selenium testing on cloud
 
Vijay & Supriya - Test your service not your ui
Vijay & Supriya - Test your service not your uiVijay & Supriya - Test your service not your ui
Vijay & Supriya - Test your service not your ui
 
(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014
(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014
(DEV308) Automating Your Software Delivery Pipeline | AWS re:Invent 2014
 
Selenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSelenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce Labs
 
Mobile APIs in Practice
Mobile APIs in PracticeMobile APIs in Practice
Mobile APIs in Practice
 
BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...
BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...
BSides Rochester 2018: Justin Moore: Automated HTTP Request Repeating With Bu...
 
Design mobile efficient Apis
Design mobile efficient ApisDesign mobile efficient Apis
Design mobile efficient Apis
 
VodQA_ParallelizingCukes_AmanKing
VodQA_ParallelizingCukes_AmanKingVodQA_ParallelizingCukes_AmanKing
VodQA_ParallelizingCukes_AmanKing
 
Mockingbird – mock api
Mockingbird – mock apiMockingbird – mock api
Mockingbird – mock api
 
Modern Tools for API Testing, Debugging and Monitoring
Modern Tools for API Testing, Debugging and MonitoringModern Tools for API Testing, Debugging and Monitoring
Modern Tools for API Testing, Debugging and Monitoring
 

Viewers also liked

The Backend Side of the Mobile
The Backend Side of the MobileThe Backend Side of the Mobile
The Backend Side of the Mobile
Rodrigo Ayala
 
Rails Metal, Rack, and Sinatra
Rails Metal, Rack, and SinatraRails Metal, Rack, and Sinatra
Rails Metal, Rack, and Sinatra
Adam Wiggins
 
Restful API On Grape
Restful API On GrapeRestful API On Grape
Restful API On Grape
Andy Wang
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
LittleBIGRuby
 
8 Minutes On Rack
8 Minutes On Rack8 Minutes On Rack
8 Minutes On Rack
danwrong
 
The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)
Michael Bleigh
 
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Alona Mekhovova
 
Rapid-ruby-api-on-grape
Rapid-ruby-api-on-grapeRapid-ruby-api-on-grape
Rapid-ruby-api-on-grape
Andy Wang
 
Sinatra Introduction
Sinatra IntroductionSinatra Introduction
Sinatra Introduction
Yi-Ting Cheng
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
Jon Crosby
 
API Performance
API PerformanceAPI Performance
API Performance
Faizal Fikhri Zakaria
 

Viewers also liked (11)

The Backend Side of the Mobile
The Backend Side of the MobileThe Backend Side of the Mobile
The Backend Side of the Mobile
 
Rails Metal, Rack, and Sinatra
Rails Metal, Rack, and SinatraRails Metal, Rack, and Sinatra
Rails Metal, Rack, and Sinatra
 
Restful API On Grape
Restful API On GrapeRestful API On Grape
Restful API On Grape
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
8 Minutes On Rack
8 Minutes On Rack8 Minutes On Rack
8 Minutes On Rack
 
The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)The Grapes of Rapid (RubyConf 2010)
The Grapes of Rapid (RubyConf 2010)
 
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
 
Rapid-ruby-api-on-grape
Rapid-ruby-api-on-grapeRapid-ruby-api-on-grape
Rapid-ruby-api-on-grape
 
Sinatra Introduction
Sinatra IntroductionSinatra Introduction
Sinatra Introduction
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
API Performance
API PerformanceAPI Performance
API Performance
 

Similar to HTBYOOFIYRHT RubyConf

North east user group tour
North east user group tourNorth east user group tour
North east user group tour
10n Software, LLC
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf
 
AWS Office Hours: Dev and Test
AWS Office Hours: Dev and TestAWS Office Hours: Dev and Test
AWS Office Hours: Dev and Test
Amazon Web Services
 
Magento's Imagine eCommerce Conference: Do You Queue?
Magento's Imagine eCommerce Conference: Do You Queue?Magento's Imagine eCommerce Conference: Do You Queue?
Magento's Imagine eCommerce Conference: Do You Queue?
varien
 
Slideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You QueueSlideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You Queue
10n Software, LLC
 
New World Of SharePoint 2010 Administration Oleson
New World Of SharePoint 2010 Administration OlesonNew World Of SharePoint 2010 Administration Oleson
New World Of SharePoint 2010 Administration Oleson
Joel Oleson
 
Building the perfect share point farm
Building the perfect share point farmBuilding the perfect share point farm
Building the perfect share point farm
David Broussard
 
Serverless Apps with AWS Step Functions
Serverless Apps with AWS Step FunctionsServerless Apps with AWS Step Functions
Serverless Apps with AWS Step Functions
Amanda Mackay (she/her)
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
Amazon Web Services Korea
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
Paul Jensen
 
Managing Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the CloudManaging Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the Cloud
CloudBees
 
Testing_with_TestComplete
Testing_with_TestCompleteTesting_with_TestComplete
Testing_with_TestComplete
Samanuru G Chakravarthy
 
Acceptance & Functional Testing with Codeception - Devspace 2015
Acceptance & Functional Testing with Codeception - Devspace 2015 Acceptance & Functional Testing with Codeception - Devspace 2015
Acceptance & Functional Testing with Codeception - Devspace 2015
Joe Ferguson
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
Dynatrace
 
E2E testing Single Page Apps and APIs with Cucumber.js and Puppeteer
E2E testing Single Page Apps and APIs with Cucumber.js and PuppeteerE2E testing Single Page Apps and APIs with Cucumber.js and Puppeteer
E2E testing Single Page Apps and APIs with Cucumber.js and Puppeteer
Paul Jensen
 
Cqrs api
Cqrs apiCqrs api
Cqrs api
Brandon Mueller
 
Shuvam dutta
Shuvam duttaShuvam dutta
Shuvam dutta
Shuvam Dutta
 
Shuvam Dutta | Performance analyst
Shuvam Dutta | Performance analystShuvam Dutta | Performance analyst
Shuvam Dutta | Performance analyst
Shuvam Dutta
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
Yan Cui
 

Similar to HTBYOOFIYRHT RubyConf (20)

North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
AWS Office Hours: Dev and Test
AWS Office Hours: Dev and TestAWS Office Hours: Dev and Test
AWS Office Hours: Dev and Test
 
Magento's Imagine eCommerce Conference: Do You Queue?
Magento's Imagine eCommerce Conference: Do You Queue?Magento's Imagine eCommerce Conference: Do You Queue?
Magento's Imagine eCommerce Conference: Do You Queue?
 
Slideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You QueueSlideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You Queue
 
New World Of SharePoint 2010 Administration Oleson
New World Of SharePoint 2010 Administration OlesonNew World Of SharePoint 2010 Administration Oleson
New World Of SharePoint 2010 Administration Oleson
 
Building the perfect share point farm
Building the perfect share point farmBuilding the perfect share point farm
Building the perfect share point farm
 
Serverless Apps with AWS Step Functions
Serverless Apps with AWS Step FunctionsServerless Apps with AWS Step Functions
Serverless Apps with AWS Step Functions
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
 
Managing Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the CloudManaging Software from Development to Deployment in the Cloud
Managing Software from Development to Deployment in the Cloud
 
Testing_with_TestComplete
Testing_with_TestCompleteTesting_with_TestComplete
Testing_with_TestComplete
 
Acceptance & Functional Testing with Codeception - Devspace 2015
Acceptance & Functional Testing with Codeception - Devspace 2015 Acceptance & Functional Testing with Codeception - Devspace 2015
Acceptance & Functional Testing with Codeception - Devspace 2015
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
E2E testing Single Page Apps and APIs with Cucumber.js and Puppeteer
E2E testing Single Page Apps and APIs with Cucumber.js and PuppeteerE2E testing Single Page Apps and APIs with Cucumber.js and Puppeteer
E2E testing Single Page Apps and APIs with Cucumber.js and Puppeteer
 
Cqrs api
Cqrs apiCqrs api
Cqrs api
 
Shuvam dutta
Shuvam duttaShuvam dutta
Shuvam dutta
 
Shuvam Dutta | Performance analyst
Shuvam Dutta | Performance analystShuvam Dutta | Performance analyst
Shuvam Dutta | Performance analyst
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
 

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
 
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
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
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
 
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
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
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
 
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
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
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
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
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
 

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
 
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
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
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
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
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
 
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
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
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
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
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
 

HTBYOOFIYRHT RubyConf

  • 1. How To Build Your Own Ops Framework (If You Really Have To) ! @svanderbleek
  • 2. Do You Really Have To? No Use Chef
  • 3. Desirables Testable - Unit, Integration, Acceptance Available - Bootstraps into cluster, no single point failure Debuggable - Failure modes for deployments, swap-over Audit-able - Who/What triggering changes in system
  • 4. Just Chef? Chef server high availability? Setting it up on your stack will be non-trivial Chef-Spec isn’t enough Cucumber-Chef is cool Test Kitchen - under rapid development
  • 5. Components Api - Entry Point, Control Domain - Business Logic Ops - Meat Database - Persistence App - Frontend
  • 6. Api Endpoints - Rack GET, POST, PUT etc Entities - Output JSON Representation Representations - Consume JSON Representation Services - Interface to Domain and Ops Clients - Interface to API for Domain/Ops/Command Line Execution - Abstract asynchronous implementation
  • 7. Domain Resources - States and logic Provisioners - State machines over Resources
  • 8. Ops Providers - Do steps as commanded by provisioner Cloud Services - Get things done Testing Tools - Prove things got done on actual provisioned resources
  • 9. Database It’s just a database stores data Ok, has the Mappers that map Resources to MongoDB and back Can boostrap MongoDB Cluster
  • 10. Resources Can transition between states Transitions are also resources (Inception) Ours: Image, Cluster, Settings, Users, Permissions
  • 11. Providers Define implementations of each state resource state Ending states and pending/doing states Tell provisioner success/failure
  • 12. Provisioner Control provider flow Tell client what’s up with resource state Success and failure are transition events Run inside Execution with run id of Transition
  • 13. Example Flow Image :pending Image :build_pending Image :building Image :built
  • 14. Make It A Framework Just build your own subclasses of Resource/ Provisioner/Provider And then the same for Entity/Endpoint/Service Plus Mapper for Database Ok … This is hard
  • 15. Roadmap DSL to build Resource/Provisioner Api side is already DSL, Grape and Grape-Entity The Frontend needs test coverage Open Source Profit?
  • 16. Key Process Benefits Write acceptance tests using RSpec matchers that run on instances created by Api When a deployment fails Api provides ssh access to machine to diagnose failure One stop shop for managing settings and service discovery Failover built in, fundamental construct Endpoints have Entities, self documenting
  • 17. But It’s not done yet Lots of work Monolithic? How to integrate with small tools team builds
  • 19. Static App Server, Ember.js with Emblem
  • 20. This will change our life Someday
  • 21. Cool Sources Test-Driven Infrastructure with Chef DevOps Weekly Just Release It! Classics: Patterns of Enterprise Architecture/Growing Object Oriented Software Guided By Tests