Relaxing With CouchDB

L
relaxing with couchdb
          will leinweber
       will@bitfission.com




                   acts_as_conference 2009
                                             1
2
this talk: why & how




                       3
what is couchdb?




                   4
document database
no schema




                    5
erlang
concurrent
scalable




             6
built for the web
restful
json




                    7
json
{ quot;titlequot;: quot;A Brief History of Slinkiesquot;,
  quot;chaptersquot;: [
  { quot;titlequot;: quot;Sorta like a springquot;,
     quot;textquot;: quot;Round and metal...quot; },
  { quot;titlequot;: quot;Stairsquot;,
     quot;textquot;: quot;They can go down, but not upquot; }],
  quot;_idquot;: quot;4b859...quot;,
  quot;_revquot;: quot;3280991488quot;
}




                                                  8
multi version concurrency control
no locking
         locking   mvcc
 write                    reads




                                    9
add only
never in a bad state




                       10
incremental replication
eventual consistency
winning documents




                          11
couchdb only apps
javascript + html




                    12
multiple databases
  for a single app




                     13
integrate with full text search




                                  14
file attachment




                  15
views
(not queries)




                16
stored as design documents




                             17
view server
javascript (spidermonkey)
ruby and python too




                            18
map
reduce (optional)




                    19
goes through each document
very slow




                             20
map step
emits keys value pairs




                         21
persisted index
keeps track of changes




                         22
keep your views fresh




                        23
http benefits




                24
cacheable
load balancers




                 25
easy interface
understand and implement




                           26
getting started




                  27
install couch from svn head
get erlang, spidermonkey, icu




                                28
gem install jchris-couchrest
lightweight api wrapper




                               29
db = CouchRest.database!(quot;http://localhost:5984/booksquot;)
response = db.save(:title => quot;recipesquot;) # =>
            {quot;revquot;=>quot;2351730874quot;, quot;idquot;=>quot;07cb62...quot;,
            quot;okquot;=>true}

doc = db.get response[quot;idquot;] # => {quot;titlequot;=>quot;recipesquot;,
            quot;_idquot;=>quot;07cb62...quot;, quot;_revquot;=>quot;2351730874quot;}




                                                          30
$ curl http://localhost:5984/books/07cb6232593b61dd022d1c05b1c7deac
{quot;_idquot;:quot;07cb6232593b61dd022d1c05b1c7deacquot;,quot;_revquot;:quot;2351730874quot;,
quot;titlequot;:quot;recipesquot;}




                                                                  31
doc[quot;titlequot;] = quot;cook bookquot;
doc.save # => true
db.get response[quot;idquot;] # => {quot;titlequot;=>quot;cook bookquot;,
      quot;_idquot;=>quot;07cb623...quot;, quot;_revquot;=>quot;3767210759quot;}

doc.destroy # => true
db.get response[quot;idquot;] # => RestClient::ResourceNotFound




                                                          32
33
simple view
function(doc) {
  if (doc.type == quot;bookquot;) {
    emit(null, doc);
  }
                         db.view(quot;books/allquot;)
}




                                                34
view with keys
function(doc) {
  emit(doc.type, doc);
}
                db.view(quot;books/allquot;    )['rows'].size   # => 10
                db.view(quot;all/by_typequot; )['rows'].size    # => 30
                db.view(quot;all/by_typequot;,
                        :key => quot;bookquot;)['rows'].size    # => 10




                                                                  35
map reduce
// map                     // reduce
function(doc) {            function(keys,values) {
  emit(doc.type, doc);        return(values.length);
                           }
}


 db.view(quot;count/by_typequot;) # => {quot;rowsquot;=>
                            {quot;valuequot;=>3, quot;keyquot;=>nil}]}
 db.view(quot;count/by_typequot;, :group => true) # =>
            {quot;rowsquot;=>[{quot;valuequot;=>10, quot;keyquot;=>quot;articlequot;},
                      {quot;valuequot;=>10, quot;keyquot;=>quot;bookquot;},
                      {quot;valuequot;=>10, quot;keyquot;=>quot;userquot;}]}
 db.view(quot;count/by_typequot;, :key => quot;bookquot;) # =>
                {quot;rowsquot;=>[{quot;valuequot;=>10, quot;keyquot;=>nil}]}




                                                         36
versioning
{
    quot;titlequot;: quot;Slinkies!quot;,
    quot;versionquot;: 4,
    quot;master_idquot;: quot;3de0c...quot;,
    quot;_idquot;: quot;af322...quot;,
    quot;chaptersquot;: [...]
}




                               37
