What is it?
DevOps is a mindset, a cultural practice involving the collaboration of developers and operational engineers in order to deliver and operate systems at scale. It’s about the creation and operation of systems, coming together into a single practice that plans and builds for service life.
From a technical perspective DevOps teams typically use a host of tools and technologies to enable automated deployment, integration and infrastructure builds within an organisation. These tools enable an organisation to deploy solutions in cloud, on-premise and on hybrid infrastructures, automatically within minutes or seconds.
CI/CD can be regarded as a DevOps tactic referring to the combined practices of continuous integration and continuous delivery or deployment. In CI/CD we use tooling to automate the build, testing and deployment of applications.
Value proposition of the capability
Organisations engaged in DevOps are principally looking to get more done faster. Faster delivery times are not the only benefit. Organisations can also use DevOps practices to enable:
- Better collaboration between teams
- Reduced costs in delivery, release and operational management
- Better quality, reliability and agility in releases
- Better customer experience through better delivery
- More effective and earlier defect detection
- Greater resilience and up time of solutions
Cost reduction opportunities with DevOps practices are significant. Being faster in build, test and deployment has knock on effects throughout the lifecycle of a product or solution. It impacts every single release cycle whether that is a feature release or a support defect. Most importantly, it also frees up time for innovation.
Common uses or use cases
Organisations employ DevOps capability to manage infrastructure as code, microservices and many other development initiatives. Sophisticated capability in this discipline enables organisations like Facebook to be continually release end to end tested new functionality into production. It enables organisations using cloud infrastructures like Google, Amazon AWS and Azure to deploy environments in a fraction of the time we would normally associate with these activities.
At Chakray, we employ it with customers in:
- Infrastructure deployment
- Integration delivery
- Software/code release cycles
Implementation Best Practices
Best practice with DevOps is about adopting the practices associated with the discipline. This entails buy-in from leadership within the organisation which requires building the business case for it. Demonstrating quick wins in terms of cost savings, feature releases or fixing critical security issues are good places to start.
The DevOps approach is successful when the organisation is able to shift behaviour and thinking. Once the organisation has achieved a level of readiness for change, it is time to look at CI/CD platforms and technologies to support the practices. Deployment of a platform and the associated pipelines enables developers to own the solution through to production as opposed to continually handing off to operations and other teams to solve issues in the field. Operations subsequently have the capability to automatically test and deploy within a very short period of time, therefore delivering the basics of a DevOps practice.
Continuous testing and continuous deployment are now a natural evolution. These two capabilities enable testing and deployment throughout the delivery pipeline at various stages as opposed to at single points. This can be further augmented by continuous monitoring to all feedback as early as possible to help provide focus and save time and effort.
How Do Technologies Differ?
There are a number of technologies and platforms in the market that support DevOps and CI/CD capabilities. There are many options for customers looking to engage with technologies in this market. Options include:
- Open source stacks
- Subscription based products & technologies
- Consumption priced services
As with all options in the market there are pros and cons associated with each. In selecting appropriate technology, organisations need to be clear about the requirements they have of the technology. Chakray works with a number of technologies in this space and technology selection is based on what our customer’s DevOps goals are.
The need for DevOps capability is driven by a justifiable breakpoint of the volume of activities to be automated. It can obviously be employed in any automatable scenario. However, there’s an overhead in terms of adopting DevOps practices and organisations need to be able to realise the value. That’s not to say that small teams should be put off. However, small teams or infrastructures may find that the effort required to establish the DevOps capability cancels out a lot of the benefits.
It can also be worth questioning whether Serverless or Function as a Service (FaaS) solutions can deliver on the overall business need/goal of any initiatives. Even if a DevOps practice is required for some areas of the business, it may not be the best solution for all in terms of cost vs value. As Serverless and “as a service” offerings grow in capability, they may be a better fit in certain circumstances such as applications with short use-cycles or lifespans.
The best fit for DevOps is in organisations that can adopt the practices and furnish the roles associated with it. Alternatively, it can also be advantageous for organisations to lean on specialists like Chakray to provide the capability for them.
You May Be Interested In…
Further information and reading on subjects related to this page.