Pinterest, the popular “pinboard” social network, knows a little something about meteoric growth. Recent research from Experian Marketing Services shows that, in North America, online visits exploded to 28.95 million per week in July, up a whopping 5,124 percent from 1.27 million visits for the year-ago period.
And Ryan Park, operations engineer for the San Francisco company, knows a lot about what it takes to keep the systems supporting all that growth running. In his view, devops plays an important role there. Devops is the school of thought which mandates that developers and IT operations people work together to deliver new features to end users/customers. Traditionally, developers worked on more monolithic code releases and then threw them over the wall to the operations people who –ready or not — had to deploy the software. In many cases neither camp knew much about what the other did and that tended to lead to deployment issues.
The much-touted advantage to devops is a faster, more efficient delivery of needed new features. More incremental updates and faster fixes means happier end users/customers. What has been less covered is that devops is hard. It is, it’s a new way of doing business, but it’s still worth doing. The learning curve for tools like Puppet Labs’ Puppet (see disclosure) and Opscode’s Chef is pretty steep, but that shouldn’t stop companies from using them, Park said.
1: Use automation. Take a look at the available tools, pick one and use it, Park said. Pinterest uses the Puppet configuration management tool which automates the process of launching new servers as needed and — perhaps more importantly — configuring them correctly.
“Before there was a lot of manual integration, a lot of tracking names and checking what server was doing what, adding access for new users. It was all by hand and a real pain and it wasn’t always reliable — maybe only 91 of 100 servers got rolled out, automation solves that,” he said.
2: Build a single source of truth. It’s still not easy but the use of the Puppet or Chef dashboard makes it easier to keep track of which systems are running in house or on Amazon EC2. “It’s important to get in the habit of setting up that source of truth — systems need to know the names of all the servers and which are running memcached [distributed object memory] or other services.” Park said. But to get that all-important repository, that data has to be entered.
3: Mitigate culture clash. Developers and ops people think and work differently largely because they have traditionally had conflicting goals. Developers want to deploy the coolest stuff fast and ops people want to make sure the systems that are running now keep running. It helps to hire software engineers that understand something about operations and operations pros that understand something about development. And both groups need to be aligned with the company’s business goals.
4: Think ahead. Enterprises that already have large dev and ops teams in place have one set of problems getting those camps to work together. Startups have an advantage in that they’re starting smaller, but as they ramp up, it’s important for them to set up their processes and technologies right so that changes and additions down the road come easier, Park said.
5: Embrace the community. There’s a growing number of devops pros out there. Use them. Get on the right mailing lists, attend meetups and vendor conferences. Pinterest’s Park will speak about devops lessons learned at the Puppet Conference is coming at the end of the month, for example.
Disclosure: Puppet Labs is backed by True Ventures, a venture capital firm that is an investor in the parent company of this blog, Giga Omni Media. Om Malik, founder of Giga Omni Media, is also a venture partner at True.