Etsy Uses DevOps for Rapid Deployment Looking for a unique gift—such as a personalized, handstamped fishing lure or maybe a vintage gold hairpin or even a crocheted hat for your cat? If so, you might want to join the 24 million active buyers who turn to the Web site Etsy as their source for handmade and vintage products—ranging from art and photography to clothing and jewelry to home décor and furniture. Etsy was founded in 2005 in an apartment in Brooklyn, New York, by a small group of people who saw a need for an online exchange where crafters and artists could sell their handmade and vintage goods along with art and craft supplies. The company, which views itself as a global community of creative entrepreneurs, shoppers, manufacturers, and suppliers, now has more than 800 employees and a peer-to-peer e-commerce site that generated close to $2.4 billion in sales in 2015. Currently, the site has over 35 million items available for sale from 1.6 million active sellers around the world. Early on, Etsy placed a high priority on developing a sophisticated technology platform to support its business, with an engineering culture centered around a philosophy that the company has dubbed “Code as Craft” (the company even operates an engineering blog under that name). However, as with many start-ups, the development of Etsy’s internal structures was not always carefully planned. As a result, siloes and other barriers to collaboration gradually developed across the company, affecting its ability to keep its software development efforts on the cutting edge. Despite those challenges, the company grew rapidly, and as early as 2008, the company was deploying new releases to its site twice a week—a pace matched by few other companies at the time. However, each of those deployments typically took over four hours to complete, and according to Michael Rembetsy, vice president of technical operations at Etsy, “Deploys were very painful. We had a traditional mindset: developers write the code and ops deploys it.” That divide often resulted in faulty releases that shut down the site for prolonged periods, causing real concern for the users around the world who relied on the site to make a living. When Chad Dickerson, who had spent years as CTO at Yahoo!, joined Etsy as its new CTO, he quickly brought in a new technical management team, which pushed the company to adopt a more agile approach to software development in order to roll out improvements and updates with greater ease and fewer disruptions. According to Jon Cowie, an operations engineer at Etsy, “Bringing that group in is what first planted the seed of DevOps and the move to a continuous rate of delivery, and it’s all really grown from there. As the company has grown, this idea that the closer developers and operations work together and understand each other’s problems, the more the company can achieve, has really taken hold.” Like many companies, Etsy was attracted to DevOps as a way to create a more responsive software development process—one that allows for continuous integration and deployment. However, adopting DevOps practices has also encouraged a more collaborative approach to development— a shift that has been both challenging and rewarding for the company. Notes Cowie, “The hardest part is getting the business culture right…. You may have to deal with stakeholders at different levels who may not like this idea of relinquishing some power or giving people access to systems they previously haven’t had.” One of the big rewards for Etsy is that its developers are now able to push code to a production server up to 60 times a day. Often, the first release is to a limited audience of employees or a small, randomly selected group of users. With testing and feedback, the code can then be pushed to the entire Etsy community. According to Rembetsy, “We started to understand that if developers felt the responsibility for deploying code to the site they would also, by nature, take responsibility for if the site was up or down, take into consideration performance, and gain an understanding of the stress and fear of a deploy.” As Rembetsy notes, “Mistakes happen, we find them, fix them, and move on. The important thing is to learn something from the process, and never make the mistake again in the future.”
` Critical Thinking Questions
1. It is perhaps not surprising that Easy was an early adopter of DevOps. It is a relatively small company, with a start-up culture, and its move to DevOps was championed by company leaders. Do you think deploying devOps practices would be more difficult in a larger, more established organization? How might a company begin to make the cultural changes needed to move to the more collaborative, rapid-deployment approach that DevOps offers?
2. At Etsy, new developers are expected to begin pushing code to production on day one. That expectation is one way Etsy encourages its employees to embrace change—and a certain degree of risk—instead of fearing it. Would you feel comfortable working as a business manager in a company that gives individual developers so much freedom and responsibility? What would be some of the advantages to a business manager of such a culture? What might be some of the disadvantages?
3. What would be some of the criteria you would use to measure the success of a shift to DevOps practices within a company? CHAPTER 8 • System Acquisition and Development 397 Copyright 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. WCN