SlideShare a Scribd company logo
Infrastructure is Development Michael Stahnke (stahnma)   02-SEP-2009
The ideas presented today are not representative of my employer, business success, past jobs and do not offer endorsement to any particular products brands or companies. Heck, a lot of this stuff isn't even my idea to begin with. http://www.flickr.com/photos/sea-turtle/3049443478/ http://www.flickr.com/photos/jjze/726682393/
“ There are only two hard problems in Computer Science: cache invalidation and naming things.” --Phil Karlton
Who Am I?
Who Am I?
Who Am I?
Who Am I?
Who Am I?
Who Am I? <Insert Large Company Name Here>
Where Am I? http://stahnma.fedorapeople.org
http://www.stahnkage.com
@stahnma on Twitter
@stahnma on identi.ca
stahnma on github
[email_address]
stahnma on Freenode IRC
Where Am I? If you google  stahnma , it's probably me.
Baseline Infrastructure – the collection of all components that make up the non-external facing IT realm.  Primarily, in this case, servers connected to storage and network.  It can include network/SAN devices in some cases.
What's Coming Up The Tao of the Agile Infrastructure
What's Coming Up Inherit Problems with System Administration
What's Coming Up Some solutions to problems with System Administration
Three Domains 1.  Infrastructure Practices
Three Domains 1.  Infrastructure Practices 2.  People
Three Domains 1.  Infrastructure Practices 2.  People 3.  Technology Choices
The Problem
System Administration isn't a science
You can't get a degree in System Administration
Heterogeneous Systems
No Clear Job Description
Expectations not Clear
System Admins are @ holes
Can't keep up with demand
Admins fight management http://www.flickr.com/photos/jjze/726682393/
Solutions
Are delivered Solutions
Through Ideas Solutions
Put together by Good People Solutions
Using some awesome technologies Solutions
Topic 2 Infrastructure Practices
Why is your infrastructure special?
Steal Ideas http://www.flickr.com/photos/purplemattfish/3508761485/
Open your infrastructure
Opening your infrastructure  includes your issues
Open your infrastructure and your solutions
Well, what do you mean?
To Have a High Performing Team : You  must  know  what you manage.
What do you have? Asset Database
LDAP Directory
Hardware Management Tools
Power Management Tools
Monitoring Tools
Provisioning Tools
Storage Management Tools
Backup Tools
Policy Engines
Patch Tools
Security Scanning Tools
Virtualization Management Tools
Log Management Tools
Common Example: Asset Database – Who knows?
LDAP Directory – RHDS, 389, SunOne, AD, OpenLDAP
Hardware Management Tools – IBM Director, DRAC
Power Management Tools – APC
Monitoring Tools – Nagios, Tivoli, OpenView
Provisioning Tools – Cobbler, Vmware,
Storage Management Tools – IBM Whatever, Some Custom Stuff
Backup Tools – Netbackup, Tivoli, Networker, Tar, Gzip, Rsync, Cron
Policy Engines – Cfengine, Puppet, Scripts
Patch Tools – RHN, NIM, Custom Repos
Security Scanning Tools – Lots of stuff
Virtualization Management Tools – vCenter, Virt-Manager, Spacewalk, RHN
Log Management Tools – Syslog Server
DNS – Bind
 
