DevOps has been an industry buzz-word for a while now and has left many people confused about its meaning and worth.
- Is it only about Development and Operations?
- Is it a thought process, a rule-set, a mind-set or a mix of all?
- What will be gained by adopting DevOps?
- What do I need to know and do to reap its many benefits?
- From where do I start? How?
- Who can help?
At Arrk Solutions, DevOps is about bringing teams together to deliver software solutions and the associated support services more efficiently and effectively than ever before.
This quick introduction about DevOps will illustrate six common frustrations that users typically face and how adopting a different mind-set and new choices makes a big difference.
1: Being proactive
Let’s begin. Are there problems you face that make you feel like banging your head against a wall over and over again? Perhaps a service is not available every Monday morning after the weekend maintenance. You’ll agree it’s a waste of your time and money because you’re paying through your nose to fix the same issue.
Let’s look at the DevOps solution.
The team members need to be proactive, going one step further, looking for improvements and more effective working practices.
- Automate as much as possible
- Focus on quality outcomes
- Use feedback mechanisms and
- Keep optimising the processes
Being proactive will improve productivity and prevent repeat failures.
2: working together
Our next story is about the perils of not working together. How many times have you struggled to get an application to work when you need it the most? Your frustration knows no limits when the support person is surprised about the problem you face and even worse has no idea how to resolve it.
Perhaps a new release was deployed, but the support person was not included as part of solution delivery. It could be a simple common-sense change, but unfortunately they did take not any input from the Operations team. It makes sense to involve the support members upfront because these are the people who are in close contact with the end users of the systems.
Working in separate teams has obvious disadvantages. DevOps can help. With the introduction of DevOps the barriers get broken and Development and Operations team work together.
Working together means:
- Having common goals
- Better overall planning
- Early involvement of operations
- Collaborating to resolve each other’s problems
- Even simple things like going for lunch together
3: Automated testing
Next is something we’ve all heard many times. Have you ever asked for a simple change, only to be told it would take much, much longer than you thought, because of testing?
Oh, you were told that test cases need to be executed across a number of browsers and devices. And that skilled people need to check impact and so on.
But of course your customer is not having the same thoughts as you are and is becoming increasingly frustrated. He is thinking about:
- the cost to make this small change
- the time he needs to wait
- and he is going to be very annoyed, it is simply changing some text on the page after all!
The answer of course is automated testing, the DevOps solution.
Automated testing has many advantages:
- Time saving of course
- Speed. The scripts can be run in hours rather than days
- Repeatability. The scripts can be as often as you like without human intervention
- Reliability. A human can make mistakes, not a computer.
- This frees up the testers to do smart and intuitive testing.
4: Cross training
Our fourth scenario describes the typical holiday cover crisis which affects us all.
- In an environment where developers all work independently, they become stressed when suddenly asked to interpret each other’s work.
- The customer continues to expect the same level of service.
- But we all need a break from time to time. Time to recuperate. When we do, we don’t want to receive phone calls for help while we’re relaxing on the beach.
The DevOps solution prepares the team to deliver at all times.
The team arranges knowledge sharing sessions to prepare for any eventuality. Documentation is a necessity, but rather than unmanageable Word documents, we suggest you use a Wiki or a team collaboration tool, for the team to share and access information.
Even getting the developers to work on each other’s core skill areas boosts the cross training within the team and the teams readiness for unexpected absences. When the team is trained, developers can enjoy relaxing holidays since the problems at work will be taken care of by their team-mates.
In short work together, learn from each other sharing your knowledge and experiences.
5: Continuous integration
The next topic is about continuous integration. The customer asks for a minor change and therefore expects to be delivered very soon.
In the software house, the development team evaluate and plan this piece of work. They consider introducing a code branch, the associate merging, integration and debugging, unit testing, system testing and packaging for deployment. Expectedly the estimate is much higher than what the customer thinks and so tensions are bound to rise.
The evolution of applications demands that changes should be efficiently dealt with and delivered quickly. We cannot spend days or week delivering something when the customer wants it yesterday.
The DevOps solution is continuous integration. The developers working in continuous integration mode, integrate their changes into a shared repository several times a day and the automated build verifies each check-in, allowing the team to detect and fix the problems early. Since problems are nipped in the bud, more time can be spent building features.
With continuous integration, the development process is more visible and effective and the integration tension is reduced with the result that , the solutions can be delivered faster to the customer.
6: Monitoring tools
Our final story is about monitoring. Service availability is critical for most modern businesses:
- We’ve all experienced websites that are unavailable, perhaps with a generic message saying “maintenance in progress”.
- But we wonder if the support team really know about the problem.
- When the site goes down, the support person must know instantaneously so that the site can be brought up and we can get on with our work.
The DevOps solution for this is simple. We need to use monitoring tools. Today, Tools can monitor infrastructure and applications in terms of performance, deployment, code changes, log-changes and so on. The moment an issue is found, an alert is sent to the support team. This allows rapid turnaround of problems before too many users are affected. It is important from a DevOps philosophy perspective to learn and adapt based on failures by adding additional checks to the monitoring tools.
Monitoring tools ensure we maintain the highest possible application uptime.
Thank you for watching our introduction to DevOps. DevOps is a new-age philosophy about breaking barriers, sharing and continually improving. It is about transformation, about building quality in, improving productivity and about automation. DevOps is not something one can implement overnight. To implement it, focus areas need to be identified and DevOps principles applied in a systematic and controlled manner.
We hope this short presentation has triggered an impulse or an idea or two, something to get you on the DevOps path. We hope you will go through positive DevOps experiences that we have thrived on at Arrk Group, and it leads you to become an even more successful solution provider. Happy DevOps-ing.