The joke goes: There are only 10 types of people in the world; those who understand binary, and those who don’t.
I may have a binary look on the world but similarly I only see 2 types of companies in the world. Those that know their IT department can fuel their competitive advantage and the others that view IT as an unfortunate although necessary budget item.
If you agree with that observation you are likely in the former group. You are a strategically thinking IT person that’s used to researching the latest and greatest technologies and, of course, you’re deeply familiar with all the coolest IT buzzwords: Hybrid clouds, Hyper converged, SDDC, IoT, IaaS, PaaS, ML, insert other cool IT buzzwords, not to mention CONTAINERS! (gasp!).
Fortunately, the latter group is shrinking but there are plenty companies stuck in legacy-land and have become overwhelmed by their fragmented virtual and physical IT infrastructure, their increasing costs, and need for highly specialised (unavailable) IT staff. These companies desperately need to upgrade their IT strategy to stay competitive.
The good news is an effective IT department can be attained just by leveraging a new language. Let me explain…
12 Factor Apps
Containers are all the rage these days, right? Not least because containers, as the name implies, neatly package functionality and usability into small distributable and composable packages. Containers also play a big part in fulfilling some the requirements of the “12 Factor App” manifesto but only if you use them in them right way – 12 Fractured Apps.
You’ve likely heard of the “12 Factor App.” The authors lay down some simple yet powerful guidelines – that if implemented should minimise the time and cost for new developers to start being productive; reduce dependencies on underlying operating systems for portability; and make applications suitable for continuous deployment on cloud platforms for maximum agility and scaling without significant changes to tooling, architecture, or development practices.
Great stuff! In their own words, the people that would benefit from the manifesto are: “Any developer building applications which run as a service. Ops engineers who deploy or manage such applications.”
Apps as a service, developers, and operations engineers? — that composes most of the IT department and pretty much any network connected application…
What the “12 factor app” and other modern IT recipes are trying to enable has been coined as “DevOps.”
DevOps: The fabled intersection where development, operations, and testing work as one and what each does affects the rest of the chain, in a good way.
DevOps has been shown to lead to: “shorter time to market, improved customer satisfaction, better product quality, more reliable releases, improved productivity and efficiency, and the increased ability to build the right product by fast experimentation.”¹
The companies that need to start empowering their IT departments might think, “What’s the fuss about? I’m sure we have some IT guys that can both write code and run the databases. We are already cutting edge!” Well, I’m sorry to tell them… DevOps is not a role! It’s a strategy and a common language to reduce the gap between Developers and Operations. The strategy is on an organizational level and the language are the tools that enable Dev and Ops to clearly define the roles of the application, the automation of the systems, and which roles operations and development play into the success of the DevOps strategy.
Is this really new? Hasn’t this type of IT been the goal since, well, forever? Why will we succeed this time around?
It’s true there is a knowledge and perhaps a cultural gap that we have been trying to bridge between Ops and Dev for as long as we had the roles developers and ops engineers. However, what the 12 factor app manifesto made me realise some years ago, was that before the availability of API driven infrastructure (Cloud) and some of the technology advances in the past 2 years or so, there was no chance of DevOps nirvana.
Now, we finally have the right ingredients to take the next leap of the DevOps evolution and in the process, we are growing up as DevOps organizations. We are building new service-oriented “stateless” applications that self-heal or even repackaging “stateful” and legacy applications with new tools like Container Orchestration frameworks, Software Defined Networking, Schedulers, and Hybrid Infrastructure Platforms. The languages of these tools are there to help us reach our 12 factor goals and ultimately build our DevOps strategies. We just have to put the pieces together!
The next great thing
The fact is, we live in a world with fragmented IT. We are running multiple hypervisors, multiple brands of bare metal servers and switches, we use private and colo hosting and even public cloud computing for new and older types of applications.
You could piece together tens of systems and solutions to try and solve your DevOps challenges if you have the dedicated staff and resources for building Infrastructure Management tools — or you could focus on what makes your company and products great again!
Most cloud vendors and software providers are pushing Container Orchestration as the next great thing but I believe that the next great thing is more than a technology solution. It’s a strategy and common developer and operations language that we like to refer to as Application Orchestration.
These days the most exciting DevOps enabling technologies are being integrated at API level speeds both in the open source community as well as in commercial solutions, and innovations are abound. However, most of these solutions only give you a piece of the puzzle (e.g. container management) but they only cover a fraction of the workloads you need to run.
Solutions like my company’s Cloud Management Platform – Qstack, with a built-in advanced container and workload scheduler, Kubernetes, is changing the way companies develop, test, deploy, and manage their applications and the underlying hybrid cloud infrastructure as ONE collaborative system.
You see our version of Application Orchestration is a complete package that is designed to be easy to use for all of the roles in your IT department (and beyond) because it gives you a common language that describes how physical and virtual compute infrastructure, networking, storage, applications, and the roles people and systems play in your successful DevOps strategy. Qstack decouples the underlying infrastructure technology from developers (if they want to) and gives operations the guidelines, packaging formats, and administration tools to help developers get to the 12 Factor Application benefits and resilience.
In my opinion, that is what Application Orchestration needs to be about a complete IT strategy that enables true DevOps and not just the wrangling of containers as if they were cattle.
In Part 2 of DevOps, 12 Factors and the next great thing… I will go deeper into Qstack’s Application Orchestration technology so stay tuned by following us on Twitter or better yet sign up for a private Qstack demo!
¹Chen, Lianping (2015). “Continuous Delivery: Huge Benefits, but Challenges Too”. IEEE Software. 32 (2): 50. doi:10.1109/MS.2015.27.
Eirikur “Eiki” Hrafnsson is co-founder and COO of Greenqloud the makers of the hybrid cloud platform Qstack. With over 20 years experience in enterprise and government IT Eiki focuses on solving real world problems by making IT simple.