These days organizations are grabbing headlines about how fast they are evolving their businesses for radically changing customer behavior. Most of the times this evolution is software-driven. This draws the immediate attention even from businesses where core business is not software-driven to change their approach towards software deliveries.
While this gave front seat to engineering teams, and they are visualized as innovation squads, they are still responsible for application deliveries. Delivering both (Innovation and Applications) with old ways didn’t work. With this, the first to fail was the traditional “waterfall” approach where planning, analysis, designing, development, testing and deployment follow sequential steps.
As a result, they embraced the new age practices like SCRUM, Agile, SAFe, CI/CD for better software deliveries. Still there were unidentified silos, things are breaking in production, ops lack the vision of development timelines, etc because of various issues.
Organizations are now quality obsessed, and they want to think ahead of consumer. This gave the realization that despite of Agile or other development practices, there are silos in how different teams are working (Development, Operations, Infrastructure etc.).
This introduced the concept of DevOps which talks about functioning in a highly collaborative manner to avoid any communication barriers and ability to move fast without breaking things.
Development practices without Automation
DevOps as much as it gives the speed to engineering teams, the pressure to match the speed was enormous and this led to human error that costs companies millions of dollars. Few classic cautionary tales subjected to human errors are –
Automation is not a silver bullet
Automation is not a silver bullet to solve all your business problems. There are some aspects of business that cannot be automated such as People, Culture and Leadership style.
Automation can never substitute for the creative mindset that teams bring to solve business problems.
So what can be automated in DevOps?
- Your Builds
- Your Tests
- Your Infrastructure
- Your Reports and Alerting
- Your Security and Compliance
Whatever is not creative enough for your team’s attention!
AWS S3 Outage, Feb 28th, 2017: An authorized team member executed one command wrongly and removed a large set of servers than intended.
Knight Capital Group’s glitch worth $440 million: One technician forgot to copy the new code of Retail Liquidity Program and the whole incident happened. This is because of the manual deployment process.
While these human errors cost millions of dollars to organizations, they are invaluable lessons to others on the path of embracing software as business enablers. These infamous incidents of human error in updating servers or maintaining them, create a need of automating manual processes that require none of human creativity to accelerate engineering lifecycle.
How Automation entered DevOps practices
Can DevOps function without Automation? Yes!
Does DevOps function with the fullest efficiency without automation? Pretty much, No!
DevOps has evolved into successful and widely adopted development approach, so just practicing it will not give companies the true benefits of DevOps. True DevOps is not possible without automating manual tasks. Organizations are holding vis-à-vis generating lots of data enough to put manual and redundant tasks under automation. Automation gives the speed and feedback to resolve issues early in the software development lifecycle.
Code check-in, Test, Deploy, Repeat
With the convergence of multiple systems, IT services and multiple applications talking to each other, identify and automating processes can be tricky. Qentelli approaches DevOps automation with the focus on the areas of Planning, Development and Testing, Build and Deploy and Information & Reporting. With each of these areas, organizations need to optimize people, process and technology to achieve complete DevOps automation. Our automation approach upgrades day-to-day business operations in terms of speed and feedback.
Developers are checking in their code several times a day in the central repository (Git, SVN etc). These builds should go through the required tests with the defined acceptance criteria. Further to this, builds should go through the automated unit and functional tests to move further in the pipeline. Several organizations are running manual tests on newly added builds decelerating the pipeline. The first step towards DevOps maturity model is having automated code check-in and build with automated test suite kicking off as soon as developers check in new code. Automate your CI process with quality check gates based on the results expected. If they perform as expected they move forward, or developers receive notifications about the broken build.
Automated deployment to non-production environments require self-service infrastructure and automation of tests completely. While deploying in live is still practiced by a smaller number of organizations, it is achievable. Environment Management is the key element for automated deployment. The idea is not just to automate build and test, but also the underlying application environment with required configuration and dependencies.
Enabling automation configures feedback at the different stages in the engineering lifecycle to support various stakeholders. Integrating automation tools with the real-time dashboard can give teams real-time feedback on Engineering lifecycle. This reduces the resolution time of issues and businesses can deliver seamless experience to customers.Looking ahead
Automation is the way towards success in DevOps model. DevOps automation has many moving parts for organizations to consider. To the core of DevOps automation lies automated provisioning, testing, build and deployment. Parallel to this, DevOps teams need to maintain continuous feedback with insights and action items moving back and forth continuously. While organizations have already achieved a basic level of automation in the business processes, extreme automation is the new target. Extreme automation in development lifecycle ensures the seamless communication between all the phases of development lifecycle.
We believe the future of automation is Extreme automation ensures that all the processes are being tracked into a single window collecting constant stream of data from connected development and operation systems to adapt development strategies to customer expectations.
Qentelli has partnered with clients to help them with their DevOps implementation and automation initiatives. Our team of experts carry out an extensive assessment to understand the current state and provide expertise in areas where improvements can be made. This assessment also involves areas of recommendation where automation can help. Get in touch with us today at email@example.com for assessment of your DevOps initiatives.