Tip:
Highlight text to annotate it
X
GitHub is the number one source control repository in the world, and we've grown exponentially
over the last five years -- that's only helped by Puppet allowing us to scale quickly and
rapidly and easily.
So at GitHub our core mission is to help developers work smarter and better together than apart.
A lot of the workflow that we developed is focused on collaboration with developers,
doing things like pull request in order to collaborate more efficiently. And Puppet certainly
helps us with that by allowing us to collaborate cooperatively with our developers in order
to build infrastructure. So it's no longer operations building infrastructure, it's a
collaboration between all of the folks, the operations folks and the development folks
using a common language that we can express, "What does infrastructure need to look like?"
At GitHub, we use Puppet in order to do initial configuration of our servers through provisioning
as well as initial deployment of our applications and management of state throughout the lifecycle
of the machine.
We create common patterns for use within Puppet in order to make the development time and
the deployment time as short and small as possible so we go from development to production
very quickly.
One of the big things we focus on is "ship code, ship quickly to get it out there so
that people can give you comments and opinions of how things are working." And Puppet enables
us to really just cut out many steps in the provisioning through deployment process.
GitHub uses Puppet in order to deploy to multiple clouds and multiple data centers. It allows
much flexibility with server types, hardware types -- all within the same code base. So
we're able to maintain extreme agility, extreme flexibility even with terms of business cost.
When we want to move to a different cloud from a costing perspective Puppet is not a
roadblock, it's actually an enabler for us. It helps accelerate that decision-making process.
That's the flexibility that we go with Puppet is we're not boxed into any one given technology.
We can very quickly pivot onto a new technology. And that very much aligns with it get it out
and ship it.
Configuration management and Puppet comes along, and I no longer have to wait for many
departments to figure out how they're going to orchestrate deployment. And I don't have
to wait two weeks lead time for some networks or some servers. I can define some code. Puppet
takes care of the magic. And now I'm moving. It's no longer about staleness. It's about
"What's coming?" And that's the interesting part, that's what Puppet provides.
We have a relatively small operations team, around 10 or 12 at this point. And we manage
500 nodes, and that's up from 200 not less than six months ago. So our continual growth,
in order to support folks wanting to make their code public, that growth trajectory
is only helped by Puppet enabling us to scale very quickly.
And I can scale myself to hundreds of nodes, thousands of nodes, tens of thousands of nodes.
I've been in an environment that managed somewhere in the 10,000s of nodes. And that's exciting
to be able to see and orchestrate entire farms of servers to just provide a business value
without really having to try all that hard. It just becomes very easy.
Success for me when using an automation tool means I get to go to the bar sooner. I no
longer have to worry about how many servers do I have to manually touch. Or even "Did
my script run properly?" I can set it, and forget it. And that allows me to go spend
more time with my family, which is what really matters. I enjoy technology, but at the end
of the day I want to go spend time with family and friends. I'm no longer encumbered by these
manual processes. I can orchestrate significant numbers of machines without even really trying,
and that's fantastic.