SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Get your database under control


                 Automated testing with
                 MongoDB and OffScale


Omer Gertel
CTO @ OffScale
Managing
databases is
complicated
Many people
             are involved


Developers     QA   DBAs    IT
Production




        Multiple
Dev
      environments     Integration




             QA
Multiple
copies and
 versions
We Help Companies…

          Iterate Faster &
      Release Better Products
By…

      Shortening product cycles
        with DB management
             automation
Copy data
Write code
Write unit tests

                        Production




        Dev                          Integration




 Clone Schema                         Clone schema
 Copy data                            Copy data
 Test the application                 Run integration
                          QA
Copy data
                                    DataGrove
Write code
Write unit tests                    Git for databases
                       Production




                                         Staging
       Dev




Clone Schema                             Clone schema
Copy data                                Copy data
Test the application                     Run integration
                           QA
For developers, by developers
  $   datagrove     tag -n=new_tag
  $   datagrove     list
  $   datagrove     load -n=old_tag
  $   datagrove     unload

 • Works automagically
 • Easy to integrate with existing tools
 • Your personal database time machine for FREE
Automated Testing

• Integration tests
• Build servers and continuous integration
• Migrations
  –Some MongoDB specific issues
Automated Tests

•   Isolated
•   Repeatable
•   Researchable
•   Fast
Automated Tests

• For each test:
  – Populate database
  – Run test
  – Drop database
What happens if a test breaks?

•   Does it affect other tests?
•   Does it stop the build cycle?
•   How do you discover what went wrong?
•   Is the bug related to the data?
•   How can you reproduce the bug?
•   What happens when you push a fix?
Automated Tests

• For each test:
  – Load dataset
  – Run test
  – If test fails:
     • Tag dataset at end of run
Schema Migrations
Schema Migrations
Schema Migrations
Object Structure & Index Changes
• Migrate ALL the objects
  – Test before you run
• Support older structures in code
  – Test code against old objects
  – Have datasets ready tagged by version
Version management that doesn’t suck




 Make MongoDB a first
 class citizen of the
 development cycle
Existing MongoDB Support
  For single node environments

      $ datagrove load -
      n=tag_name
                      Mongod
                                      1 Create virtual mount point:
                                        /media/offscale
                                        (1-10 sec)
                   /media/offscale
                                      2 mongod --dpath= /media/offscale


                                     path-to-store-
path-to-old-data
                                        changes
  (optional)
Existing MongoDB Support
  For single node environments

      $ datagrove tag -
      n=tag_name
                                         {fsync:1,lock:1}
                                       1 (using Java driver)
                      Mongod

                                       2 Tag point in time in virtual drive
                                         (1-10 sec)
                   /media/offscale
                                       3 db.$cmd.sys.unlock.findOne()


                                     path-to-store-
path-to-old-data
                                        changes
  (optional)
Upcoming MongoDB Cluster Support
 Conceptual architecture for taking a snapshot
                                       $ datagrove tag-n=t
     Primary
         Primary
       SlavePrimary                  Cfg 1
          Slave
       Slave Slave                   Cfg 2
          Slave                                             Pause shard
    Replica Set                      Cfg 3              1
             Slave                                          balancing
       Replica Set               Configuration              Issue datagrove tag for
                                                        2
          Replica Set               cluster                 configuration server
                                                        3 Issue datagrove tag,
One node managed under        One or more nodes           one shard at a time
OffScale, per replica set,    managed by OffScale for     Resume shard
allows for backup, recovery   backup and recovery of    4
                                                          balancing
and creating new nodes        configuration servers
Automated testing with
OffScale & MongoDB
• Data is a first class
  citizen in your
  environment

• Testing is important to
  keep your code working

• Iterate faster & release
  better products
Get your database under control



                         Now available at
                 http://off-scale.com/

Weitere ähnliche Inhalte

Was ist angesagt?

Deploying postgre sql on amazon ec2
Deploying postgre sql on amazon ec2 Deploying postgre sql on amazon ec2
Deploying postgre sql on amazon ec2
Denish Patel
 

Was ist angesagt? (20)

Move Over, Rsync
Move Over, RsyncMove Over, Rsync
Move Over, Rsync
 
Planning For High Performance Web Application
Planning For High Performance Web ApplicationPlanning For High Performance Web Application
Planning For High Performance Web Application
 
Deploying postgre sql on amazon ec2
Deploying postgre sql on amazon ec2 Deploying postgre sql on amazon ec2
Deploying postgre sql on amazon ec2
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018
 
