DevOps is all about teamwork
DevOps is a model of work towards which more and more of those companies that care about efficient and effective software development are looking. We can say that currently it’s 'to be or not to be’ for any organization that bases its work on modern technologies. In practice, DevOps means combining the software development team (Dev) with the operations team (Ops) and implementing tools to automate the work of both these teams. So we see that the implementation of this approach in a company must take place on two levels – technological and organizational. The latter requires an understanding of how crucial teamwork, close cooperation and clear, open communication are in day-to-day work.
Can the DevOps model be used by any working company dealing with modern technologies?
Definitely yes. The reason is the universality of this methodology. DevOps supports both the production of microservices software, so that software components can be delivered faster and LP-Internal more independently of each other, as well as monolithic software, which goes immediately into the production environment in its entirety.
In addition, DevOps offers a very broad spectrum of technologies, including systems that manage version control, i.e. Git, systems that automate processes (Jenkins), or finally – systems that containerize and manage applications, i.e. Docker and Kubernetes. In the DevOps approach, we also have the industry’s much-hyped Continuous Integration and Continuous Delivery. This means that regardless of the time of delivery, the entire development process is predictable and divided into the same sprints, concerning, for example, testing the code, implementing changes, monitoring the code, or finally – releasing it into a test environment that verifies its integrity. After finalizing all these stages, we summarize our work, so the system can learn from our mistakes. This makes the next process run more efficiently in the future.
What does a company gain from implementing DevOps?
By combining the two areas mentioned earlier, development and operations, a company can deliver software more effectively and efficiently, thus optimizing costs, and is able to react quickly to changes in the market. An example is one of my team’s large projects, which until recently could have taken us about 1.5 years to complete, but thanks to the DevOps approach we closed it in just 6 months. It’s all thanks to automation and the ability to integrate teams that used to be independent of each other, and unfortunately this sometimes hindered the ability to come to an agreement and work out a solution. For us, DevOps developers, it allows us to be fully involved in the process from start to finish, so we can better see the purpose of our work and how it helps the company. This positively impacts engagement and overall job satisfaction.
How do you use this type of methodology at PAYBACK?
One of the best examples, due to its scale, was the migration of PAYBACK’s monolithic Big Data application to a microservices application. By using the DevOps approach, we gained incomparably greater flexibility in working with our code, as we observed the various stages of the process in real time. Each change could be released to the production environment in parallel, which significantly shortened the entire migration process. In addition, the project involved the containerization of our application, and this meant better team utilization – we could move our code quickly and efficiently to any platform, regardless of its requirements, and my team, being the owner of the code, was able to manage it better. In the process, we used technologies such as Git, Jenkins, Kubernetes, Docker, Python, Airflow, Icinga, Maven and Puppet. This project without a doubt showed all the advantages of DevOps, not only from the point of view of PAYBACK’s business, but also from the team’s comfort level. Thanks to the use of this type of methodology, our entire team was involved in the project, and the overall feedback was that DevOps offers great learning opportunities. This benefits other PAYBACK departments, including our analysts, who, thanks to this approach, receive even better support from us, can process data better and offer added value to PAYBACK partners. This is a competitive advantage for our company in the market.
This means that DevOps helps manage data more efficiently?
Yes, and this is crucial in an organization like PAYBACK, which works with data on millions of consumers. The Program’s user base in Poland and Germany alone is close to 30 million people. Such a collection of data, combined with PAYBACK’s infrastructure, makes us deal with a so-called data lake, while many companies still operate on a so-called data warehouse. Data lake makes data, although less structured, „flow” faster and better between departments. This is due to the DevOps LP-Internal approach. As a result, our analytics team is able to operate more seamlessly and gets insights into deeper analysis of consumer shopping behavior and preferences. As a result, PAYBACK better supports partners, and users have access to real-time offers and campaigns that hit the point of their needs.
If you were to briefly describe the ideal candidate for your Data Warehouse Engineering team…
Leaving aside the technological competence, without a doubt, it must be an open-minded and team-oriented person, because the so-called team work is the basis of work not only in the DevOps methodology, but also in the entire PAYBACK organization. It gives us all the more satisfaction that we are part of an international environment on a daily basis, which greatly diversifies the work and gives a lot of room for development, including personal development.
– Mariusz Wieczorek, Software Engineer (DWH/BIGDATA)