Nordstrom relies on Chef to manage over 6500 Linux and Windows servers in their data center and in the cloud.
More and more app development teams at Nordstrom are adopting Chef to help them deliver software and manage their infrastructure. These teams want to go from zero to their first cookbook as quickly as possible.
In the past, to get started with Chef, Nordstrom’s app developers had to manually install and configure many unfamiliar tools such as ChefDK, git, a text editor, and a local VM stack. The slow process frustrated the app teams, who are under pressure to reduce cycle time and ship tested, reliable features to support Nordstrom’s customers.
To help new teams adopt Chef as quickly as possible, Nordstrom’s Chef team summer intern, Serena Ahuja, paired with Doug Ireton, Chef team engineer, to write and open source the chefdk_bootstrap cookbook, which sets up a Mac or Windows workstation for Chef development in 20 minutes. At Nordstrom, this has become the standard way new engineers set up their laptops for Chef development.
Nordstrom’s Chef team
Nordstrom’s Chef team maintains the Chef servers, develops tools to help app teams use Chef, and holds twice weekly office hours to help engineers write maintainable cookbooks. Doug has been using Chef for three and a half years. The Nordstrom Chef team also maintains Chef-Vault, an open source gem for securely managing secrets, such as the passwords and SSL certs that are used in Chef recipes.
Serena Ahuja is a sophomore at the University of Illinois, majoring in Computer Engineering. She was hired on to Nordstrom’s Chef team as part of Nordstrom’s summer Technology Internship program. Although Serena had programmed in Java and C++ during high school and her freshman year at college, she had no experience with Chef, Ruby, source control, testing, or the command line. In short she was the perfect person to help develop a cookbook for developers and sysadmins new to Chef development.
When she started, Serena found that her own experience mirrored that of many other Nordstrom employees who were new to Chef. “When I first started, I was really excited to learn about Chef. I knew how important it was to Nordstrom.
“The problem was that I didn’t know where to start or how to set up my computer. When a person doesn’t have much background, they don’t even know what their choices are. They have no way to make that assessment for themselves because they don’t have any experience. I wanted the decisions to be made for me so I could start learning how to use Chef.
“Two of Nordstrom’s Chef engineers worked with me for two days to manually install all the tools needed for Chef development. The main difficulty was that we were working behind a proxy, so setting stuff up took more time.”
Writing the ‘chefdk_bootstrap’ cookbook
When it came time to begin coding, Doug and Serena worked together closely over the summer. Serena says, “When it actually came to executing the ideas that were in the chefdk_bootstrap cookbook, Doug was with me and we pair programmed. We talked a lot. We made a fake cookbook that wouldn’t be used, just to play with it and learn. I also learned bash and a little bit of PowerShell.
“We also did a lot of testing on the cookbook, which is a really good skill to learn. Testing helped me catch a lot of things. I got lucky because Doug taught me about testing from the get-go. At the beginning of anything new, Doug was with me but because we tested one piece at a time, I got to the point where I said, ‘Oh, I can do this, it worked, I can do it by myself!’ Doug did maybe the first three tests with me and I did the rest. I don’t know how to do it any other way than to test a couple features at a time. A lot of people have been coming to office hours and they’ve been struggling with that concept themselves.”
Empathy and listening to customers
When it came time to have people try out the new cookbook, Serena sat with people who came to office hours. “Because the cookbook’s fairly new, I usually ask people to sit next to me while they’re doing it. I direct them to the chefdk_bootstrap page on Supermarket and tell them to follow the instructions. I try to test to see whether, if I don’t say anything, they could follow those instructions. We watch the process and if there’s an issue we take note of that to see what we can fix. We’re still making fixes to the cookbook but it’s been working for our customers.
“With our cookbook, we wanted to minimize the number of commands people had to use to a couple versus a lot, and to have it set up automatically so that people could spend less time setting up their computers and start learning faster. That’s what I wanted. I just wanted to get started as fast as possible so I could start doing the activities on Learn Chef.”
Doug added, “Listening to our internal customers is the most important part of our job. They have the most important perspective and we write our tools to make their jobs easier.”
Serena had a great summer at Nordstrom. She experienced the pain of setting up her laptop for Chef development and from that experience wrote an open source cookbook to help new Chef users set up their laptops in minutes instead of hours. This directly helps Nordstrom’s app teams, and anyone in the community, to start using Chef to automate configuration of their apps. The cookbook helps the Nordstrom Chef team on-board new app teams faster. Doug says, “We’ve reduced total on-boarding time from four days to two days using this cookbook.”
Serena summed up her experience. “One thing I learned through this process is how important Chef is and what value it can bring.”
The Nordstrom Chef team would love to see the Chef community use the chefdk_bootstrap cookbook to bootstrap their own laptops in minutes. The team also welcomes open source contributions at Nordstrom/chefdk_bootstrap on Github.