versioning
// map                   // reduce
function(doc) {          function(keys, values) {
  emit( doc.master_id,     var max = 0;
        doc );
}                            for(i in values) {
                               if( values[i].version >
                                   values[max].version ) {
                                   max = i;
                               }
                             }
                             return(values[max]);
                         }




                                                             38
view collation
                          {    quot;_idquot;:   quot;def345quot;,
{    quot;_idquot;:   quot;abc012quot;,
                              quot;_revquot;:   quot;2387quot;,
    quot;_revquot;:   quot;2387quot;,
                              quot;typequot;:   quot;commentquot;,
    quot;typequot;:   quot;postquot;,
                              quot;dataquot;:   quot;...quot; }
    quot;dataquot;:   quot;...quot; }

                          {    quot;_idquot;:   quot;r2d2c3quot;,
                              quot;_revquot;:   quot;2653quot;,
                              quot;typequot;:   quot;commentquot;,
                              quot;dataquot;:   quot;...quot; }




                                                     39
view collation
   function(doc) {
     if (doc.type == quot;postquot;) {
       emit([doc._id, 0], doc);
     } else if (doc.type == quot;commentquot;) {
       emit([doc.post, 1], doc);
     }
   }




                                           40
CouchRest::Model
being removed from couchrest
      class Book < CouchRest::Model
        key_accessor :title, :text, :author
        cast :author, :as => quot;Userquot;
        timestamps!
      end

  # config/environment.rb
  CouchRest::Model.default_database =
      CouchRest.database!(quot;appname-#{ENV['RAILS_ENV']}quot;)




                                                           41
others
 langalex-couch_potato
 active couch




                         42
downsides




            43
moving target




                44
arbitrary queries are slow




                             45
lack of supporting tools




                           46
loss of intuition




                    47
what you should do next




                          48
thanks!




          49
1 of 49

Recommended

Lisp Macros in 20 Minutes (Featuring Clojure) by
Lisp Macros in 20 Minutes (Featuring Clojure)Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)Phil Calçado
7.8K views34 slides
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys... by
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...
(ThoughtWorks Away Day 2009) one or two things you may not know about typesys...Phil Calçado
3.2K views47 slides
JavaScript 2016 for C# Developers by
JavaScript 2016 for C# DevelopersJavaScript 2016 for C# Developers
JavaScript 2016 for C# DevelopersRick Beerendonk
563 views50 slides
Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado by
Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip CalçadoJustjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip CalçadoPaulo Silveira
1.3K views53 slides
Using Dojo by
Using DojoUsing Dojo
Using DojoRichard Paul
2.8K views25 slides
Coding Ajax by
Coding AjaxCoding Ajax
Coding AjaxTed Husted
836 views84 slides

More Related Content

What's hot

Going Schema-Free by
Going Schema-FreeGoing Schema-Free
Going Schema-Freespraints
896 views28 slides
c++ program for Canteen management by
c++ program for Canteen managementc++ program for Canteen management
c++ program for Canteen managementSwarup Kumar Boro
9.4K views7 slides
Quiz using C++ by
Quiz using C++Quiz using C++
Quiz using C++Sushil Mishra
7.4K views39 slides
Scripting GeoServer with GeoScript by
Scripting GeoServer with GeoScriptScripting GeoServer with GeoScript
Scripting GeoServer with GeoScriptJustin Deoliveira
3.9K views39 slides
The State of GeoServer by
The State of GeoServerThe State of GeoServer
The State of GeoServerJustin Deoliveira
2K views65 slides
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions" by
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"LogeekNightUkraine
77 views23 slides

What's hot(20)

