Infrastructure is development
- 2. 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/
- 3. “ There are only two hard problems in Computer Science: cache invalidation and naming things.” --Phil Karlton
- 9. Who Am I? <Insert Large Company Name Here>
- 17. Where Am I? If you google stahnma , it's probably me.
- 18. 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.
- 46. To Have a High Performing Team : You must know what you manage.
- 67. Backup Tools – Netbackup, Tivoli, Networker, Tar, Gzip, Rsync, Cron
- 76. What now? A. You can cry about it B. You can remove data sources
- 77. What now? A. You can cry about it B. You can remove data sources C. You can integrate/federate them
- 78. 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
- 79. 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.
- 119. So when I say re-use??? Reuse the code and tools you have
- 120. So when I say re-use??? Enable feature you are currently not utilizing
- 121. So when I say re-use??? Search for a quality Open Source project
- 122. So when I say re-use??? Find other organizations successes on an open infrastructure
- 126. You can't reuse? Ok, you can look at building or purchasing... http://www.flickr.com:80/photos/iambrad/289462494/
- 128. I have/need a purchased proprietary solution for Problem X So do I, and I'm sorry. http://www.stahnkage.com/outage
- 144. 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.
- 145. 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
- 146. 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
- 150. Rules for Software Evaluation Do not implement any product that does not provide an API.
- 151. Rules for Software Evaluation Do not implement any product that does not provide an API.
- 152. The provided API must have all functionality that the application provides.
- 153. Rules for Software Evaluation Do not implement any product that does not provide an API.
- 154. The provided API must have all functionality that the application provides.
- 156. Rules for Software Evaluation Do not implement any product that does not provide an API.
- 157. The provided API must have all functionality that the application provides.
- 160. Rules for Software Evaluation Do not implement any product that does not provide an API.
- 161. The provided API must have all functionality that the application provides.
- 164. The API must include functional examples and not require someone to be an expert on the product to use.
- 165. Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
- 166. Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
- 167. All data stored in the product must be machine readable and writable by applications other than the product itself.
- 168. Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
- 169. All data stored in the product must be machine readable and writable by applications other than the product itself.
- 170. Writing work-arounds to cover the deficiencies in a product should be less work than writing the product’s designed functionality.
- 171. Rules for Software Evaluation Do not use any product with configurations that are not machine parseable and machine writable
- 172. All data stored in the product must be machine readable and writable by applications other than the product itself.
- 173. Writing work-arounds to cover the deficiencies in a product should be less work than writing the product’s designed functionality.
- 189. System Admins write code for use by themselves, and hopefully somebody else http://www.flickr.com:80/photos/herzogbr/2274372747/
- 196. People “...organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.” -- Conway's Law (1968)
- 252. Moving Forward Driving on hexagonal wheels isn't fun http://www.flickr.com:80/photos/andrewmbutler/2762480367/
- 253. Moving Forward Driving on hexagonal wheels isn't fun http://www.flickr.com:80/photos/andrewmbutler/2762480367/ Ask this guy.
- 256. Steal it all Practical Examples The Fedora Infrastructure Project https://fedoraproject.org/wiki/Infrastructure
- 257. 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/
- 265. Ability to hire knowledgeable individuals http://www.flickr.com:80/photos/thomas-merton/255204957
- 269. Able to retain rock stars http://www.flickr.com:80/photos/thomas-merton/255204957
- 275. 3 Axioms 1. Reuse before building or purchasing 2. Don't leverage the meatcloud 3. Decouple your infrastructure
- 281. Your Time is Valuable Identify tasks on which the team spends the most time. Commonly (Growth) Deployment
- 288. Charity This is normally done because the person can't actually meet the requirements of $DAYJOB
- 296. Don't automate bad process. http://www.flickr.com:80/photos/houseofcards/94935538/in/photostream/
- 302. Pick a Task Let's start with system Deployment You have some great options for tools
- 318. Requirements Hundreds of tickets, IM conversations, phone calls, hallway conversations and just plain old complaining?
- 319. Requirements Hundreds of tickets, IM conversations, phone calls, hallway conversations and just plain old complaining? Yeah, I thought so.
- 363. Design Don't be afraid to say 'good enough for version 1' Limit Scope.
- 365. Design A good enough system today is better than a perfect one that hasn't been invented.
- 392. Can I script this? Given enough Time and Money, it's all scriptable.
- 394. Can I script this? Given enough Time and Money, it's all scriptable. Can I store the results?
- 396. Can I script this? Given enough Time and Money, it's all scriptable. Can I store the results? Yes
- 398. Can I script this? Given enough Time and Money, it's all scriptable. Can I store the results? Yes How Often should I test this?
- 399. Test Case #!/bin/bash . config_vars.sh rc=0 # First, if we a VM exit all good if ( lspci | grep -i vmware &> /dev/null ) ; then rc=0 else if ( ! ifconfig -a | grep -i bond0 &> /dev/null ) ; then echo "FAIL: Network interfaces not bonded." rc=1 fi fi exit $rc
- 400. Test Case #!/bin/bash . config_vars.sh rc=0 # First, if we a VM exit all good if ( lspci | grep -i vmware &> /dev/null ) ; then rc=0 else if ( ! ifconfig -a | grep -i bond0 &> /dev/null ) ; then echo "FAIL: Network interfaces not bonded." rc=1 fi fi exit $rc Site Specific Data
- 401. Test Case #!/bin/bash . config_vars.sh rc=0 # First, if we a VM exit all good if ( lspci | grep -i vmware &> /dev/null ) ; then rc=0 else if ( ! ifconfig -a | grep -i bond0 &> /dev/null ) ; then echo "FAIL: Network interfaces not bonded." rc=1 fi fi exit $rc Site Specific Data Decoupled Logic
- 412. Test Again After implementation, test again. It's automated right? So it's quick and painless.
- 415. Close the loop If the version of package X changes, and you have a policy for package X, report.
- 416. Close the loop If the version of package X changes, and you have a policy for package X, report^H^H^H^H^H fix it.
- 417. Close the loop If don't have a network bond, report it or fix it.
- 448. Some common areas for improvement A few things to avoid when crafting solutions.