0
Why DevOps is key for your business
Adopting DevOps isn’t just a good idea, it’s a business necessity.
To get the most from today’s technologies — from servers to virtual machines (VM)s and containers on to the clouds they empower — you must get your system administrators working together with your developers. Hence, DevOps, the portmanteau of development and operations.
In Agile, programming teams include users, management, and system admins from a project’s start. This is often done by putting everyone involved in a project into small groups that meet daily. One of the most popular mechanisms for doing this is Scrum, but there are other methodologies such as Extreme Programming (XP). With DevOps, these approaches are sped up by using one of multiple DevOps programs, such as Ansible, Chef, Puppet, or SaltStack.
DevOps: Reach over the IT wall between development and operations
As DevOps expert Damon Edwards explained, “DevOps is a response to the growing awareness that there is a disconnect between what is traditionally considered development activity and what is traditionally considered operations activity.”
Edwards continued:
Development-centric folks tend to come from a mindset where change is the thing that they are paid to accomplish. The business depends on them to respond to changing needs. Because of this relationship, they are often incentivized to create as much change as possible. Operations folks tend to come from a mindset where change is the enemy. The business depends on them to keep the lights on and deliver the services that make the business money today. Operations is motivated to resist change as it undermines stability and reliability.
When that disconnect is repaired, not only will both sides be less frustrated, they’re able to work much faster. For the enterprise as a whole, DevOps improves both business agility and IT alignment. In other words, businesses can deliver improved services to users while using IT to more efficiently achieve business objectives.
What makes DevOps possible, according to James Urquhart, general manger of Amazon Web Services (AWS) Learning Services, is:
First, server virtualization — followed by storage and network virtualization — introduced us to the idea that physical systems operations can be decoupled from the digital elements that they host. Operating systems no longer have to be shackled to physical servers. File systems no longer have to be locked down on specific spindles. Connections between servers are no longer statically assigned to specific physical switch ports.
It was one thing when individual servers needed constant hands-on attention to keep them running. Today, almost everything in IT is virtualized, which means DevOps programs make it simple for both developers and administrators to work together. In short, in this new software-defined IT world, businesses can move at the speed of software development.
Implementing DevOps: 5 obstacles to overcomeHow to implement DevOps: 5 tips for doing it rightEight best practices for hiring DevOps engineersDevSecOps: What it is and how it can help you innovate in cybersecurityHow DevOps is helping Allianz Insurance UK to become smarter and quickerThree lessons your business can learn from Nationwide’s DevOps journeyDevOps success factors: Culture, APIs and security
DevOps: Why use it?
There are multiple benefits to using DevOps to move into the software-defined IT world.
Speed
DevOps: Which tools are required?
While DevOps is a business IT philosophy, making it work requires three sets of tools. These are continuous integration/continuous development (CI/CD) programs, DevOps software, and container orchestration programs. These, in turn, are built on VMs, containers, and clouds.
CI/CD programs, such as Jenkins, Atlassian’s Bamboo, and Microsoft’s Visual Studio Team Services (VSTS), enable developers to regularly merge their code changes into a central repository. Each code check-in is then verified by an automated build. This lets teams find bugs much earlier in the development process.
According to AWS, “The key goals of continuous integration are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.” As Martin Fowler, ThoughtWorks’ Chief Scientist, remarks, “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” CD moves this on to the idea that all merged code is production-ready.
Universally, these programs enable you to create master copies of the software stacks and servers you need for your work. Once perfected, you can implement thousands of identical instances. If you need to change one — say, use MariaDB instead of MySQL for your database server, each allows you to easily switch out DBMSs in multiple servers. The end result is an enormous savings in time of server and software deployment.
While these DevOps programs work well for servers and server VMs, they’re not designed to manage containers. That’s where Docker swarm mode, Kubernetes, and Mesosphere Marathon step in.
Containers are quickly becoming the dominant cloud-enabling technology, according to 451 Research, primarily because containers use far fewer system resources than do VMs. For CFOs, the bottom line is you can run from four to 10 times as many server instances on the same server hardware as you can with VMs.
Managing containers isn’t easy. As DataDog, a cloud-monitoring company, points out in its report on real-world Docker adoption, “Containers’ short lifetimes and increased density have significant implications for infrastructure monitoring. They represent an order-of-magnitude increase in the number of things that need to be individually monitored.”
Specifically, container management programs provide four services:
Provisioning: These tools can provision or schedule containers within a container cluster and launch them. Configuration scripting: Scripting permits you to load your specific application configurations into containers in the same way you might already be using Juju Charms, Puppet Manifests, or Chef recipes. These are written in YAML or JavaScript Object Notation (JSON). Monitoring: These tools track and monitor containers’ health and hosts in the cluster. When a container fails, the monitoring tool spins up a new instance. If a server fails, the tool restarts the containers on another host. The tools also run system health checks and report irregularities with the containers, their VMs and servers. Rolling upgrades and rollback: When you deploy a new version of the container, or the applications running within the containers, the container management tools automatically update them across your container cluster. If something fails, they’ll let you roll back to the last known good configurations.
Each do these in different manners. With Docker Swarm mode, introduced in Docker 1.12, the container load is spread across multiple hosts. It also enables you to set up a swarm (that is, a cluster), on multiple host platforms. Docker is the leading container company.
0