Postgres Toolkit
Postgres ToolkitPostgres Toolkit
Postgres Toolkit
 
Linux HTTPS/TCP/IP Stack for the Fast and Secure Web
Linux HTTPS/TCP/IP Stack for the Fast and Secure WebLinux HTTPS/TCP/IP Stack for the Fast and Secure Web
Linux HTTPS/TCP/IP Stack for the Fast and Secure Web
 
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기
 
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on DockerRunning High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
 
Introduction to Apache ZooKeeper
Introduction to Apache ZooKeeperIntroduction to Apache ZooKeeper
Introduction to Apache ZooKeeper
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
 
Continuous Integration on Steroids
Continuous Integration on SteroidsContinuous Integration on Steroids
Continuous Integration on Steroids
 
Spark / Mesos Cluster Optimization
Spark / Mesos Cluster OptimizationSpark / Mesos Cluster Optimization
Spark / Mesos Cluster Optimization
 
使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展
 
Managing Postgres with Ansible
Managing Postgres with AnsibleManaging Postgres with Ansible
Managing Postgres with Ansible
 
Effective Testing in DSE
Effective Testing in DSEEffective Testing in DSE
Effective Testing in DSE
 
Multi Master PostgreSQL Cluster on Kubernetes
Multi Master PostgreSQL Cluster on KubernetesMulti Master PostgreSQL Cluster on Kubernetes
Multi Master PostgreSQL Cluster on Kubernetes
 
DataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The Sequel
 
Distributed Applications with Apache Zookeeper
Distributed Applications with Apache ZookeeperDistributed Applications with Apache Zookeeper
Distributed Applications with Apache Zookeeper
 

Ähnlich wie Automated testing with OffScale and MongoDB

Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with JepsenTesting Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
jkni
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
Eric Bottard
 
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
James Chen
 
Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-final
MongoDB
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
MongoDB
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Baruch Sadogursky
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
MongoDB
 

Ähnlich wie Automated testing with OffScale and MongoDB (20)

mongodb tutorial
mongodb tutorialmongodb tutorial
mongodb tutorial
 
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With JepsenDataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
 
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with JepsenTesting Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
CI/CD with an Idempotent Kafka Producer & Consumer | Kafka Summit London 2022
CI/CD with an Idempotent Kafka Producer & Consumer | Kafka Summit London 2022CI/CD with an Idempotent Kafka Producer & Consumer | Kafka Summit London 2022
CI/CD with an Idempotent Kafka Producer & Consumer | Kafka Summit London 2022
 
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
[Hic2011] using hadoop lucene-solr-for-large-scale-search by systex
 
Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-final
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
 
sudoers: Benchmarking Hadoop with ALOJA
sudoers: Benchmarking Hadoop with ALOJAsudoers: Benchmarking Hadoop with ALOJA
sudoers: Benchmarking Hadoop with ALOJA
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
 
The Pill for Your Migration Hell
The Pill for Your Migration HellThe Pill for Your Migration Hell
The Pill for Your Migration Hell
 
De Java 8 ate Java 14
De Java 8 ate Java 14De Java 8 ate Java 14
De Java 8 ate Java 14
 
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
 
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
JavaOne India 2011 - Running your Java EE 6 Apps in the CloudJavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
 
Groovy In the Cloud
Groovy In the CloudGroovy In the Cloud
Groovy In the Cloud
 
