If you see "DevOps" in our application name, that means we have to explain that term properly.
That first article in our blog providing you our vision of DevOps and principles we're following when bringing it to you.
If you'll check Wikipedia article about DevOps, you'll see in one of the first sentances:
Most often, DevOps is characterized by key principles: shared ownership, workflow automation, and rapid feedback.
And also, you've probably already heard "mantra":
DevOps is not a role.
So, what DevOps is?
DevOps - is a service of development and adoption of tooling, which helps business to maintain software products on all stages of SDLC in a self-service manner.
Sounds not much simpler, right? Lets explain each word here.
DevOps? Why not DevSecOps?
The thing is, that initially the DevOps term has appeared in 2011-2013, as a result of Cloud Computing praticies adoption, business found that System Administrators (Operations) not very linked with business needs or even development teams, so it was popular idea to "remove the silo" between Developer and Operations, so term DevOps appeared.
After series of large personal data leaks, business realized, that they have to spent more resources on security hardening, as a result DevOps turned into DevSecOps...
Last few years new areas appearing, where "Ops" should be connected with something: DataOps, FinOps etc...
Now term "DevOps" living it's own life and have pretty different meaning, than 10 years ago. So you have a choise, call it "DevSecDataFinWhateverOps" or "Muffin", or just "DevOps", with simple idea behind it.
Why you're saying nothing about automation, CI/CD etc?
Pretty often, when people trying to define what DevOps is, they falling into 'enumeration explanation': "you should do CI/CD, configuration management, use Cloud Copmuting, Ifrastructure as a Code, endless-list-here".
As a result we have a mess in DevOps term definition... Not all projects need Cloud Computing (hello mainframes), when you're saying "CD" you mean Continuous Delivery or Deployment (?), not all projects need infrastructure (hello Kubernetes ) and so on.
When you're saying that DevOps decreasing complexity for end users and doing it in a self-service manner, it means that you may use different tools, practices ans so on to achieve it and ofc its not possible without various kinds of automation.
If DevOps is a service, does it mean SRE`s has clients?
Yes. SRE`s are providing service, clients for SRE team is entire company or software product team, which maintaining application. Or any other person who want to do Ops-related tasks, without knowledge in various "-Ops" areas.
It doesn't matter if its technical specialist or not. DevOps idea is - build simple tools for everyone and gave them self-service interface.
What does "tooling" mean, do you have an example?
Tooling its set of simple user interfaces, which helps people to make complicated things related to SDLC, without deep knowledge in SRE practicies.
Usually there are two levels of tools: first one is company wide tools, second is an application specific tools.
For company wide DevOps tools clients are developers and SRE`s all across the company, for example: logging ecosystem - Splunk, app monitoring tools - AppDynamics, company wide CI/CD libraries, Infrastructure as a Code libraries etc.
For application specific tools best example probably will be properly configured CI/CD pipelines, which helps developer in slef-service manner (without SRE`s interraction) deliver his changes from his local to dev, staging and prod or any other environment.
Another examples: application data dashboard in Splunk, app monitoring dashboard in AppDynamics, pipeline for new environment deployment etc.
What does "adoption" mean?
Usually we have company-wide DevOps tools which requires adoption on an application team level, for example we have Splunk for the application logs search or AppDynamics for apps monitoring and troubleshooting, but not all applications/teams using it, such tools have to be adopted first, teams trained to use them.
That process is not simple and varies from one application to another, so requires propper planning, implementation and support, which also includes KT sessions for development teams.
What does "self-service" means here?
Self-service means, that tools are so simple, that person with minimal technical knowledge or even without it, can do complicated things, like deployment on new dev environments, infrastructure scaling, running automation tests etc.
Why it's important: first of all DevOps simplifies life for everyone: developers can concentrate on business needs and SRE's can work on long term tasks - infrastructure improvement, pipelines tuning and many other things, which frankly not directly linked to business.
Comments