TopPodcast.com
Menu
  • Home
  • Top Charts
  • Top Networks
  • Top Apps
  • Top Independents
  • Top Podfluencers
  • Top Picks
    • Top Business Podcasts
    • Top True Crime Podcasts
    • Top Finance Podcasts
    • Top Comedy Podcasts
    • Top Music Podcasts
    • Top Womens Podcasts
    • Top Kids Podcasts
    • Top Sports Podcasts
    • Top News Podcasts
    • Top Tech Podcasts
    • Top Crypto Podcasts
    • Top Entrepreneurial Podcasts
    • Top Fantasy Sports Podcasts
    • Top Political Podcasts
    • Top Science Podcasts
    • Top Self Help Podcasts
    • Top Sports Betting Podcasts
    • Top Stocks Podcasts
  • Podcast News
  • About Us
  • Podcast Advertising
  • Contact
Not in our directory?
Add Show Here
Podcast Equipment
Center

toppodcastlogoOur TOPPODCAST Picks

  • Comedy
  • Crypto
  • Sports
  • News
  • Politics
  • True Crime
  • Business
  • Finance

Follow Us

toppodcastlogoStay Connected

    View Top 200 Chart
    Back to Rankings Page
    Software How-To

    Arrested DevOps

    Arrested DevOps is the podcast that helps you achieve understanding, develop good practices, and operate your team and organization for maximum DevOps awesomeness.

    Advertise

    Copyright: © Copyright 2013-2021 Arrested DevOps

    • Apple Podcasts
    • Google Play
    • Spotify

    Latest Episodes:
    Help! I Need Somebody Aug 04, 2014
    Show notes

    Asking for Help Is Not Announcing a Problem

    Sasha Rosenbaum, the show's first returning guest, and Dave Gerding, an associate professor at Columbia College Chicago who also does management consulting, take up how to ask for help, with Matty's voice shot after the Agile 2014 conference. Dave teaches the McCarthy protocols, a management doctrine published under an open source license, whose cornerstone skill is asking for help, "which is kind of a funny idea since everyone thinks that they do it and almost nobody does." In the protocol you say "will you help me?", which separates asking from what he jokingly calls announcing a problem. Walking into a room and saying "boy, my shoes are really dirty" is announcing a problem, since you haven't asked anyone for anything.

    Announcing a problem, Dave says, is a cop-out that lets you avoid being vulnerable, and it isn't common in tech to lead with vulnerability. Sasha adds that it's a two-way street: it takes confidence both to ask and to respond, and even if you can't help you shouldn't shut people down so that they don't want to ask again.

    Help From People You Don't Know

    Matty points out that with open source you don't call a support hotline, you go to IRC or a mailing list, and the community has to welcome you (The Ship Show did an episode on this, linked below). Sasha says she gets few responses when she posts on social networks or Stack Overflow, and goes directly to people she knows. Matty says crowdsourcing on Twitter only works if the people who know the answer follow you, and now that people who know Chef follow him, he needs that help less, which is a vicious cycle. Trevor's approach is to find out who the right person is and ask, and Matty says that if you say Nathen Harvey three more times "he will show up in the podcast like Beetlejuice."

    Dave's tip for small open source projects is to kick $10 into their PayPal donate button before asking anything, which in his anecdotal experience gets a better response. He says not asking is "leaving a huge pile of free value on the table," and points out how cheap transacting is. Sasha adds that people you tag or message are usually happy to help, because it makes them feel good and gives them a chance to share their view of their product.

    Please Don't Let Me Google That for You

    Sasha says the person you ask can go wrong in two ways: by leading you down the wrong path instead of admitting they don't know, and by being condescending, like sending you a "let me Google this for you" link. Trevor adds there's a difference between that and asking "did you Google the issue first?", which Dave used to ask him at work, and Dave apologizes to Trevor and the entire internet.

    Matty describes the help vampire, from a Stack Exchange article: someone who asks what everyone has asked, seems unwilling to Google, and expects you to do their thinking. Because experts get deluged, he suggests showing you've done due diligence, and vouching by retweeting someone's question to people you know. Sasha distinguishes strangers, where she does her research first, from a coworker, where she asks first ("what are the best recommended steps?") and then Googles the hell out of it.

    Ask the Duck

    Dave says asking a person is different emotional work from posting to a group, and that he's often had the problem reveal itself as soon as someone leans into his frame. Sasha recommends the Ask the Duck article on rubber duck debugging: you don't need the other party to speak, just to phrase your problem as a question, which lets another part of your brain look at it. Dave says he'll go get a rubber duck tomorrow, and Matty says he had a Dalek on his desk but "you would just get exterminated." Dave: "It has one answer for all problems."

    Dave says the question format softens ego, because we're often "solving the solution instead of solving the problem," and asking makes us drop the concept we thought was right. Asking a human, he adds, also gets you socialization and sometimes something better than you'd have come up with.

    Too Junior, Too Senior

    Sasha says the ego problem hits people at the beginning and the end of a career. Beginners feel they must solve everything themselves and that asking makes them look weak. Senior people feel trapped by the need to keep their authority, while "best senior people that I know are absolutely not afraid of admitting that they don't know." Consulting taught her that "you don't know anything," so there's no shame in asking. She notes the waste when you spend two days on a problem that someone at the next desk solved yesterday. Dave calls it sad when executives won't be vulnerable, since they seal their own fate, cut themselves off from new ideas and stop anyone sharing them. Trevor says practicing this teaches you who your go-to people are.

    Boundaries, No, and Asking for Help Asking for Help

    Trevor raises the excuse that you'll be bothering someone. Matty says the answer is boundaries, and that a tweet is low-cost, while cornering a speaker at a conference isn't. He cites Seth Vargo's Twitter bio saying he doesn't reply to technical support questions, so tweeting one at him would violate his boundary. In an office you can just ask: "how do I ask you for help in a way that is effective?" Dave: "will you help me ask you for help?" Sasha prefers asynchronous chat over "do you have a second?" because it lets her finish her own task first.

    For people who freeze after one no, Matty says offer options instead of saying no: help in an hour, or write up your question and he'll come find you. Dave thinks that when people say they're afraid of hurting someone's feelings, they're often afraid of their own being hurt by hearing no. His advice for someone hearing no all the time is "you have to ask for help about asking for help. You just got to pop a level and go meta for a minute." Sasha says she finds it hard to ask in her personal life but easy at work, because she focuses on results, and suggests others do the same. Dave says gender is clearly a big parameter and that, stereotypically, men are more likely to fall into the trap of not being vulnerable. His last word is "do it more."

    • The Ship Show - Asked and Answered: http://theshipshow.com/2013/04/asked-answered/
    • Sascha Bates - Whip it Good http://www.youtube.com/watch?v=k7Fcb_MCzY0
    • The Help Vampire Problem http://meta.stackexchange.com/questions/19665/the-help-vampire-problem
    • Rubber Duck Debugging - http://en.wikipedia.org/wiki/Rubber_duck_debugging
    • Rubber Duck Problem Solving - http://blog.codinghorror.com/rubber-duck-problem-solving/

    Check Outs

    Matt

    • Chef Meetup - Testing Cookbooks and Chef Hack day (aug 19) http://www.meetup.com/Chicago-Chef-User-Group/events/193996782/
    • Scroll Down To Riker http://scrolldowntoriker.com
    • Registration is open for Chef Community Summit https://www.arresteddevops.com/chefcommunity

    DevOpsDays Minneapolis Jul 18, 2014
    Show notes

    Live at the First DevOpsDays in the Midwest

    Matty records from the first DevOpsDays Minneapolis, the first one in the Midwest, and his first DevOpsDays and first Ignite talk. With Trevor away, Chef's Julian Dunn co-hosts. Julian says this is about his fourth DevOpsDays and that what's interesting is the local flavor. In an open space the day before on how not to be a pointy-haired boss, someone said direct feedback is harder in Minnesota because of a "Minnesota nice" complex, where giving direct feedback is considered impolite.

    Small Teams, Big Companies

    Ryn Daniels, the one-person ops team at GameChanger, gave a talk called "DevOps is Dead" that uses a simplified Gartner hype cycle. It argues the term has been used and misused until it's a buzzword, especially for recruiters, and tries to return to first principles. At her company the developers are all on call, which she says aligns incentives, because they're the first line when something breaks and care more about the quality of their own product. She calls it the best DevOpsDays she's attended, with more culture than tools and plenty of open spaces.

    JP Morgenthal, who leads cloud computing and DevOps practice at Perficient, is also at his first one. He says people at other conferences won't open up to a stranger about a broken job or a bad boss, while in an open space they share quickly, and the discussions are "far better than any cloud or DevOps conference that I've been to so far." He notes a small team like Ryn's can make headway that a Fortune 2000 company with embedded fiefdoms and legacy systems struggles with, and asks what a company with 40,000 people in IT can learn from a one-person ops team's revenue per employee.

    Matty brings in Jez Humble's point from the previous episode about maneuver warfare, and adds that enterprises used to keep quiet about their DevOps work, so people heard only about Facebook and Netflix, and he talks of "no-logo customers" who do the work but won't go on record. His view is that big companies are made of small teams, and small teams are made of people.

    Command and Control, If You Trust the Command

    Patrick Debois asks JP whether he'd follow command and control if he trusted the command. JP's answer is that in the military the alternative is death, and that the people below "look up and go, what an idiot. I could do it so much better." Matty thinks the answer is that leaders earn trust by showing trust: he'll still coach and sometimes can't share information, but in a culture of trust people assume there's a reason. He says he said trust "like 35 times, and I think there's a reason." Ryn says visibility and transparency are what built her trust in managers, and Matty's rule is that "transparency is the default, and you override it as needed and as rarely as possible."

    An audience member, a group technology director, says he oscillates between high-trust and command-and-control and describes directional shepherding, where strong individual contributors form a mesh toward a shared goal. Pure command and control fails because "no one is omnipotent."

    Conway's Law, On Purpose

    Matty wonders whether an organization's culture drives its software architecture, since in places without trust service-oriented architecture never occurs to anyone, because you can't rely on a contract with people you don't trust. JP and Ryn both name Conway's Law. Julian asks whether it's like Moore's Law, something to respect, or something to explode. JP reports an open space the day before on "anti-Conway's Law," concluding that it's an observation, and asking whether organizing yourself on purpose would shape the product. Some examples suggested it did. An audience member adds that language matters, since calling work a product instead of a project changes how a team feels about it.

    The Bounty That Created a Black Market

    An audience member from SPS Commerce says enterprises re-evaluate trust with statistics, since they need business numbers, and that incents teams to make the graph look okay. "Are you gonna come to work and do a good job, or do you wanna look like you're doing a good job?"

    Matty recalls a Scott Adams story about a company that paid testers a bounty for every bug found and developers a bounty for every bug fixed, and overnight a black market in bugs appeared, until they'd paid out around $6,000 in the first week. The audience member suggests getting the Freakonomics authors to study DevOps culture, and JP recommends the book Business at the Speed of Trust.

    How DevOpsDays Started

    Matty asks Patrick and Bridget Kromhout how everyone ended up here. Bridget's version is that she showed up at a local meetup where people were hoping to start a DevOpsDays Minneapolis, was asked to help, and said yes, and that with a great team such things are possible. She told Patrick it's a franchise: "We're not gonna always do things your way." He's run about 30.

    Patrick tells the origin story. After 15 years working in government, he was moving a data center and looking for process ideas. The team tried Scrum, which was too slow for day-to-day work, then Kanban, and he wrote a paper for the Agile conference in Toronto in 2008. At the same conference Andrew Clay Shafer had scheduled a birds-of-a-feather session on Agile infrastructure and gave up when nobody came, since Patrick arrived after he'd left. They connected on Twitter, and when Patrick said someone should hold a conference, someone tweeted back "why don't you run your own conference?" He took the open space format from Agile events in Belgium and added morning talks to inspire the afternoon discussions.

    Bridget says the hardest part was keeping the schedule on time for the livestream audience, since people on Twitter were asking if it was down. Patrick offers as evidence of how she runs things that when a vegan speaker couldn't have the hotel's cookie, she went to a food co-op to buy a vegan one. Bridget's reasoning: "the chocolate chip cookie is not accessible to you, you're not having a good experience."

    First-Timers, Goats, and Marketing

    Several audience members are at their first DevOpsDays, and praise the quality and depth of the conversations. One asked what the unicorn and goat things were about, and says the strong sense of community is what people are looking for. Matty says his own Ignite talk started as a joke ("All good talks start as a joke, that's my new theory"), and that the room is full of people who want you to win, so it's a good place to speak for the first time. Patrick says he writes presentations to sort out his own ideas, and the audience listening is a bonus.

    Bridget takes up the in-jokes: she went to her first DevOpsDays the previous October, so it's not a closed community, and the team that called itself the Sparkly Post-DevOps Princesses got the worst score in the O'Reilly animals trivia, while a local team of people who didn't consider themselves DevOps walked away with the prizes.

    An audience member suggests the community define its own identity instead of leaving it to recruiters. Matty relays an open space idea from a Chicago attendee, "what do you want marketing to say about DevOps?" which he loves because it means "stop complaining and help us do it right."


    continuous delivery Jul 15, 2014
    Show notes

    Deployable From Day One

    Jez Humble, co-author of the Continuous Delivery book and the forthcoming Lean Enterprise, contrasts continuous delivery with the phase-gate approach, where planning, development, integration and testing come in sequence and the integration and testing phases "telescope and be very unpredictable." Instead, he says, have something very small deployable from day one, even if feature number 1 is just a status page, and keep the software releasable at all times, prioritizing that "over doing new work." He points to the HP LaserJet firmware team, who don't update printers ten times a day but found that keeping software releasable "changes the economics of software development." Matty says he first heard the story on DevOps Cafe, yelling at his car that it wouldn't work for his company, until the firmware example made him say "oh, okay."

    It works, Jez says, because it forces you to deal with scalability, availability, logging and monitoring early. Everyone lists those as requirements, but "knowing that you've got to do something is very different from verifying that you actually did it," and the idea that you can fix performance or operability later "is just false."

    Start Where the Constraint Is

    Starting is harder with a brownfield system, he says, but that's no reason not to. Continuous delivery isn't a project you plan and finish, it's "just continuous improvement": make the release process boring, and start where the biggest payoff is, which you can find by mapping the value stream from check-in to release. If you fix a part that isn't the constraint, he says, you won't change end-to-end cycle time. Step 0 is version control. Step 1 is automated builds with fast feedback, plus the discipline to fix a red build immediately.

    Two Architectures, One Pipeline

    Matty asks whether it's still continuous delivery if each product has its own pipeline. Jez describes two patterns. The Amazon and Netflix way is many small, loosely coupled services, deployed independently and versioned side by side, which needs strong monitoring because a request may pass through 100 services and you need to trace where the latency is. Facebook and Google build a huge binary, and Jez says Google compensates with very rigorous code-level CI, running the tests of every downstream dependency to give quick feedback. If you go monolithic, he says, "you have to make sure your CI is really, really, really good."

    Expand and Contract

    Matty raises data, since you can't roll back a schema change. Jez points to the expand-contract pattern from Michael Nygard's Release It: never change existing objects, add new ones. To split an address field into two lines, add the new columns beside the old one, have the app read from the new columns and fall back to the old, and write to both so the data migrates lazily. Then you can roll back the app freely and later batch-migrate and drop the old column. Jez says he's heard Facebook makes no guarantees about what database version is in production, so developers code defensively. The cost, he says, is an added layer of indirection and complexity in the app, and what you get is deployment flexibility: "So again, trade-off."

    Small Steps, Whether or Not You Like It

    Continuous delivery, Jez says, changes how developers think: breaking large changes into small increments that keep trunk releasable, not going off on a feature branch for days. He cites the Puppet State of DevOps survey for data that working in small incremental steps increases IT performance. To developers who say some things can't be broken up: "There aren't." The question is what you optimize for, and "we don't actually want to optimize for how fast I can say I'm done on my feature branch." What continues to astonish him is that developers who love new languages resist changing their practices, and he asks "why did you go into the technology industry if you don't want to change the way you think about things?"

    Trevor asks what versioning means here. Jez's answer is small identifiable changes so you can reproduce any state for debugging, and so that when a soak test finds a performance regression across 20 check-ins, you can binary search for the one that caused it.

    Four Years Later

    On what has changed since the book came out in 2010, Jez says mobile, the cloud and the Internet of Things have grown and a lot of tools have arrived, but practices and process haven't. He says the industry has "a terrible grasp of our history," is bad at communicating and experimenting with process ideas, and is still cliquey. He thinks it will be "5, 10 years, at least" before continuous delivery is standard, and that "this is an echo chamber that we're in right now."

    Etymology, Briefly

    Matty and Jez both misspell continuous, so Jez looks it up on Google, which shows the word's origin: con plus tenere makes continere, "hang together." His theory is "we use continuous because it's easier to spell than uninterrupted." He then suggests searching for recursion, and Google asks whether you meant recursion.

    "It Can't Possibly Work Here"

    Trevor passes on a listener's question from someone at a company of 35,000 people with 9,000 in IT, where infrastructure staff are 15 miles away. Jez says ThoughtWorks has seen these problems close up, and that a lot of it "is just excuses." He suggests assuming it can work and asking what little thing you could do. Large companies, he says, have friction, and what works at scale is what he found in both the Toyota Production System and maneuver warfare: everyone knows the mission, and you tell people the outcome, not how to get there.

    As examples, he says Google has over 10,000 developers who can all check into trunk and revert each other's changes, except for locked-down crown jewels, and that Amazon spent 2001 to 2005 re-architecting a monolith into services, partly to decentralize authority, with the architecture mirroring the organization, which he calls Conway's Law. The obstacle is leadership that clings to command and control, which he says "hasn't been fashionable in military circles since Napoleon destroyed everyone else in Europe in 1806." If leadership is political, people on the ground have to work under the radar until they meet someone incentivized to block them.

    Stretch Goals Need Trust

    Matty remembers a Jez talk in Chicago where he figured most of 100 people were afraid of being fired for the wrong move, and says he told his sysadmin team "let's just pretend it will work and see what happens." Jez says Toyota sets outrageous goals and tells people to work out how, but that it needs trust. He tells of the NUMMI plant, where Toyota decided hiring should be central, not by your own boss, because "your loyalty is to Toyota, not to your boss," which lets people say no or even automate themselves out of a job. The alternative is a stretch goal in an atmosphere of fear, where someone says "we'll ship it in a month" and you spend your evenings eating pizza. It's fine to commit to a month, he says, if you decide what's in the release.

    Make It Safe to Fail

    Asked about anti-patterns, Jez lists developers not changing how they think, ignoring a red build, always deprioritizing test and deployment automation for features because management tracks utilization, and automating "horrible, broken manual processes" step for step. You will screw it up, he says, so don't blame people, and make failures safe. He borrows "safe-to-fail experiments" from the Cynefin framework, and applies it to a top-down mandate to automate all tests in QTP: automate five tests in JUnit and put them in the pipeline, since five tests that mean something when they fail beat a comprehensive suite "that everyone ignores because it's just red all the time."

    Infrastructure as Code, and the Next Big Thing

    Can you do continuous delivery without infrastructure as code? Jez says probably, if your system is small, but manual point-and-click configuration makes each release error-prone and disaster recovery unpredictable. His acceptance criterion is "can I recreate my production system's state purely from information stored in version control?" with production data as the only exception. He mentions Martin Fowler's thought experiment of blowing up a data center with a flamethrower and timing recovery, and Google's disaster recovery exercises, including disconnecting the campus from the internet. If enterprises were truly risk-averse, he says, they'd worry about disaster recovery, and "the question is, what risks are you actually averse to?"

    Asked about the next big thing after continuous delivery becomes standard, Jez says the world has larger problems than automation, and that in software each new technology means relearning things learned 15 or 20 years ago in another domain, like test and deployment automation for mobile. What he'd actually like is for the industry to become less "pseudo-meritocratic" and white-male-dominated, with more women and people of color, and he takes the defensiveness he sees as a sign that things are slowly changing.


    how to eff up devops Jul 07, 2014
    Show notes

    Three Definitions and a Retitled Sysadmin

    Pete Cheslock, Nathen Harvey and Randi Harper each open with what DevOps means to them. Pete takes the historical view, the "cultural and professional movement," a little tools and a little culture. Nathen says it's everyone working toward a common goal, typically a delightful customer experience, across development, operations, business, marketing, sales and finance. Randi came back to engineering after four years away, found a title called DevOps, and concluded it was "sysadmins who actually know what the hell they're doing," the people who aren't afraid of strace and developer tools and who work with developers.

    The first misconception, Nathen says, is taking a sysadmin role and stamping DevOps engineer on it. Pete has stopped fighting it, since it works as a qualifier for a senior operator who writes code, and Nathen has capitulated too: "fine, internet, you win." Randi likes the title, and says it's a bridge, because developers see it and don't just see an ops person they throw things over the wall to. Matty's version is that in Chicago there are no sysadmin jobs anymore, only DevOps engineer listings that say install patches on Windows servers and perform backups. Candidates with DevOps on their resumes, he says, answer his question about continuous delivery with "but I'm good at patching, and our group was called DevOps."

    They Want the DevOps, Not the Change

    Pete says he meets companies that all say the same things about continuous delivery and business value, and some who ask him to "bring me the DevOps." When he lists what would have to change, they say "we don't actually want to change anything. We just want the DevOps." Nathen adds that hiring a DevOps expert and expecting to have DevOps now is "a really good way to fail," and Trevor compares it to bringing in an Agile coach to Agile you up. Pete: "We're going to Scrum like crazy."

    Matty also has a preference for how to say it. People hear DevOps as an abbreviation of development operations, he says, when it's a portmanteau, dev plus ops, and that's where it slides into meaning release engineering. Pete says the enterprise teams being called DevOps look a lot like release engineering, "but you know what? That's okay."

    DevOps Smell

    Matty borrows code smell and asks what DevOps smell would be. Nathen's first is developers saying "that's DevOps' problem." Matty's is a DevOps project about implementing tools, which brings back Nathen's line that the only DevOps tool is someone with the title Director of DevOps, to Pete's objection. Pete says you can sell DevOps but not buy it, and that a tool on a broken culture gives you "2 problems, essentially: a broken culture and a broken tool," while Nathen says that if implementing the tool is the end goal, "you've clearly missed the point."

    Pete's smell is DevOps talk that involves only developers and operations, and leaves out product, QA, security, and even sales, which sells features that don't exist. He has seen initiatives succeed because executives gave real trust, and fail because they wanted the DevOps without trusting anyone to change things. Trevor's contribution is that "the usage of the term DevOps is inversely proportional to a company's understanding of DevOps," and Pete proposes calling it Trevor's Law.

    Culture, Tools, or Both

    Randi sees it as culture: the same work she did before, with a culture that lets her tell developers about a memory leak instead of adding more memory to the server. Pete says start with culture, but by 2014, if you're not using config management, "you're probably doing something wrong." Nathen says he'd like to call bullshit: culture and tools are too intertwined to separate. His example is version control. Copying a file to .bak isn't version control, Subversion is a central authority, and with Git "you're trusting everyone on your team to have a copy of the repository." You can't claim to trust your team and also insist on a centralized system.

    Randi points out there's a difference between having Chef or Puppet installed and using it. Matty says the consultants on the call mostly hear tools conversations, and that Jez Humble told a Chicago audience the bar in the industry is low. Matty adds that culture change "has to happen from the top. It can't come grassroots." Trevor's summary is that doing just culture or just tools is another way to screw it up. Pete agrees: you have to do both with purpose. At Dyn he picked Chef over CFEngine because operations and developers had each pushed a different one and weren't talking, and the right choice, he says, isn't Chef or Puppet but "the thing that delivers value to your customers." Nathen adds, "change for change's sake is stupid."

    Changing Minds Without Changing Culture

    A listener question asks how to convince coworkers that it's Dev+Ops and not DevOps. Pete says you can't change culture, and that trying is "a fool's errand," but you can build something that shows value, as he did at Dyn with a Chef workflow integrated into a CI pipeline that CFEngine didn't have. Matty adds that you should show and invite, so others help make it better. Randi notices that the best DevOps people she knows are public speakers or podcasters, because this is a communication problem.

    Nathen describes two approaches: put developers and operations near each other and have them eat lunch and get beers together, or lock a cross-functional team in a room with a project, since "sometimes the right way to break down silos is to build another silo." He adds not to make the bastard operator from hell the first member. Pete says he took passionate, curious engineers, trained them on something like configuration management, and embedded them in teams as "patient zero," so the excitement spread. Matty's condition is that these teams be temporary, "bridges," so they don't become the team everything gets pushed onto.

    One Way to Screw It Up

    Asked for the one way to screw up DevOps, Randi says not to use one tool for everything. Specifically: don't use a Jenkins build job to execute scripts on servers or restart services. Pete's version: "Jenkins is not orchestration." Matty knows an organization that uses Jenkins as the job scheduler for its product's batch jobs, "because hey, Jenkins does that stuff." Randi: "Just because it can do it doesn't mean it should do it."

    Can a Tool Have Opinions?

    Matty floats an idea from a night of drinks: whether a tool's own opinions can drive culture, the way an opinionated framework like Rails pushes you in a direction, or the way you train a bonsai tree. Pete first hears it as tool bias and talks about people looking down on others for their language or tool. Trevor takes to the actual idea: using Chef forced him and Matty to answer each other's questions and reach a shared understanding.

    Nathen tells how his own team learned. He would change the code, test on a new machine, and then, nervous about running the client in production, make the same change by hand on every production machine. He calls it his fault, not the tool's, and says that once the team trusted the tool, they let the client enforce policy continuously, which changed how they worked. Pete says developers who distrust a new tool will say "Chef changed this file, and it broke everything," when it changed the file because they wrote code to do it. Nathen: every Java developer who moves to Rails writes Rails that looks like Java, and sysadmins write procedural Chef.

    Escaping the Echo Chamber

    Matty is helping plan the first DevOps Days Chicago and asks how to reach the people who haven't gotten religion. Pete calls DevOps Days "a massive echo chamber" and is looking forward to his Agile 2014 talk for a different audience, and thinks enterprises are where the next big shift is. Nathen suggests going to new cities, bringing a developer along to every event since these gatherings lean toward operations, and reading books and listening to podcasts about lean manufacturing and change outside of technology.

    • What are some common misconceptions about what DevOps is?
    • What are some symptoms of "DevOps Smell"[1]?
    • Development Operations vs Dev + Ops
    • Is it really just about culture?
    • Can the opinions of a tool help drive the culture? This is a theory Matt is marinating upon, and might be totally wrong.
    • How can we avoid the "echo chamber" of DevOps discussion?

    Check-Outs

    Pete

    • Ansible

    Nathen

    Remap your CAPS LOCK key as Ctrl key. Also new Supermarket site for Chef - supermarket.getchef.com

    Randi

    Anything BUT Jenkins.

    Trevor

    • A little bit of Hodor and the Google Now voice thing.

    Matt

    • Sunrise calendar for iOS and OS X.

    software deployment Jun 23, 2014
    Show notes

    Delivery Doesn't Count Until It Reaches the User

    Ranjib Dey, a system administrator at PagerDuty with earlier stints at ThoughtWorks and Google, joins Matty and Trevor. His definition of software delivery runs from gathering a requirement from an end user to the finished feature reaching customers and drawing feedback. His three consistent themes are incremental changes, regular changes, and a whole process that is automated in a reliable way.

    Continuous delivery, for him, is "the attitude towards delivering your software in a well-tested and incremental fashion," usually an extension of CI. What matters is that every merge passes through review and testing, whether that happens up front, as in XP, or after the commit, as with pull requests on GitHub. From there you can release a feature to a subset of users, by geography or age group, for example. In the process, he says, you also "learn the risk-taking abilities," and the organization goes through cultural change, because that wasn't common at the start.

    What Counts as a Small Commit

    A small commit, to Ranjib, embodies a feature that is independently verifiable: "If you cannot think of a feature and we cannot associate that with our commits, then it's probably not a full commit." Infrastructure work counts, so moving from canary deployments to dark launching is a feature with its own tests, and known errors get a regression test so they don't come back.

    Which Tests, in What Order

    More tests is better, Ranjib says, but you don't always get the time. For a greenfield project he'd start with functional tests, since the priority is whether a feature works, and add unit tests as design issues and tech debt show up. Good tests also work as documentation, which helps a new hire, and let you change code you no longer fully understand and know from the failing tests what you broke.

    Integration tests are the black-box ones that involve external services, such as a load balancer with five unicorns and two databases, and checking what happens when one goes down. That takes a full simulated environment and automated failure injection, which he says you add as you grow. Matty prefers that meaning of the term, notes the Continuous Delivery book calls these non-functional tests, and points to episode 2 on testing. He also says that a cookbook is code, and Trevor tells him not to knock it now that he's tried it.

    Ranjib adds that these terms mean different things depending on the concern, and gives a packaging example. Testing the libcurl code is unit testing, building the package and making a curl call is functional testing, and checking that Fedora works with that version of libcurl, the kernel and glibc is integration testing, because the user wants libcurl working together with the whole platform.

    Pipelines at PagerDuty

    Matty asks whether PagerDuty has one pipeline for all its products. Ranjib says the setup shows their history. There was no CI when he joined a team of 14, so the first step was a Jenkins server with feature branching and per-project builds. Pull requests then piled up in the queue, so they moved that to Travis, which reports red, green or yellow on GitHub and posts to HipChat. Jenkins now takes master after a merge and deploys it to downstream environments. Ranjib is particular that a true pipeline has fan-in and fan-out stages, which Travis doesn't do. Matty's version is that you can have a virtual pipeline, where everything must go through the same steps, without a single physical one.

    Canaries, and Rolling Forward

    Ranjib describes a canary deployment as a router, such as nginx, sending a particular URL to a subset of backend servers, which sandboxes a change to those servers. Blue-green deployment and dark launching are similar approaches. Matty asks about rollbacks and mentions Mark Burgess's paper arguing against them. Ranjib says the ability is nice but often hard or impossible, and his organization tends to roll forward, because its heavy automation and testing make a small fix safe to ship. For database migrations, he says, split the release in two, so that the first stops using the column and the second drops it, which preserves the rollback state. Containers let you keep a couple of old versions on the host, and even when you don't intend to roll back, you might do it for a short time to buy time for a hotfix. His rule: "you should always optimize for rolling forward. You should never optimize for rolling back." Matty repeats it "so I remember it."

    Who Gets the Deploy Button

    Trevor is still nervous about a CI server deploying straight to production. Ranjib says there's no best way. His current favorite is a HipChat bot that deploys, with GitHub webhooks showing merges and reviews in the same room, though he stresses the integration is thin and the orchestration behind it matters more. Some people want a button, and you sometimes have to give them one in the CI server. The deciding factor is trust: all the tools "reflect your company's culture and trust at the end."

    Matty puts on what he calls the psychiatrist hat, and asks why a person is nervous, because you don't want to steamroll someone's concerns. Ranjib says Trevor's concern is legitimate, since in ten years he's seen 80 to 90% of outages come from deployments. Automation doesn't avoid failure, it makes it faster, so the answer is to make failure "extremely cheap, extremely affordable," with multiple environments to test workflows in. Some things, like migrations on very large databases, will need different tools than a standard CI system. Trevor's summary is to fail quickly and fail cheaply.

    Anti-Patterns

    The biggest anti-pattern Ranjib sees is people becoming hardliners about the nuance of a buzzword instead of its meaning. Arguing over what counts as integration testing is "a bike shedding discussion," and deploying 20 times a day doesn't make sense for a JVM application that has to restart each time. His second is accumulating tech debt, especially skipping monitoring: a service you can't monitor is "not gonna fly," and isolating services early is much cheaper than later. He'd also rather have small groups with independence, including over tools.

    Asked for one piece of advice, he says there's no magic bullet: "Nobody's giving you the button that you click and it will solve your problem."

    What is software delivery? There are a lot of approaches to this subject- what does "software delivery" mean at PagerDuty?

    What is your idea of "best" way to deliver software, or line of best fit?

    What gets in the way of companies or individuals delivering software?

    • How do you mitigate and test for problems introduced by code changes?
    • Deployments?
    • Dependency issues?
    • External factors?

    What are some patterns and anti-patterns for consistent software delivery?

    • On system rollback and totalised fields by Mark Burgess

    Checkouts

    Ranjib

    • Universal Principles of Design

    Matt

    • homesick - keep your dotfiles in sync!

    Trevor

    • Willyouhack.me
    • Fishing

    Making The DevOps Transition Jun 11, 2014
    Show notes

    Two Routes to DevOps

    Jeanne Steinback, Director of Software Delivery at Rewards Network and formerly six years at Redbox, and Chris Andreen, Director of Software Development at the MacArthur Foundation, describe what implementing DevOps meant in each of their organizations. For Chris it's about technical debt and a history of doing everything by hand: "manual deployments, manual compilation, manual everything." He calls it pulling a thread on a sweater to see how far it goes, so the foundation can spend less effort on delivery and more on the development that supports its grantmaking.

    Jeanne's teams were already mature Agile teams with the low-hanging fruit picked. What surprised her was that a full-time DevOps person on the delivery team, who automated deployments and took them off the developers, "almost doubled" their velocity, since they were deploying two or three times a week and each deployment was expensive. Both cite consistency, since Chris says "nothing breaks the same way" and Jeanne says keeping environments in line used to be an enormous headache. Matty's summary is that it amounts to a release engineering practice under someone responsible for consistent releases.

    How You Know You're Happy

    Matty likes to start from success criteria: how do you know when you'll be happy? Jeanne's answer is "when your velocity goes up," since the only reason to have a development team is business value, and velocity is a hard statistic. Her team tracks cycle time from analysis to production, velocity including interruptions and bug fixes, bug counts, and deployments per two-week timebox, and baselines whichever area is a bottleneck before trying to improve it.

    Chris's metric is shifting the time spent cleaning up accidents toward work that adds value. His organization is unusual in that it doesn't take in money. "We actually don't take money in, so we do the opposite," and the goal is to be more efficient at giving it out and at tracking how productive the grants were.

    Resistance, and Fighting It With Data

    Chris hasn't met resistance, since he oversees both software and infrastructure and "the only resistance would come from me." Jeanne met plenty at Redbox, where there was no DevOps team and the need showed up by looking at bottlenecks. She won the argument with statistics, presenting where the time went and predicting a 20% improvement in deployment time, which turned out to be much higher. She used her own team as the guinea pig, and afterward DevOps was assigned to every delivery team, which are now "big proponents." At Rewards Network there was almost no resistance, because she runs all of delivery.

    Her advice is to accumulate data and make a logical presentation, not to say "I hear DevOps is really hot right now." Matty agrees, and says he's from Missouri: don't point him to a Gartner report, show him.

    Letting Go, Without Siloing

    What did developers have to change? Jeanne says "letting go of the responsibility for DevOps," because "it's hard to get developers to trust other people." Chris says the mindset he's still working through is the familiar one: things have been done this way for a long time and worked fine. Jeanne adds that once you're doing continuous delivery, "you almost can't live without DevOps."

    Trevor, a developer, asks whether that means siloing. Jeanne says no. The DevOps engineer sits next to the developers, and "stopped us from making so many stupid mistakes." Her point is that an Agile team calls each other out when someone's about to take a shortcut. Deployments no longer needed four, five or six people in a room, and became "hit the F5 button," because the DevOps engineers built the CI architecture together with the developers. Matty cites the John Vincent line again, and mentions the idea that it should now be called BizOps.

    Rebuilt Weekly, With No SSH

    Asked about his nirvana, Chris describes a plan to move all applications to the cloud, starting on Azure and later using AWS, and to rebuild infrastructure weekly from the latest server images so "we don't have to think about patching." There will be no SSH or RDP access, and servers will live for a week. He wants to keep things "as simple and as vanilla as possible," because if he can't just spin up a box and turn on the couple of features he needs, he's over-engineered the app. Databases will stay on-prem for now. He's heard the term server huggers and says they don't want to be that: "we're more than happy to just roll through servers like water."

    Matty points to an Ars Technica article on how Boeing merges its data centers with the Amazon and Microsoft clouds, and to the need to avoid provider-specific special snowflake features. He also credits Sascha Bates on the Mythbusters episode with the point that if the job is one nobody wants to do, like patching, ask why it isn't automated. He explains immutable infrastructure for listeners as the Netflix model, and quotes Steve Murawski that RDP is not an administrator tool. His joke about Chris keeping servers at arm's length is that "they're going to put them in therapy later in life because they didn't get enough love."

    Automate the Fifth Time

    For what worked less well, Jeanne says her team kept repeating tasks that could have been automated because everyone was rushed. They eventually put a big piece of paper on the wall, and when a task came up five times in two weeks, it became a candidate for automation. They did this for deployments, for development, and for interruptions where people kept asking the same question.

    Chris borrows the phrase "iteration zero," and says it's constant mistakes: they've been through TFS, Git and Subversion, and "restructured our repos 100 times," and he hasn't met the consultant who gets it right on every throw. On tools, Chris runs Subversion and Jenkins, and says he hasn't found anything Jenkins can't do. The one plugin besides Subversion is the Chuck Norris plugin, and a PowerShell library orchestrated by Jenkins spins up infrastructure and deploys code. Jeanne is moving from Subversion to Git and using Go and Mingle together, and lets her developers choose their own tools because she wants them happy.

    Make Work Fun

    That picks up a thread Matty has been on: his job isn't to make things suck less, it's to make work fun. He credits Jez Humble with the idea that DevOps and continuous delivery are about making it fun to be at work, which doesn't mean Nerf fights but enabling people to create things. In his words: "Patching servers is not fun. Troubleshooting a deployment script is not fun."

    Trevor prompts the question ops people always ask, which is what they'll do once it's automated. Matty says he heard it from his own sysadmins, and that John Allspaw said the same thing on the Etsy episode, with "are you kidding?" and a list of innovative work.

    Agenda

    • What problems were you trying to solve?
    • How did you (or will you) know when you are “happy”?
    • What resistance did you encounter?
    • What worked REALLY well?
    • What worked less well?

    How Boeing merges its data centers with the Amazon and Microsoft clouds

    Check-Outs

    Chris

    • Bands in Town

    Jeanne

    • Zapp! The Lightning of Empowerment: How to Improve Quality, Productivity, and Employee Satisfaction
    • The Night Circus

    Trevor

    • OxDBE Jetbrains tools
    • Chrome dev tools - change css media state

    Matt

    • Pragmatic Programming book tmux: Productive Mouse-Free Development
    • Burnout.io

    DevOps at Etsy: Not a Unicorn, Just a Sparkly Horse May 21, 2014
    Show notes

    Not a Unicorn

    The episode opens with Trevor playing back Matty's promise in episode 1 not to name-drop John Allspaw, then noting that today's guests are the Etsy ops team, which Allspaw belongs to. Matty's defense is "It's possible." (Also in the news: Trevor has joined 10th Magnitude, and Matty is leaving it for Chef.) Jon Cowie, a senior ops engineer who has written much of Etsy's Chef tooling, "resolutely" maintains they aren't a unicorn, since that implies magical powers. They have servers that break, software with bugs and pages in the middle of the night. What's different, he says, is that "from the CEO down, IT and engineering is recognized as a core competency," and they've solved enough of the easy problems to be more proactive than reactive. His shortest version: "We trust our colleagues, and we communicate with them."

    With Cowie are Allspaw, who manages infrastructure and operations (roughly half of engineering), and web operations engineers Pete Bellisano and David Yurkiewicz.

    Nobody Says DevOps at Etsy

    Asked about the history, Allspaw says there wasn't a concerted effort, no lunch-and-learns about DevOps, and no marketing. It "still is very, very weird to hear the word DevOps" in the office, and if someone says it they're probably referencing something from the internet. What did change was that decisions had to recognize domain expertise, in a high-trust way, and beyond that the rule was "don't be an asshole."

    David calls DevOps a buzzword the industry has turned into a marketing term. Allspaw's take is that the word is "underspecified," like cloud, compliance or resilience. Nobody would say "let's add some more robustness" and treat it as an answer: "That would be the start of the conversation, not the end of the conversation." Matty agrees, calling the word a blessing and a curse, because it starts conversations and only becomes a problem if you stop there.

    Culture Isn't the Furniture

    Pete left IT about ten years ago, ran his own business for seven years, and came back to Etsy's corporate IT and then ops, and says the culture is "very nurturing." David says "you can't really buy culture," and that at earlier jobs the separation between sysadmins, developers and DBAs got in the way of ideas. Cowie, who works remotely from the UK, says the open-plan office isn't the reason: "I don't think the communication is a result of the layout of the furniture." The same cross-pollination happens with him over video chat and IRC, which David says is where most communication happens.

    Cowie also describes his own adjustment. He came from tiny startups where he was the only sysadmin and had "a very sort of B-O-F-H attitude," with the infrastructure his alone and someone screaming down the phone when it broke. At Etsy, he says, the idea was that with all the will in the world "you cannot defeat human error," so you ask what assumptions led to a mistake instead of yelling. Developers own their availability too, and there are developers on call who can be woken up.

    Making Misunderstandings Repairable

    Allspaw questions the premise that the culture is simply awesome. His view is that they don't indoctrinate people, they make misunderstandings "easily repairable," because bad cultures happen when practices drift and nobody can detect or fix it. He uses New Yorkers and drivers as an example: ask a New Yorker whether New Yorkers are terrible drivers and they'll say they're just drivers, while someone from Kansas City in the back of a cab will say something less polite.

    Cowie asks him to tell the NFS over WAN story. About a year earlier, Cowie had made an enthusiastic suggestion, and Allspaw, on a large conference call, called it the dumbest idea they could go with. His team told him afterward it hadn't come out the way he meant, and they were right. Cowie points out that Allspaw was then his boss's boss, and that in many companies you can't tell someone at that level they're being an asshole without being fired: "And now we're telling a story about it, and I still work here."

    Matty's view is that he probably wouldn't be fired, but the fear is enough. He once had a sysadmin ask what would happen when the CTO came running down the hall yelling to get the release out. Matty repeated it to the CTO, who said, "when have I ever done that?"

    Bare Metal, Small Deploys

    Cowie says Etsy's infrastructure is still "pretty much entirely bare metal," with S3 for some image storage and backups. The reason isn't aversion to the cloud but capacity planning, which Allspaw "literally wrote the book on." They run a monolithic PHP application on the LAMP stack, understand their seasonal traffic, and actually use the hardware they have, so moving to EC2 doesn't make commercial sense.

    They do a lot of continuous delivery. Chef manages everything under the application, while a separate tool called Deployinator ships the code, currently 50 or 60 times a day, mostly behind feature flags. The same ethos applies to Chef, where about 40 people have knife keys and make a couple hundred changes a month. Cowie says he expected the culture to fade as the company went from 250 or 300 people to nearly 500, and that instead, when his KnifeSpork workflow started slowing people down, the team simply sat down and changed it. He says he could take it on board without being defensive, and that there's "no defensiveness or empire building."

    Developers Who Deploy, and Ops Who Are Busy Anyway

    Allspaw introduced postmortems to Etsy, with the requirement that the room have diverse perspectives, including finance, legal, customer support, fraud detection and design. He says the effect of developers deploying their own code is that they care much more about how it runs in production: "we're not so secretly turning software developers who come work at Etsy into ops people." When people ask what operations does if developers deploy, his answer is "Are you joking?" and that there's an immense amount of proactive work. Matty says his own sysadmins asked the same thing about automation, and his answer was that they'd do cool stuff rather than copy files around.

    David describes designated ops people assigned to product teams whose job is to show them how to set up Nagios checks and Graphite graphs, and not to hold anything back. Cowie adds that a developer on the DevTools team asked to be in the on-call rotation and has been in it for about a year. Matty: "Somebody asked to be on call."

    Context in the Page, and What They Learned

    For the small problems they've solved, Cowie describes a teammate adding context to Nagios alerts: the page now includes a graph of the partitions, a Ganglia graph of disk space over time, and how far over the threshold it is, so at 4 in the morning you can tell whether you have to get out of bed. David's is host building: bare metal servers built in about 5 to 10 minutes each, so a new data center wouldn't mean building 100 servers by hand.

    Asked what they've learned, David says it's okay not to know everything, Pete says to keep asking questions, and Allspaw says every time he thinks a size barrier exists, he's proven wrong: "things fail at a certain size because you expect them to." Cowie's is "the consequence for failure is learning more stuff."

    • Episode 11: Etsy Examined - How the Best Do Their Business by Food Fight
    • BOFH (the Bastard Operator From Hell)

    Check Outs

    Jon Cowie

    • dmg cookbook
    • rbenv cookbook

    David Yurkiewicz

    • Pushover.net

    Pete Bellisano

    Buffalo Trace whiskey

    John Allspaw

    Lloyd Taylor "Hacking Your Organization"

    Trevor

    • Shortcut-Fu
    • Agents of Shield

    Matt

    • Vimium - Google Chrome extension which provides keyboard shortcuts for navigation and control in the spirit of the Vim editor
    • Release! The Game

    Scaling the Application Mountains May 08, 2014
    Show notes

    ChefConf in a Paragraph

    Matty had hoped to do a full ChefConf episode and didn't, so he points to The Ship Show's recap and calls bourbon and bacon the two best things about the conference. The remarkable part for him was Mark Russinovich of Microsoft keynoting to a room of 400-plus open source people, some of whom muttered "Here comes the sales pitch." Russinovich talked about Azure, said Titanfall runs every player on a VM in Azure, and showed Linux VMs being provisioned with Chef directly through Azure. The room was "pretty surprised and impressed," which made Matty feel good about the community.

    Scaling Is Not Performance

    Guests Steve Corona and Igor Papirov start with definitions. Steve co-founded Twitpic, wrote a book on scaling PHP, and now runs the API at Life360. Igor runs Paraleap Technologies, whose AzureWatch product monitors and scales Azure applications, and was previously chief architect at Restaurant.com. Igor separates scalability from performance: performance is fast or slow, while scalability is "maintaining the same performance over different peaks of usage." Steve agrees, and adds that scaling is "more infrastructure than it is code." What you prepare for, he says, is the stuff you never see at small scale, mostly timeouts and blocking.

    Matty splits the load into predictable and not. Apartments.com has a seasonal business, and Cars.com knew a Super Bowl ad was coming. The Reddit hug of death, which Matty would have called the Slashdot effect, isn't predictable. Steve's Twitpic was unplanned success: a team of about seven, at most around 90 bare metal servers at SoftLayer, and petabytes of images on Amazon S3. He learned "by cutting my knuckles," rolling over in the middle of the night to restart Apache, and by crashing the site over and over. Many of the best practices, he says, "aren't published," and the top people just know them. He also wants predictability paired with configuration management, so knowing tomorrow is a big day doesn't mean building servers by hand.

    Ninety Servers, All Doing Work

    Igor says a core principle of scaling is getting every one of those 90 servers to do useful work, and that the first question is whether your design could use 200 or 500. He came up on N-tier Microsoft development, where the backend database won't scale to millions of people per hour. Steve says even at Life360, with about 100 AWS instances and plenty of scaling experts, some servers do less than they should, and distributing work evenly is "a very difficult thing to do right."

    On vertical versus horizontal, Steve says everyone preaches scaling horizontally, but having more servers doesn't mean you scale horizontally; you have to plan for it. Igor adds that people scale relational databases vertically because they can't do otherwise. Matty says sysadmins were taught to start worrying at 70% utilization, because new hardware took eight weeks. Igor agrees that's enterprise legacy, and now "if you have 20 servers and they're all doing a little CPU, then you're throwing money away."

    Build It Naively, Because You'll Rewrite It

    Matty asks where the balance is between analysis paralysis and painting yourself into a corner, quoting the joke that "Rails app is up in 6 hours, it's down in 6 months." Steve says he has "the secret magic balance numbers" but isn't sharing them, and Matty offers 42.5 servers as the point to start caring. Steve's real answer is that the easiest way to build something is not to worry about scaling. You can still scale vertically a long way, since on AWS "you're one restart away from 500 gigs of memory," and he steers away from research paralysis by building "as naively as possible and then figure it out."

    Igor agrees: a startup should get functionality out and listen to feedback, since the system will change several times before it becomes popular. Steve says you will rewrite your app, or rip pieces out of it. If you want cheap headroom, his suggestion is several small apps in the Unix philosophy. "It's going to happen."

    Monitoring Is Not Diagnostics

    For finding out what's wrong in production, Steve reaches for strace: with all the statsd and PagerDuty in the world, "you will never get the visibility that strace will give you when production is down right now." He says to learn exactly how your app runs end to end, and even read the source of the open source programs you use, because monitoring alone won't tell you. Matty says every good sysadmin still has a copy of What's Up Gold somewhere, and takes it as an example of DevOps having no demarc: quoting John Vincent, "never saying that's not my job," but also knowing when to escalate.

    Igor's point is that monitoring tells you when things are broken, not why, so diagnostics is a different problem. He recommends monitoring from more than one system, since monitors go down too and each sees different things: AzureWatch knows the Azure infrastructure and New Relic knows the application code. Asked whether to pick one, his answer is "yes, you should use both," because tools that cost pennies per hour are worth it when you're making millions per hour.

    No Batch Window, No Maintenance Window

    Igor says large-scale systems can't have a batch window, since someone is always using the site, and nobody approves long downtime on a Sunday at 3 AM. Matty calls it a world of rolling maintenance windows, and jokes that maybe we should take outages so customers can have lives.

    Steve offers the IRS site, which closes at 5 PM for EIN registration, and Matty explains it's probably an old CGI form emailing someone. Igor has a better one: a restaurant reservation service that dialed the restaurant and waited for a person to press a button. It's "pretty scalable," he says, since the waiting is sharded across hundreds of thousands of restaurants. Steve calls it "a whole new form of blocking I/O that I've never heard of before."

    Parting Advice: Twelve Factors and the Single Brain

    Steve recommends the twelve-factor guidelines from a Heroku engineer for building apps that scale more easily, with things like how to handle logs and not letting the server daemonize itself. Igor says the hardest layer to scale out is storage. A relational database is "a single brain" that can only scale up, so he'd push logic to the application layer and use object or NoSQL storage: "you're able to throw 1,000 application servers at the problem, and you can't really throw more than one SQL Server at the problem."


    Fast and Furious: Configuration Drift Mar 29, 2014
    Show notes

    Executable Documentation

    Sean O'Meara of Chef, Chris Webber of Demand Media, and Steven Murawski of Stack Exchange each define configuration management a little differently. Matty calls it creating "a trusted target," since it's hard to automate deployment safely if you don't know what the systems look like. Chris, who works in Puppet, calls it "executable documentation that keeps reinforcing itself," which is accurate "assuming no one SSHs to it and fixes it." Steven stresses that it's an ongoing process, not a setup script, and that it only manages what you explicitly tell it to, so anything you change outside of it is invisible. Chris has another framing: treat servers as software objects that happen to have "really crappy APIs," with Chef or Puppet as the better API on top. Sean gives it the widest umbrella, covering any technique for managing configuration and its complexity.

    Trevor, who's only recently started using it, likes that there's no lost knowledge, because everything done to a server is in the scripts. Steven says small-shop admins tell him they only have a handful of servers, until hardware fails and they're asking what registry key or service they had to tweak four years ago. Trevor's example is a coworker who objected to scripting the WebSockets setup when he could just click through Server Manager. The script came to two lines, and the coworker's reaction was "oh, that was way easier than I expected it to be."

    Easier to Build a New One Than Fix a Broken One

    On the business problems it solves, Matty says a trusted target enables more automation in the delivery process and shortens the feedback loop. Chris started out just wanting the same SSH config on every box, but what won people over wasn't Puppet itself. It was the stored configuration, which gave him a database of facts about every machine, and, for DBAs, machines that looked identical, down to the roughly 30 users Oracle needs before you can even install it. Matty adds that it kills "it worked on my laptop," and that laptops, outside the VMs on them, "should be used for email."

    Steven's case is the one box out of four that behaves differently. Instead of two hours troubleshooting, reimage it in 20 minutes and pull its logs offline. Matty's rule: "it should always be easier to build a new environment than fix a broken one," and his nightmare is finding out months later that one of 300 web servers is different from the other 299. That leads to the Mark Burgess line, as Matty and Steven both recall it, that once someone logs in interactively you no longer know the state of the machine. Steven adds that even a login can trigger startup scripts or Group Policy.

    Matty's own version: he was new to Puppet, saw broken images in QA, SSHed in and fixed a symlink by hand, and the developer confirmed it was working. Fifteen minutes later it was broken again, because a Puppet run had undone his fix.

    Monoculture, Images, and Why Immutable Is the Wrong Word

    Sean says a common way operations shops manage complexity is monoculture, being a Windows 2003 shop or a RHEL 5.8 shop until the next refresh. With configuration in code, moving from RHEL 5 to RHEL 6 means diffing the two and adjusting the policy, instead of boiling the ocean, and "it's a huge bummer when you want to run software and you can't because you're on a 10-year-old operating system." Steven agrees that easy replicas and version control make testing a new OS much less scary.

    Sean dislikes the term immutable servers, because systems still need small changes. His examples are adding a machine to a load balancer pool and updating one firewall rule across a cluster: are you going to destroy every machine and push another 4 gigabytes down a pipe "when you need to change literally one line of config"? Matty explains the Netflix-style canary release that inspired the idea, and when Matty notes that most people aren't deploying ten times a day, Sean's answer is "they should be." Containers, Sean says, are really execution management and don't conflict with configuration management.

    Matty credits Lucius from Food Fight with the term "leaden image" as opposed to a golden one, and a coworker suggested "brown and serve." Sean's position is that "images aren't bad. It's the loss of the resolution about the details of the image that's bad," as when teams with new VMware clusters hand-tuned a VM, snapshotted it and treated the snapshot as the artifact. Chris tells his developers that editing config on a box is like changing production code and never checking it in, or attaching a debugger to a running process and leaving no record. Sean's version: "why should my NTP configuration be any different than your HTML file? Stop it."

    Same Test-and-Repair, Different Attitudes

    Sean starts with what the tools share. They all derive from the idea CFEngine introduced, convergent test-and-repair operations: don't write the file if it's already right, don't install a package that's already there. A lot of people call that idempotent, he says, and he thinks they're wrong. Promise bundles, Puppet modules and Chef recipes are all named groups of those operators, and the tools differ in their philosophies on ordering and in language, with plenty of people detesting Ruby "with the blaze of a thousand hot suns."

    Chris's short answer to Puppet or Chef is "just pick one and go with it." Puppet limits what you can do, so there's less chance to shoot yourself in the foot, and its dependency graph means a failing web stack doesn't keep SSH from being configured, which in Chef's run list could lock you out of the box. The flip side is that string manipulation, "90% of configuration management sometimes," is painful in Puppet. He used to steer old-school ops people to Puppet and developers to Chef, but isn't sure that still holds.

    DSC and the Windows Problem

    Steven says PowerShell Desired State Configuration "probably isn't ready for prime time yet as a standalone config management thing." Its key piece is the Local Configuration Manager, an agent on every Windows box reachable over WinRM, with a standard way to define and send a configuration, in the hope that Chef, Puppet and the rest will use it. He's been playing with its minimal built-in pieces at Stack Exchange, but wouldn't push anyone to be solely a DSC shop unless they were entirely Windows. Matty sees DSC as the agent that Chef can hand off to: a Chef recipe that runs a PowerShell script can only report an exit code, not confirm everything is as it should be. Steven adds that from Server 2012 on, PowerShell coverage grew from about 200 commands to about 2,400.

    Chris says the hurdle on Windows is that Linux has a "package config service trifecta," and IIS on Windows doesn't; getting over it took "lots of bourbon." Matty spends his days configuring Windows with Chef: IIS is manageable, but a SQL Server cookbook works well for the single-exe Express edition and is much weaker for Standard or Enterprise, and it won't fix a changed configuration. Steven says official support for non-OS products is thin because DSC only shipped about six months earlier, and product teams respond to customer pressure. He curates the community repository at PowerShell.org, and tells Matty: "file an issue on GitHub. Seriously."

    Where to Start

    Chris points people to the Chef and Puppet Labs tutorials and to writing a little code, since "it's just like code." Sean's advice is to start small, model one class of machine, and resist using community cookbooks and modules at first: you'd need to be an expert in both the technology and the tool to read the errors. Writing your own makes the learning curve less steep. Chris likes starting with something identical everywhere, like SSH, and his first host entry points back to the Puppet master so a broken resolv.conf can't strand a box. Sean's advice on DNS: "Don't try to start DNS."

    Steven suggests starting from your server deployment checklist: his Linux checklist had four items, his Windows one about 30, which is why building resources for it became his way in. Sean and Matty add that the most effective step is translating existing runbooks, not pasting them in. Sean tells of a customer with a runbook an inch and a half thick, and translating it exposed gaps: "install Apache. What version of Apache?" Chris asks vendors to publish a module alongside their docs, "in that format instead of English, which sucks for describing the actual state of the world."

    Tools Are Cultural Artifacts

    On the future, Chris says servers become software objects in "one gigantic development codebase." Sean thinks configuration management is "gonna eat the world" as developer culture does, since "tools are cultural artifacts." Steven expects the Windows space to be ripe for an explosion, and points out that executable documentation doesn't go stale like the inch-and-a-half binder. Trevor closes with what he remembers Matty saying earlier: the end of caring about individual machines, because you just spin one up and it stands up exactly as expected.


    managing your mental stack Mar 11, 2014
    Show notes

    The Fire Hose, Push and Pull

    Sasha Rosenbaum, a consultant at 10th Magnitude who grew up in Ukraine and spent about 11 years in Israel before Chicago, joins Matty and Trevor to talk about how to decide what's worth learning and how to learn it. Matty's method for the fire hose of information is to let it in without filtering: "my ears are wide open, my eyes are wide open," everything rattles around unprocessed, and if something sticks he digs deeper. He says he misses 90% of anything on Twitter, and the interesting links go into Pocket for later. Sasha's fire hose is Flipboard, plus a little Facebook and LinkedIn and the occasional tip from a colleague. Trevor's starts with Reddit and the meetups he goes to, and then he takes what sticks to Google. Sasha's name for the pairing is "a pull request and a push request."

    Matty found configuration management, now a big part of his job, through a small reference in the Continuous Delivery book. Trevor opens with a question the episode keeps circling: "How do you find the best balance between Renaissance man and specialist?"

    Solve It, Then Write It Down

    Trevor learns by doing and calls himself "very bad at conceptual learning." Matty agrees, and adds that books make it easy to overestimate what a tool can do, because you never had to make it "jump through a hoop." Sasha's version is that books describe the good stuff, and you only find the one thing a tool doesn't do once you're committed to it. Her plan, which she says she hasn't done yet, is to write a blog post after solving a problem, since "you learn, you solve, and then you teach." Trevor treats his posts as "a secondary memory file." Matty's SharePoint search post still gets traffic, which he says is "relevant to the internet, it's not relevant to me, thank God."

    Sasha tells of a friend who handed her a PDF on an unfamiliar algorithm and asked her to say when she understood it. After five minutes she thought she did, and then she was asked to teach it and found she didn't. Trevor says the same thing happens when he explains one solution to five people: the first time he's still thinking it through, and by the last he thinks "I actually truly understand" the solution, which is also why he likes pair programming.

    Podcasts Get Authoritative

    Matty reads out a friend's line that listening to podcasts is "a terribly inefficient way of transferring actual information," like "asking Grandpa Simpson for directions." His own experience is split. An audio-only podcast on writing Rails code didn't work for him, but he absorbs concepts from Food Fight or DevOps Cafe better than from docs, and a line he heard there, that a role should be an alias of a run list, stuck because he can hear it in his head. He's caught himself quoting podcast guests to clients as though they were authoritative, and Trevor's answer is "why shouldn't it be?"

    Sasha has a 40-minute bus ride each way, gets carsick trying to read, and found podcasts fill the time, though she wants to argue back and can't. She thinks of it as taking part in a discussion instead of passively consuming a lecture, and says it "feels like having a discussion with your friends about things you care about." Trevor has the failure mode: he was listening to the Ship Show and started to join the conversation, before realizing "this isn't live," and "there's not real people here right now except the actual people on the train."

    Nobody Gives You a Training Day

    Matty says the rare job gives you time to just go learn, and that conferences work for him as a way to make connections, not to learn: "I learn nothing at a conference directly." Trevor's office tries a weekly brown bag, but after a day of bashing his head against a problem he either keeps working or veges out, so he reads new material on the train in the morning before his brain is overloaded. Sasha says a weekend of planned learning never happens, and that "go learn some random thing" wouldn't work for her, while a proof of concept for a specific problem would have her working after hours.

    Sasha's other tip is switching context: read about business or networking or neural pathways instead of more technology. Matty agrees and cites The Goal as reading on what your company is actually for. His own rule is about an hour a week on something outside his focus, like learning Ruby without any connection to Chef, and he then notes that DevOps hasn't come up until three-quarters of the way in. Trevor says they'd mentioned it "at least 4 times," and Matty says all of them were in the first three sentences.

    A Little Bit of the Other Side

    Sasha describes her first reaction when 10th Magnitude added infrastructure automation people: "I am a developer. I don't want to do infrastructure." It changed when Matty joined and they started talking about DevOps instead, which she found made "total sense" because she could get exposed to a little of the adjacent side, set up a CI or automate a delivery, and still have an expert to ask. Matty's own version is learning enough about development to know how to talk to developers.

    Trevor says he leans toward being the Renaissance type because he finds both the developer problems and the ops problems fun. Matty points out that this sounds like every problem is fun to him, and Trevor agrees he can't name one he enjoys more. Sasha adds that a calculus problem would be another matter, and Trevor says "calculus can stay somewhere else."

    Pocket, Tabs, and the Pomodoro Challenge

    Matty's workflow starts with a quick triage while he's on a break: links from Twitter and Flowdock go to Pocket, which is "good, bad, good, bad," so he can do it standing on the L platform. When he has 20 or 30 minutes, he goes through Pocket and reads for real. Trevor leaves Reddit links open in tabs, and jokes that he reads them once a month on Tuesdays, conveniently right before the updates force the machine to restart. Matty's name for it is "Patch and Read Tuesdays."

    Sasha brings up the Pomodoro technique, since her concentration only lasts about an hour and a half. She also summarizes an article on productivity whose first tips were to take more breaks and naps, and whose third was to spend more time in nature: "I'm going to go find a tree in Chicago and stand next to it." Trevor turns it into the episode's challenge, which is for listeners to try Pomodoro, and use the breaks to catch up on reading, and report back to @ArrestedDevOps.

    • Matt's popular blog post - Configuring SharePoint 2010 Search in a one-way trust scenario
    • Food Fight - Episode 36: Roles, Environments, Attributes, and Data Bags
    • The Goal by Elliot Goldratt
    • Flipboard
    • Pocket
    • Pomodoro
    • Vitamin-R

    Check-Outs

    Matt

    • Vagrant 1.5
    • QuizUp

    Trevor

    • .NET Fiddle
    • Air Disasters
    • One-Wipe Charlies

    Sasha

    • Visual Studio Web Essentials 2013
    • Self Promotion for Introverts
    • The Little Prince

    Previous 1 18 19 20 21 Next

    Related Podcasts

    Know How… (Video)

    1

    Know How… (Video) Education
    JavaScript Jabber

    2

    JavaScript Jabber Education
    Programming Throwdown

    3

    Programming Throwdown Software How-To
    Software Engineering Radio – the podcast for professional software developers

    4

    Software Engineering Radio – the podcast for professional software developers Software How-To
    The Changelog: Software Development, Open Source

    5

    The Changelog: Software Development, Open Source How To
    Coding Blocks

    6

    Coding Blocks Software How-To
    footer-logo

    Contact Us

    Toll Free: 844-670-7747

    Links

    • Home
    • Top Charts
    • Networks
    • Apps
    • Independents Podcasts
    • Podcast Advertising
    • Podcast News
    • Contact Us
    • About Us
    • Analytics & Insights

    Stay Connected

      Privacy, Terms of Use & Our Code of Ethics Protecting Content Creators Copyrights