
Have you ever found yourself scratching your head at terms that are catered toward an IT-savvy community? DevOps is a commonly used term, thrown around in the IT space without much discussion around what is actually meant by the term. To the average person, you may not want to admit that it alludes your complete understanding, however, it’s helpful to know exactly what is meant, and perhaps how the industry label came to be. With the development and operations used to create software solutions that affect business operations and the ability for your organization to stay relevant in a competitive age, we suggest you start here to get a priming dose of insight into the commonplace terms and practices that drive this innovative field of technology.
Follow along! We’re about to delve into the world of DevOps. Get ready to gain a better understanding of the basics so you are better able to keep up with advancements in the field and communicate with your development team more effectively. We all know that technology is moving much faster than most of us can keep up with and development operations is a huge piece of that forward momentum. Buckle up folks, let’s dive in.
DevOps: A Working Definition
A quick search would lead you to countless definitions—and that might be a good place to start! For our purposes here, we’ll stick with Development Operations (DevOps), loosely used as a term to describe the culture and practices that surround software development and software operation. The technical community recognizes is a mysterious and cryptic concept that takes time (and maybe some working knowledge) to completely understand. Many definitions of DevOps might come off a little esoteric for the everyday novice; here, we’ll attempt to bring a level of understanding for those that aren’t drenched in Internet startup culture.
DevOps require both a practice of operations and development engineers working together through the entire software lifecycle. This means from the design stage through the development process, to production support. This extends to operations staff who use many of the same techniques as developers.
Broken down even farther, “Dev” can be considered a readily used term, shortened from “developers.” In practice, it is characterized more broadly to include anyone involved in developing the product. “Ops,” is the blanket term for systems engineers, system administrators, operations staff, release engineers, network engineers, security professionals, etc.
A Brief History
DevOps arose as a reaction to what was commonly seen as silos and inflexibility which were the results of existing practices in the development space. DevOps are a descendant of agile software development, created to keep up with increased software velocity and throughput that agile methods have achieved. As agile culture and methods were embraced and advanced within the last decade, a need arose for a more comprehensive approach to the end-to-end software delivery lifecycle. With the growth of the automation and toolchain approach, the need for better processes, and the collaboration between “dev” and “ops” among other considerations brought about a movement toward what most generally refer to as “DevOps.”
A Unified Approach to Application Development
Before DevOps application development, software development took a different approach: the gathering of business requirements and writing code for the program were handled by one team. And another QA team was in charge of testing the program for the requirements in an isolated development environment. This team would then release the code for deployment by operations—yet another team.
A common issue leading to the more collaborative approach to DevOps development was discord between teams. This led to the development team creating something that matched the requirements that they were given, but then the product of their work was deemed unusable because systems or networks could not handle what was developed.
There was further fragmentation into separate deployment groups, i.e. networking and database. Basically, there were a number of separate teams utilized during the development process that caused a bottleneck effect, slowing the development process.
DevOps work to create cross-functional teams to remedy these issues. They engage in a collaborative effort that shares in the responsibilities of maintaining a system that runs the software, while also preparing the software that is to run on that system. This method of development and operation help to eliminate an approach that can become disjointed without an appropriate understanding of roadblocks across teams and a unifying goal that each member of the team is taking accountability for.
The Benefits of DevOps
This collaborative approach achieves greater efficiency from the planning stage through to delivery and automation of the delivery process. Some benefits include:
· Overall accelerated time to market
· Enhanced deployment frequency
· Improved mean time to recovery
· Shorter lead times between program fixes
· Improved failure rate of new releases and updates
DevOp Phases of Maturity
There are many phases to DevOps maturity, here we will outline a few of the main stages:
Continuous Integration: This practice quickly integrates the newly developed code with the existing main body of the code to be released. This practice saves time by releasing the code as soon as the team is ready. The term is a runoff from agile engineering practice and has been in the lexicon for some time. As the first step toward maturity, DevOps adopted the term because automation is a requirement of continuous integration. This phase includes checking code, compiling it into usable code, and running validation testing.
Continuous Delivery: The next phase on the path to maturity functions as an extension of continuous integration. Executing continuous delivery requires additional automation and testing before merging the code with the main line. Unlike continuous integration, this indicates that the team gets the code nearly ready to deploy with almost no human intervention, the code base is in a state that is continuously ready to deploy.
Continuous Deployment: At the most advanced phase of maturity, continuous deployment is the evolution of continuous delivery. It deploys completely into production without any human intervention at all. At this level, teams won’t deploy any untested code. Rather, they run any newly created code through automated testing before moving into production. The code will usually only be pushed out to a small number of users with an automated feedback loop that monitors quality and usage before it’s dispersed further.
It’s important to note that continuous deployment isn’t necessarily always the goal for enterprises developing products, and there are actually very few that practice it, namely Google, Netflix, Amazon, Etsy, Pinterest, and Flicker. Much more often you’ll see a focus on moving toward continuous delivery rather than reaching for continuous deployment.
Values of DevOps
The collaborative nature of DevOps creates efficiency through automation with valuable tools. This is the primary focus of DevOps—some organizations valuing culture over tools and vice versa. In reality, a combination of the two is what makes for a successful team and a prosperous outcome.
DevOps Culture: DevOps culture denotes increased collaboration, greater shared responsibility among the team, working toward decreasing silos, creating autonomous teams, valuing feedback, and driving automation. These come as an extension of agile methods, seeking to add an operations’ mindset.
DevOps Tools: The tools DevOps utilize are configuration management, test and build systems, application deployment, version control, and monitoring tools. The three phases of maturity listed above use different tools. Typically, DevOps utilize more tools as they progress farther along the delivery chain.
A Look at the Tools
The DevOps Toolbox:
Configuration Management: this refers to controlling change to the configurations of a server or server environment. Common examples are Puppet and Chef.
Virtual Infrastructure: The most recognizable examples being Amazon Web Services and Microsoft Azure, virtual infrastructures are administered by cloud vendors that sell platform as a service (PaaS). They have APIs which allow you to use configuration management tools to create new machines. Private clouds are another example of virtual infrastructure, allowing DevOps to run a cloud on top of the hardware in your data center.
Test Automation: Test automation refers to testing within the build pipeline. This way, when you have a deployable build, you will be sure it’s ready to be deployed. It is best practice to have a human spot check after automated testing. An extensive automated testing strategy is key to getting to continuous delivery.
Pipeline Orchestration: A manufacturing line of assembly that covers the time from when the developer has completed the code to the time that the code is deployed in the production environment.
Source Code Repository: The repository functions as a place where developers change code. It’s a manager for the various code versions that are checked in by developers. It functions as a way to avoid developers on a team writing over each other’s code. Some tools include Git, Subversion, Cloudforce, Bitbucket, and TFS.
Build Server: The build server is a hardened, stable, and centralized system that is reliable to compile code in the source code repository into executable code base. Some widely used tools are Jenkins, SonarQube, and Artifactory.
Crossroads Technologies specializes in infrastructure projects and IT management. Our DevOps engagements are a zero gap, 100% accountability solution. For more information about technology solutions or to speak with our Advisory Services Division, contact us at 1 (866) 216-4366 or email engageThis email address is being protected from spambots. You need JavaScript enabled to view it..
Articles You Might Find Interesting:
7 Things Every CEO Should Know About the Cloud-Video
5 Things Every CEO Should Know About the GDPR
Is Shadow IT Infiltrating Your Business without Your Knowledge?
Your May 2018 Cybersecurity Recap-Video
Share this article: