The DevOps landscape and the hundreds of tools it contains are much like a vast garage, filled with sophisticated instruments and expensive tooling. Each area of the garage is organized around a certain set of operations and is tuned to efficiently accommodate the operations which go on there (storage, cluster computing, and resource management). On any normal day, the area is staffed by a knowledgeable set of technicians who are happy to explain the particulars of their discipline and help get you unstuck if you get into a mess.
Even though the garage is equipped and staffed, however, it is important to acknowledge a reality. DevOps doesn’t fit perfectly within any one discipline or endeavor. For that reason, you will be working on projects which don’t fit neatly into any one area of the garage and will require the use of resources from many of them.
You’ll need to move tools out of the areas they are normally kept and apply techniques outside of the discipline where they were born. The technicians (in this case referring to help resources and man pages), while helpful within their area of expertise, won’t really be able to give you all of the answers you’re looking for. This is because the problems you are wrestling with are cross-discipline in nature.
But just because the organization of the garage isn’t perfect does not mean that the structure you inherit isn’t useful or the constructs it holds won’t help you on your way. As you go about building your own mental processes and moving into the space, we (the authors of this course) think you should pay attention to the following:
Tools: Libraries, systems, and instrumentation for accomplishing a goal. Good tooling is informed by smart thinking and enables efficiency. Your garage is filled with good tooling, which has successfully solved hard problems for a long time. As you look to interfaces and patterns that have worked, look for other problems where it might also serve as a solution (or at least the template of a solution). Many of the challenges in this course can be approached from many directions, solved via an application written in Python versus Java, for example. Or, you might find that one part of the system is best solved by a Python library, while another via a Java library. That’s okay! Use the tool best suited for the job, because it’s possible to combine disparate tools Together.
Toolboxes and Toolchains: Complex jobs require multiple tools, usually working together, to solve a problem. For that reason, it’s a good idea to keep tools in a common “toolbox” and create collections intended for specific challenges. In a garage, this might be the ratchet set or the fasteners. In software, a good example is the Python analytic stack.
There are a couple of challenges that your toolboxes and toolchains need to address, two of the most important include locality (where does it live and how does it access things that it needs) and architecture (how it is organized, both internally and as part of a larger system). Tools that integrate need to be able to access one another and pass data back and forth. If they are programming libraries, you need to be able to import and run the code in the context of where the application runs (given the distributed environment many of the applications will find themselves in, this isn’t always as straightforward as it might seem).
DevOps Tooling
If it is a service, it needs to know how to access other components and where to pipe its results.
Techniques: A garage full of tools we don’t know how to use is worthless. For that reason, we should leverage the best technique and knowledge around. In the metaphor of the garage, this means letting the technicians (in the form of documentation, instructors, and peers) help to inform your approach. They may not know everything, but their expertise may help guide your endeavors.
Workbenches: An organized toolbox and informed set of techniques need a place to be applied: A workbench. Automotive work happens in garages and surgeries happen in operating suites because both sets of endeavors have complex requirements.
Get Started with DVO Consulting
DVO Consulting is a privately-held, female-owned, national IT, business consulting, and staff augmentation firm founded and headquartered in Bountiful, UT to service the ever-growing silicon slopes market and the west coast. We also have offices in Great Falls, VA, which supports clients in Maryland, Virginia and Washington DC; covers east coast operations.
Contact us to learn more about how DVO Consulting can be your partner for DevOps strategy.