This is a post about me giving you an introduction to DevOps, but for this I had to learn myself what DevOps mean. First I would like to say what I think of DevOps before I read anything, only pure experience and casual discussions about this with colleagues and friends.
DevOps sounds like development operations, which is operaciones de desarrollo in Spanish (it’s easier for me if I translate first). With this in mind, I would say that a devOps developer would be in charge of creating a flow system for all the tools and stuff the system could need, this is from servers to deployment but nothing to do in the code of the project in particular. I mean, he or she will establish the environment for the -for example- a web developer may be able to work and deploy all changes he or she make. Something like that.
Okay, now the definition I found on the post my professor recommended us (What is DevOps?) says a lot, a lot of DevOps and finding a single definition is so hard that I just kept the one the author gives first:
DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.
So I am right in one thing, DevOps involves all the process, actually is kinda a process by what I understood, also it talks more about the environment where the project will be developed and not the system itself. Also, there were given other points I think are useful to «fully» understand what this methodology is.
- Infrastructure Automation – create your systems, OS configs, and app deployments as code.
- Continuous Delivery – build, test, deploy your apps in a fast and automated manner.
- Site Reliability Engineering – operate your systems; monitoring and orchestration, sure, but also designing for operability in the first place.
In these points are mentioned parts of the process involved in a DevOps development. The last one Site Reliability Engineering is more complex to me to explain so, I found a better definition for that. According to wikipedia, «Site Reliability Engineering (SRE) is a discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems. The main goals are to create ultra-scalable and highly reliable software systems». According to Ben Treynor, founder of Google‘s Site Reliability Team, SRE is «what happens when a software engineer is tasked with what used to be called operations.»
Sure DevOps may be something like I said at the beginning but it also not, I mean, the term is so much more complex than that and, honestly, impossible for me right now to make it clear to you (it is still not 100% clear to me). But this research surely makes it more clear to me than before and now I know this is something I can add to my projects and it is not hard.
So, that’s what I’m keeping in terms of DevOps knowledge, I hope this is useful for you.