Running your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the CloudRunning your Java EE 6 Applications in the Cloud
Running your Java EE 6 Applications in the Cloud
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the Cloud
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Automated testing with OffScale and MongoDB

  • 1. Get your database under control Automated testing with MongoDB and OffScale Omer Gertel CTO @ OffScale
  • 3. Many people are involved Developers QA DBAs IT
  • 4. Production Multiple Dev environments Integration QA
  • 6.
  • 7. We Help Companies… Iterate Faster & Release Better Products By… Shortening product cycles with DB management automation
  • 8. Copy data Write code Write unit tests Production Dev Integration Clone Schema Clone schema Copy data Copy data Test the application Run integration QA
  • 9. Copy data DataGrove Write code Write unit tests Git for databases Production Staging Dev Clone Schema Clone schema Copy data Copy data Test the application Run integration QA
  • 10. For developers, by developers $ datagrove tag -n=new_tag $ datagrove list $ datagrove load -n=old_tag $ datagrove unload • Works automagically • Easy to integrate with existing tools • Your personal database time machine for FREE
  • 11.
  • 12. Automated Testing • Integration tests • Build servers and continuous integration • Migrations –Some MongoDB specific issues
  • 13. Automated Tests • Isolated • Repeatable • Researchable • Fast
  • 14. Automated Tests • For each test: – Populate database – Run test – Drop database
  • 15. What happens if a test breaks? • Does it affect other tests? • Does it stop the build cycle? • How do you discover what went wrong? • Is the bug related to the data? • How can you reproduce the bug? • What happens when you push a fix?
  • 16. Automated Tests • For each test: – Load dataset – Run test – If test fails: • Tag dataset at end of run
  • 19. Schema Migrations Object Structure & Index Changes • Migrate ALL the objects – Test before you run • Support older structures in code – Test code against old objects – Have datasets ready tagged by version
  • 20. Version management that doesn’t suck Make MongoDB a first class citizen of the development cycle
  • 21. Existing MongoDB Support For single node environments $ datagrove load - n=tag_name Mongod 1 Create virtual mount point: /media/offscale (1-10 sec) /media/offscale 2 mongod --dpath= /media/offscale path-to-store- path-to-old-data changes (optional)
  • 22. Existing MongoDB Support For single node environments $ datagrove tag - n=tag_name {fsync:1,lock:1} 1 (using Java driver) Mongod 2 Tag point in time in virtual drive (1-10 sec) /media/offscale 3 db.$cmd.sys.unlock.findOne() path-to-store- path-to-old-data changes (optional)
  • 23. Upcoming MongoDB Cluster Support Conceptual architecture for taking a snapshot $ datagrove tag-n=t Primary Primary SlavePrimary Cfg 1 Slave Slave Slave Cfg 2 Slave Pause shard Replica Set Cfg 3 1 Slave balancing Replica Set Configuration Issue datagrove tag for 2 Replica Set cluster configuration server 3 Issue datagrove tag, One node managed under One or more nodes one shard at a time OffScale, per replica set, managed by OffScale for Resume shard allows for backup, recovery backup and recovery of 4 balancing and creating new nodes configuration servers
  • 24. Automated testing with OffScale & MongoDB • Data is a first class citizen in your environment • Testing is important to keep your code working • Iterate faster & release better products
  • 25. Get your database under control Now available at http://off-scale.com/

Hinweis der Redaktion

  1. 20-30% of time, talked to many companies, copying and refreshing data for many purposes during the life cycle of the product (not just the production system)
  2. Tales of BigCo & BigIT.“With DataGrove the R&D can do it himself in minutes instead in days”This also plays on the self-service on premise service-like feature of our product. Liberation of programmers from DBAs.
  3. Tales of littleCo. Can’t reproduce. Have to constantly copy and refresh.
  4. And then, we just had multiple versions, as we branched the code. So each developer had their own flavor of data that they liked.But all that just made us want to scream…
  5. So if now there’s a lot of management and copying of data around, we turn the product development cycle into something more flexible. We bring the paradigms from source control into the database world, and can make your mongoDB a first class citizen in your development process just like code and other resources that are managed.
  6. Introducing DataGrove, Git for databases. We do this by providing a snapshot mechanism that has been optimized to allow multiple users to quickly tag, restore and share the state of the database between team members and environments.
  7. By developers, for developers.We try and make the experience as seamless as possible, so, for example, when you tag, we take care of whatever needs to be done to the database to enforce that the tag is consistant. With mongodb, this will be fsync + write lock for a second. There’s still a lot of work to be done – such as helping with the configuration of the instance, etc.Easy to integrate, should be able to connect with hooks to existing source control with a few simple lines of code. Also have API. We will provide connectors to most popular source control and build servers, but will be even happier if these will be owned and managed by the community.Our beta is available on our website, url at the end of presentation. Allows for a single server installation (tag & restore, without sharing) akin a time machine for databass. Supports popular OS and DBs Linux, OS X, mysql, postgresql and a single node mongodb (excited to announce).And it’s FREE, so we would love to hear back from you about how to improve.
  8. Now, let’s talk about automated testing, because I know for a fact that when it comes to the database, there’s a tendency to act too boldly. Either because it’s too complicated to get a working copy of the data they need to test, or that it takes too much time to develop scripts to solve the issue of automated tests against a database.So they write unit tests. But in a NoSQL environment, when the database can get very large and varied (which is worse with NoSQL), testing the code alone is not enough.
  9. Having unit tests to test the code is good, but not enough. There are several layers of testing, and the more automation you can have, the more efficient you will be in releasing new features and products, while maintaining a good cycle time and product quality, and protecting you from human error.