What is DevOps? what is so special about the term dev-ops? what are the problems it solves?
Development + operations? Developers will work together with operations or infra guys? If yes, then that’s what we have been doing for long time in the software world? isn’t it?
DevOps is all about people, process and tools work together seamlessly to increase productivity and make the business more profitable.
Let us look into some explanations.
It’s a misconception that Dev-ops is coming from the development side of the house to wipe out operations. No it is not.
Teams become more and more agility as the business becomes more fast paced, we’ve often been providing less as we try to solve our problems with more rigidity, and we need a fundamental reorientation/revamp to be able to provide systems infrastructure in an effective manner.
Dev-ops is a collaborative approach.
Some key principles of this philosophy:
* Continuous improvement
* Continuous testing
Some parts of operations need to be automated . Either Operations will do some automation development or developers will write ‘operations’ code or both.
It’s Not (Just) Tools or processes
I see an anti pattern that, dev-ops is all about implementing set of processes or tools.
There is no single path to dev-ops, it is just what works for you in your team or organization. It is totally up to your context, the place where you develop or do something with a software or a product.
A Definition of DevOps
DevOps is fundamentally a mindset and cultural shift in an organization
DevOps is very much about bridging traditionally separate development and operations departments, but this involves more than simply increasing collaboration between teams.
Also it’s not just about getting dev and ops teams to work more closely, it’s about creating an environment where developers and engineers work alongside each other at every stage of a product’s life cycle. In other words, there should be no separation between dev and ops, just a unified DevOps team.
Have brainstorming sessions with different teams, developers, operations , product owners and management. Identify a good process which is suitable for your product or organization.
When put into practice, DevOps is supposed to be faster, more efficient and more reliable than more traditional software engineering methodologies — once the organizational structure is in place, these benefits can be achieved via innovative DevOps processes.
For example, In a DevOps process, not only are developers and infrastructure engineers working alongside each other in the same team, they’re also implementing processes through infrastructure as code (IAC).
There’s no such thing as a “DevOps tool,” just tools that can be used within a DevOps organization for DevOps processes. It’s how you use them that really counts. Technology, and the benefits it brings in terms of automation and management, is a key driver of DevOps.
Cloud computing and virtualization, and the infrastructure as a service (IaaS) in particular, provides the flexibility and speed demanded by DevOps.
Docker, Kubernetes, GitHub, Jenkins, Travis CI … the list goes on. But you have to choose which tools fits for your needs. Don’t choose/introduce new tools only because you know or it is famous.
For example, Maven or gradle with Jenkins will be sufficient to achieve what is expected as a team. In this case only gradle and Jenkins made a tools part of DevOps.
* Faster time to market
* Higher ROI
* Greater user/customer satisfaction
* Increased efficiency
* Improved collaboration
* Early detection and correction of issues
DevOps isn’t simply to unify development and operations. The ultimate aim is to result in:
Goal of DevOps isn’t just to say, “We do DevOps,” DevOps is all about people, process and tools work together seamlessly to increase productivity and make the business more profitable.
You can check this post on Spring boot admin. Spring boot admin can be used to do simple monitoring of spring boot applications.