Are the belts-and-suspender approaches of traditional databases with traditional transaction protection the right thing for your data? Or do you want a faster, cheaper, more modern tool that will spread the load effectively over a cluster of machines? Sure, consistency and accuracy are important to banks, but what about a table full of random blather from the Internet? Does everything need the best protection that data scientists can deliver? The answer (often): Those who need absolute consistency like banks and airlines go with traditional SQL databases with real transactions. Everyone else chooses the speedy, simpler, scalable NoSQL.
Dev tech battle No. 7: Chef vs. Puppet
Long ago, a corporation had a few servers in the backroom and installing new software was simple. Then the cloud exploded and every website worth anything ran on a cluster of machines that needed to be kept running. That meant doing things N times to the N machines and not messing up. Chef and Puppet are two tools that have arisen to help admins run an assembly line for configuring cloud machines.
Devops specialists devoted to Chef champion the configuration management tool's flexibility in letting you write instructions for creating machines in Ruby. "You get the power of Ruby for free," they say. Puppet also configures the cluster but with instructions specified in a JSON-like language focused on doing one thing well. While newer versions of Puppet allow a bit of Ruby, the basic language remains dominant. Is it better to create a custom syntax for the job or give people the power (and danger) of a wide-open, general-purpose language?
Sign up for CIO Asia eNewsletters.