What now? A. You can cry about it
What now? A. You can cry about it B. You can remove data sources
What now? A. You can cry about it B. You can remove data sources C. You can integrate/federate them
What now? A. You can cry about it B. You can remove data sources C. You can integrate/federate them D. All of the Above
What now? A. You can cry about it B. You can remove data sources C. You can integrate/federate them D. All of the Above The correct answers are both B and C; however it is very likely you will encounter A, so the likely answer is, in fact, D.
Infrastructure is Development
The  Infrastructure is the Application
Application == Infrastructure
Infrastructure Goals Deliver results to the business
Infrastructure Goals Deliver results to the business
Make the infrastructure an investment, not a cost
Infrastructure Direction Solving Problems
Infrastructure Direction Solving Problems
Automation
Infrastructure Direction Solving Problems
Automation
The right mix of people
Infrastructure Direction Solving Problems
Automation
The right mix of people
The right decision processes
Infrastructure Direction Solving Problems
Automation
The right mix of people
The right decision processes
Vision
Infrastructure Direction Solving Problems
Automation
The right mix of people
The right decision processes
Vision
Known State
Where do we start?
Axiom 1 Reuse before building or purchasing
Your Infrastructure isn't a secret
Your Infrastructure isn't the secret sauce
Your Infrastructure isn't differentiating
Your Infrastructure isn't a secret Everybody has servers, a network, some storage
Somebody has probably solved this problem
Check some common places: Google
IRC
Sourceforge
Ohloh.net
Amazon book selection What solutions do you see?
So when I say re-use??? Reuse the code and tools you have
So when I say re-use??? Enable feature you are currently not utilizing
So when I say re-use??? Search for a quality Open Source project
So when I say re-use??? Find other organizations successes on an open infrastructure
You can't reuse? Ask why.
You can't reuse? Is your problem new?
You can't reuse? Is your problem special?
You can't reuse? Ok, you can look at building  or purchasing... http://www.flickr.com:80/photos/iambrad/289462494/
I have/need a purchased proprietary solution for Problem X
I have/need a purchased proprietary solution for Problem X So do I, and I'm sorry. http://www.stahnkage.com/outage
Software/Tool Selection
Purchased Software Selection Criteria There a few things to evaluate
Purchased Software Selection Criteria There a few things to evaluate Price
Purchased Software Selection Criteria There a few things to evaluate Price
Performance
Purchased Software Selection Criteria There a few things to evaluate Price
Performance
Functionality
Purchased Software Selection Criteria There a few things to evaluate Price
Performance
Functionality
But really....
Meatcloud Manifesto
Cloud Computing is all the rage
Cloud Computing is all the rage Scaling through people is not
The GUI is for what some user interface designer thought you wanted to do.  The CLI is for what you actually need to get done.
The GUI is for what some user interface designer thought you wanted to do.  The CLI is for what you actually need to get done.  -- Mike Stahnke
The GUI is for what some user interface designer thought you wanted to do.  The CLI is for what you actually need to get done.  -- Mike Stahnke
Axiom 2 Don't Leverage the Meatcloud
Choose your technologies wisely
Very wisely
Rules for Software Evaluation Do not implement any product that does not provide an API.
Rules for Software Evaluation Do not implement any product that does not provide an API.
The provided API must have all functionality that the application provides.
Rules for Software Evaluation Do not implement any product that does not provide an API.
The provided API must have all functionality that the application provides.
The provided API must be tailored to more than one language and platform.
Rules for Software Evaluation Do not implement any product that does not provide an API.
The provided API must have all functionality that the application provides.
The provided API must be tailored to more than one language and platform.
Source code counts as an API, and may be restricted to one language or platform.
Rules for Software Evaluation Do not implement any product that does not provide an API.
The provided API must have all functionality that the application provides.
The provided API must be tailored to more than one language and platform.
Source code counts as an API, and may be restricted to one language or platform.
The API must include functional examples and not require someone to be an expert on the product to use.
Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
All data stored in the product must be machine readable and writable by applications other than the product itself.
Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
All data stored in the product must be machine readable and writable by applications other than the product itself.
Writing work-arounds to cover the deficiencies in a product should be less work than writing the product’s designed functionality.
Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
All data stored in the product must be machine readable and writable by applications other than the product itself.
Writing work-arounds to cover the deficiencies in a product should be less work than writing the product’s designed functionality.
But I don't have automation specialists
That's a problem.
Do you have developers?
 
What's the difference between development and automation?
Process?
Requirements Gathering?
Cost?
Testing?
Egos?
Funky Lava Lamps?
Design Patterns?
Code portability?
What's the difference between development and automation?
Developers write code for use by somebody else http://www.flickr.com:80/photos/davesag/71441707/
System Admins write code for use by themselves, and hopefully somebody else http://www.flickr.com:80/photos/herzogbr/2274372747/
People make the Infrastructure Agile
Attract Talent People
Retain Talent People
People Hire rock stars
People Treat them like rock stars
People Observe their organizational behavior
People “...organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.”  -- Conway's Law  (1968)
People Test their knowledge
Hiring Questions
You want rock stars remember?
Some helpful hiring questions Describe your home network setup.
Some helpful hiring questions What cool technology projects didn't make your resume?
Some helpful hiring questions Do you know what version control is?
Some helpful hiring questions Do you know what version control is? Are you beyond CVS?
Some helpful hiring questions Security or Availability?
Some helpful hiring questions Apt or Yum?
Some helpful hiring questions Provide three uses for a towel.
Some helpful hiring questions Pirates or Ninjas?
Some helpful hiring questions Icanhascheezburger or ihasahotdog ?
Two Types of People Breadth vs Depth
Breadth vs Depth Breadth  Systems Automation People.
Breadth vs Depth Breadth  Systems Automation People.
Big Picture thinkers.
Breadth vs Depth Breadth  Systems Automation People.
Big Picture thinkers.
Visionaries.
Breadth vs Depth Breadth  Systems Automation People.
Big Picture thinkers.
Visionaries.
Holistic View.
Breadth vs Depth Depth Solve the problem for this exact situation.
Breadth vs Depth Depth Solve the problem for this exact situation.
Tune like it's going out of style.
Breadth vs Depth Depth Solve the problem for this exact situation.
Tune like it's going out of style.
Maximum ROI.
Breadth vs Depth Depth Solve the problem for this exact situation.
Tune like it's going out of style.
Maximum ROI.
Deep understanding of the technology.
Breadth vs Depth Turns out, you need both.
People Specialist vs Generalist
People Specialist vs Generalist.^H^H^H^H^... not so much.
How many people is  the right amount?
50:1?
100:1?
200:1?
2:1?
Gartner Says:
Gartner Says: “Yes”
There is one rule for Server/Admin Ratio:
 
