Bosonit TechXperience | "Approach to DevOps&Cloud" by Santiago Murcia
In our third TechXperience session, Santiago MurciaHead of Cloud&DevOpstook the reins of the presentation and made an approach to the concept of the DevOps methodology and the Cloud. A talk full of knowledge and experience that today we bring you the most interesting points and aspects.
Who is Santiago Murcia?
But before getting down to business, if you still you don't know SantiagoWe would like to give you a brief introduction to him. Santi is a physicist converted to a computer scientist almost from the beginning of his career many years ago. As a professional experience he has been working for many years and started developing. His first project was the development of an interface in CajaDuero with a language that, surely you are not familiar with, was called NSDK, a French language based on Visual Basic.
Then he spent about two years living in Africa, first in Ethiopia and then in Libya. What he did was the design and development of a mobile application for the collection of data from an electricity company, a meter reading that today in Europe is automated, but in Africa, today, is still done manually.
From there, he moved on to Indizen, which is now Nfq Solutions, where he was involved in a project such as the redesign and implementation of the AIRE architecture. He continued working on this line of Solutions' own tools, but given that he had more projects, more tools, more clients to attend to... With his team, he decided to turn the Clouc&DevOps area around to start managing the entire volume of machines in the cloud, which is where the germ of this area came from.
Now in Bosonit, at the group level, he is trying to standardise all this a little more and to be able to take advantage of it for all the projects that are in Bosonit, which he is aware that there are many.
What is DevOps?
It is a combination of the terms "Develop" and "Operations" in which we try to make a confluence of both multidisciplinary teams to optimise tasks and times that end up being carried out in the field of automation, but it is not only automation. In the end, it is a work philosophy that aims at the quality of solutions and efficiency in these development processes.
What does it consist of? It is about making an application work properly and how we are going to evolve that application. This can be seen along three very clear lines:
- The tests that need to be done on a code when we are developing.
- How are we going to control these versions that we are having, the different branches that we are generating.
- How we are going to do the promotion between the different environments when uploading this to a client.
A further point that could be added is the monitoring of these environments. So when do we talk about DevOps? When we talk about trying to manage these three fields in a unified department.
These three lines can be defined as:
- The evidenceWe define the cases, identify the inputs, the outputs, execute them and compare them.
- Version control: follow a methodology, nowadays we use GitFlow. We have a master branch that is not worked on, we open a Develop branch to make the necessary changes and another branch for each functionality that is going to be created.
- Promotion of environments: the developer works in his team and when he generates a commit, it is uploaded to the repository after passing a series of tests. From there it is uploaded to a test environment where the code is deployed and we install everything that is necessary. From the creation of the database, to putting in the static tables... we do an integrated test to check that the uploaded piece of code does not break the rest within a pipeline that will generate alerts.
If these tests go well, it is uploaded to a pre-production environment, where it is passed on to the client to do their user testing. If it goes badly, you go back to the initial step and continue development. If it goes well, the changes are deployed to the production environment.
What DevOps is all about is that these tasks, these tests, version control and promotion between environments are managed by one team and that they have a series of tasks that are as automated as possible so that they don't generate a lot more work.
What is the Cloud?
Today we are all familiar with it. Despite this, let's take a closer look at what it is. Cloud computing is the availability of computing resources, especially storage and computing capacity, where we do not have to do any management. This is taken care of by the provider. It relies on infrastructures with virtualisation, a high degree of automation and a high capacity to meet variable demands.
In other words, forget about having machines in your DPC and have everything downloaded to the cloud. This was more complex a few years ago, especially because of the type of clients, because of the regulatory requirements they have in terms of where their data is, where to leave their information, etc.
Want to know more about it? Here is the full session.