What is DevOps
Post date: Apr 11, 2015 11:43:00 PM
DevOps is more of a culture and mindset of engineers that will never settle for the status quo. DevOps is not a title, role, function or even any particular team. There are many teams that adopt DevOps practices such as, but not limited to:
Frontend, Backend, Full Stack Engineers
Machine Learning Engineers
Site Reliability Engineers
The list goes on and on...
This is my interpretation derived purely on experience over the many years. To give some insights into my background, this list comprises of everything I've touched and operated either for personal hobbies or professional work:
* Systems (since 1994)
- Windows 3.1 up to Windows Server 2002
- Solaris up till it was sold to Oracle
- Linux (Slackware, Redhat/CentOS/Fedora, Mandrake, Gentoo, Debian/Ubuntu)
- Mac only during my lost years ;)
* Infrastructure (since 1996)
- Central Syslog
- IBM DB2
- Oracle 9i
- Redhat Jboss
- IBM Websphere
- IBM Portal Server
- BEA WebLogic
- Apache Tomcat
- 389 Directory Server
- IBM Directory Server
- Sun One Directory Server
- Netapps Filers
- EMC Isilon
* Developer (since 1996)
- MS Visual Basic with Win32 API DLL
* QA (experience from early intern days at IBM)
- Mercury Load Tester
* Software and Systems Architect (since 2004)
- Model driven architecture
- Frameworks (MVC, IoC, Struts, Pico, Spring, J2EE, EJB, JAAS, Hibernate)
- Created Java Design Decisions for global Nissan development projects
- Reviewed code deliverables from vendors and internal teams for compliance with design decisions
- Trained teams on software and systems industry best practices
* Design/UX (since 1996 always has been a side hobby with some HCI background in simplicity and logical navigation)
- 3D Studio
To me DevOps is a discipline of controlled A.D.D. What that means is you are well versed enough in various disciplines of the same industry or field. Yet, you can also focus particular experiences into your single task at hand. You would rate yourself near average or above average in these areas so that given a random task, you can work independent at solving solving the task at hand. You need very little hand holding because of the breadth of experience you can draw upon. You are completely open-minded to new technologies, yet also able to recognize when it's just a reinvention of the dated past technologies.
At no point will you find a DevOps asking the following questions:
Where are the logs for ...?
How do I login into server ...?
What is an application server?
What is running on ...?
How do I see what process is eating up memory?
How do I use ...?
Is this down or is it degraded?
What is MVC & IoC?
What are frameworks?
How do I add a user onto so and so?
If you do, you've got a long ways to go before I'd call you a DevOps Engineer. I would also attribute passion and drive to being a great DevOps. The strive to constantly learn. You don't work to count the hours that past. Google the heck out of your curiosity until there's no more search results, before going to a person of experience and hitting them up for information. I would also grab and purchase all the timeless books that provide sound fundamentals. Without that due diligence, you will never remember what piece of advice or guidance someone has just bestowed upon you. You may take great notes at best, but the pain and struggle is how you get that piece of information ingrained deep in your head.