Going Schema-Free by spraints
Going Schema-FreeGoing Schema-Free
Going Schema-Free
spraints896 views
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions" by LogeekNightUkraine
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"
Andriy Slobodyanyk "How to Use Hibernate: Key Problems and Solutions"
Building fast interpreters in Rust by Ingvar Stepanyan
Building fast interpreters in RustBuilding fast interpreters in Rust
Building fast interpreters in Rust
Ingvar Stepanyan4.7K views
New methods for exploiting ORM injections in Java applications by Mikhail Egorov
New methods for exploiting ORM injections in Java applicationsNew methods for exploiting ORM injections in Java applications
New methods for exploiting ORM injections in Java applications
Mikhail Egorov12.1K views
NetPonto - The Future Of C# - NetConf Edition by Paulo Morgado
NetPonto - The Future Of C# - NetConf EditionNetPonto - The Future Of C# - NetConf Edition
NetPonto - The Future Of C# - NetConf Edition
Paulo Morgado234 views
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes by Bartlomiej Filipek
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesEmpty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Bartlomiej Filipek2.5K views
Js testing by MaslowB
Js testingJs testing
Js testing
MaslowB1.5K views
Out with Regex, In with Tokens by scoates
Out with Regex, In with TokensOut with Regex, In with Tokens
Out with Regex, In with Tokens
scoates4.5K views
Automatically Spotting Cross-language Relations by Federico Tomassetti
Automatically Spotting Cross-language RelationsAutomatically Spotting Cross-language Relations
Automatically Spotting Cross-language Relations
Federico Tomassetti1.1K views
COLLADA & WebGL by Remi Arnaud
COLLADA & WebGLCOLLADA & WebGL
COLLADA & WebGL
Remi Arnaud5.8K views
Reactive, component 그리고 angular2 by Jeado Ko
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
Jeado Ko1.7K views
More than `po`: Debugging in lldb by Michele Titolo
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
Michele Titolo9.1K views
Impacta - Show Day de Rails by Fabio Akita
Impacta - Show Day de RailsImpacta - Show Day de Rails
Impacta - Show Day de Rails
Fabio Akita1.7K views

Viewers also liked

Apache Kafka, Un système distribué de messagerie hautement performant by
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
16.1K views40 slides
Redis keynote by
Redis keynoteRedis keynote
Redis keynoteRyhad Boughanmi
541 views10 slides
Apache Storm - Introduction au traitement temps-réel avec Storm by
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormParis_Storm_UG
2.8K views69 slides
Présentation CSR by
Présentation CSRPrésentation CSR
Présentation CSRchristophesr
268 views7 slides
PLATAFORMA DE AFILIAÇÃO by
PLATAFORMA DE AFILIAÇÃOPLATAFORMA DE AFILIAÇÃO
PLATAFORMA DE AFILIAÇÃOEffiliation
1.4K views17 slides
Fiche 2 Speed DéMo Web 2 0 by
Fiche 2 Speed DéMo Web 2 0Fiche 2 Speed DéMo Web 2 0
Fiche 2 Speed DéMo Web 2 0Gerard Haas
396 views9 slides

Viewers also liked(20)

Apache Kafka, Un système distribué de messagerie hautement performant by ALTIC Altic
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
ALTIC Altic16.1K views
Apache Storm - Introduction au traitement temps-réel avec Storm by Paris_Storm_UG
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Paris_Storm_UG2.8K views
PLATAFORMA DE AFILIAÇÃO by Effiliation
PLATAFORMA DE AFILIAÇÃOPLATAFORMA DE AFILIAÇÃO
PLATAFORMA DE AFILIAÇÃO
Effiliation1.4K views
Fiche 2 Speed DéMo Web 2 0 by Gerard Haas
Fiche 2 Speed DéMo Web 2 0Fiche 2 Speed DéMo Web 2 0
Fiche 2 Speed DéMo Web 2 0
Gerard Haas396 views
Speed Demo 7 Minutes Pour Comprendre Le Web 2 0 Et Labus De La Liberté Dexpre... by Gerard Haas
Speed Demo 7 Minutes Pour Comprendre Le Web 2 0 Et Labus De La Liberté Dexpre...Speed Demo 7 Minutes Pour Comprendre Le Web 2 0 Et Labus De La Liberté Dexpre...
Speed Demo 7 Minutes Pour Comprendre Le Web 2 0 Et Labus De La Liberté Dexpre...
Gerard Haas458 views
Génération de photos 2.0 by REALIZ
Génération de photos 2.0Génération de photos 2.0
Génération de photos 2.0
REALIZ861 views
Presentacion infografias 2 by patiescobar
Presentacion infografias 2Presentacion infografias 2
Presentacion infografias 2
patiescobar1.5K views
E recrutement les outils web REALIZ by REALIZ
E recrutement les outils web REALIZE recrutement les outils web REALIZ
E recrutement les outils web REALIZ
REALIZ1.1K views
Boutique ecologique by cetelen
Boutique ecologiqueBoutique ecologique
Boutique ecologique
cetelen1.4K views
2010 Dinamarca, he ahí tus Hijos (canto de ballenas) by Molco Chile
2010 Dinamarca, he ahí tus Hijos (canto de ballenas)2010 Dinamarca, he ahí tus Hijos (canto de ballenas)
2010 Dinamarca, he ahí tus Hijos (canto de ballenas)
Molco Chile767 views
Francilbois RéSeaux 15 Sept 09 by Francîlbois
Francilbois RéSeaux 15 Sept 09Francilbois RéSeaux 15 Sept 09
Francilbois RéSeaux 15 Sept 09
Francîlbois493 views
Le voyage du héros et la quête du BON projet by Claude Emond
Le voyage du héros et la quête du BON projetLe voyage du héros et la quête du BON projet
Le voyage du héros et la quête du BON projet
Claude Emond2K views