Axiom 2 Don't Leverage the Meatcloud
We've Covered Technology Selection
We've Covered People Decisions
Let's cover Community
Axiom 3 Decouple your Infrastructure.
Code for the generic case
Stop reinventing the wheel, srsly.
Moving Forward Can you implement an Open Strategy to solve this issue?
Moving Forward If you have to solve it yourself, can it be Open for others?
Moving Forward Have an Open Infrastructure
Moving Forward Driving on hexagonal wheels isn't fun http://www.flickr.com:80/photos/andrewmbutler/2762480367/
Moving Forward Driving on hexagonal wheels isn't fun http://www.flickr.com:80/photos/andrewmbutler/2762480367/ Ask this guy.
Moving Forward Driving on hexagonal wheels isn't fun Quit reinventing the wheel...poorly
Steal it all Practical Examples of Open Infrastructure
Steal it all Practical Examples The Fedora Infrastructure Project https://fedoraproject.org/wiki/Infrastructure
Steal it all Practical Examples The Community Services Infrastructure Standards http://infrastructure.fedoraproject.org/csi/free-software-policy/en-US/html-single/ https://fedorahosted.org/csi/
De-coupled Infrastructure Benefits Commonly accepted solutions to problem http://www.flickr.com:80/photos/thomas-merton/255204957
De-coupled Infrastructure Benefits Commonly accepted solutions to problem
Portability of solutions http://www.flickr.com:80/photos/thomas-merton/255204957
De-coupled Infrastructure Benefits Commonly accepted solutions to problem
Portability of solutions http://www.flickr.com:80/photos/thomas-merton/255204957
De-coupled Infrastructure Benefits Commonly accepted solutions to problem
Portability of solutions
Ability to hire knowledgeable individuals http://www.flickr.com:80/photos/thomas-merton/255204957
De-coupled Infrastructure Benefits Commonly accepted solutions to problem
Portability of solutions
Ability to hire knowledgeable individuals
Able to retain rock stars http://www.flickr.com:80/photos/thomas-merton/255204957
De-coupled Infrastructure Benefits Commonly accepted solutions to problem
Portability of solutions
Ability to hire knowledgeable individuals
Able to retain rock stars
Community built around tools and support http://www.flickr.com:80/photos/thomas-merton/255204957
3 Axioms 1. Reuse before building or purchasing 2. Don't leverage the meatcloud 3. Decouple your infrastructure
 
Your Time is Valuable
Waste less of it
Your team's time is valuable
Manage it
Your Time is Valuable Identify tasks on which the team spends the most time. Commonly  (Growth) Deployment
Account Management
Ad-Hoc File Transfer type activity
Patches http://www.flickr.com:80/photos/denaldo/3326738675/
Time Evaluation Evaluate your team's time spent on “ Displacement Activities ” Fund Raising
Parties/Showers
Volunteer Stuff
Charity This is normally done because the person can't actually meet the requirements of $DAYJOB
See Also: People
Pick a Task Focus on one thing
Focus on one thing only
Seriously, this will help
You're ready to automate.
 
OK, maybe you're not ready to automate.
Don't automate bad process. http://www.flickr.com:80/photos/houseofcards/94935538/in/photostream/
You get bad results.....faster.
Bad processes deliver bad results.
You don't need a panflute.
 
It starts with requirements
Pick a Task Let's start with system Deployment You have some great options for tools
Do you need a tool?
Do you need it automated?
Do you need a pan-flute?
Process Evaluation Who consumes the process?
Process Evaluation What are the outputs?
Process Evaluation What are the inputs?
Process Evaluation What's unknown?
Process Evaluation What's that rare case that you should just leave out?
Process Evaluation What's the gotcha you didn't put in because it was hard?
Gather Requirements Ask your process consumers about their needs
Gather Requirements Ask them to think about outputs, not the process
Gather Requirements How do they provide the information?
Requirements Formal Specification Document?
Requirements Formal Specification Document?  Awesome.
Requirements Formal Specification Document?  Awesome. I doubt it
Requirements Hundreds of tickets, IM conversations, phone calls, hallway conversations and just plain old complaining?
Requirements Hundreds of tickets, IM conversations, phone calls, hallway conversations and just plain old complaining? Yeah, I thought so.
Requirements Let's Get Agile.
Requirements Let's Get Agile.  Development is agile.

More Related Content

Infrastructure is development