Similar to Relaxing With CouchDB

Couch Db.0.9.0.Pub by
Couch Db.0.9.0.PubCouch Db.0.9.0.Pub
Couch Db.0.9.0.PubYohei Sasaki
1.2K views58 slides
MongoDB by
MongoDBMongoDB
MongoDBhyun soomyung
1K views18 slides
My First Rails Plugin - Usertext by
My First Rails Plugin - UsertextMy First Rails Plugin - Usertext
My First Rails Plugin - Usertextfrankieroberto
696 views48 slides
Capistrano2 by
Capistrano2Capistrano2
Capistrano2Luca Mearelli
627 views31 slides
Scala + WattzOn, sitting in a tree.... by
Scala + WattzOn, sitting in a tree....Scala + WattzOn, sitting in a tree....
Scala + WattzOn, sitting in a tree....Raffi Krikorian
1.6K views36 slides
Schema design with MongoDB (Dwight Merriman) by
Schema design with MongoDB (Dwight Merriman)Schema design with MongoDB (Dwight Merriman)
Schema design with MongoDB (Dwight Merriman)MongoSF
3.5K views28 slides

Similar to Relaxing With CouchDB(20)

Couch Db.0.9.0.Pub by Yohei Sasaki
Couch Db.0.9.0.PubCouch Db.0.9.0.Pub
Couch Db.0.9.0.Pub
Yohei Sasaki1.2K views
My First Rails Plugin - Usertext by frankieroberto
My First Rails Plugin - UsertextMy First Rails Plugin - Usertext
My First Rails Plugin - Usertext
frankieroberto696 views
Scala + WattzOn, sitting in a tree.... by Raffi Krikorian
Scala + WattzOn, sitting in a tree....Scala + WattzOn, sitting in a tree....
Scala + WattzOn, sitting in a tree....
Raffi Krikorian1.6K views
Schema design with MongoDB (Dwight Merriman) by MongoSF
Schema design with MongoDB (Dwight Merriman)Schema design with MongoDB (Dwight Merriman)
Schema design with MongoDB (Dwight Merriman)
MongoSF3.5K views
Ruby Topic Maps Tutorial (2007-10-10) by Benjamin Bock
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)
Benjamin Bock587 views
Efficient JavaScript Development by wolframkriesing
Efficient JavaScript DevelopmentEfficient JavaScript Development
Efficient JavaScript Development
wolframkriesing962 views
Better Data Management using TaffyDB by typicaljoe
Better Data Management using TaffyDBBetter Data Management using TaffyDB
Better Data Management using TaffyDB
typicaljoe5.7K views
Scala 3camp 2011 by Scalac
Scala   3camp 2011Scala   3camp 2011
Scala 3camp 2011
Scalac941 views
Acts As Recommendable by maccman
Acts As RecommendableActs As Recommendable
Acts As Recommendable
maccman484 views
Ruby sittin' on the Couch by langalex
Ruby sittin' on the CouchRuby sittin' on the Couch
Ruby sittin' on the Couch
langalex1.5K views
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z... by Data Con LA
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Data Con LA553 views
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J... by Databricks
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Databricks98.6K views

Recently uploaded

CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
135 views13 slides
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericShapeBlue
130 views9 slides
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlueShapeBlue
147 views23 slides
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueShapeBlue
138 views15 slides
Qualifying SaaS, IaaS.pptx by
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptxSachin Bhandari
1K views8 slides
Generative AI: Shifting the AI Landscape by
Generative AI: Shifting the AI LandscapeGenerative AI: Shifting the AI Landscape
Generative AI: Shifting the AI LandscapeDeakin University
53 views55 slides

Recently uploaded(20)

CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue135 views
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue130 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue147 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue138 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays56 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue221 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue173 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue186 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue252 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue159 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu423 views
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue184 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue152 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue206 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software176 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue203 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue218 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue166 views

Relaxing With CouchDB