1.The team
The team consists of 14 DBA (Data Base Administrators ). Eleven based in our Paris office and the remaining three 3 in Palo Alto and share the same tools and platform. Both teams have bi-weekly meetings to synch up on both current and future tasks and actions. With the teams in a completely different time zone, one would be concerned about time constraints, however both teams are autonomous enough on their projects to avoid blockage on projects due to time factor.
2. Mission
The DBA’s main drive is to successfully work with several teams in the R&D such as Engine and Platform (Machine Learning & Software Engineering), SRE (Site Reliability Engineering) and Infrastructure (Hosting, Network) on projects in order to achieve the global R&D’s objectives .
Database service provider
This consist primarily of configuration of data structures (for banners, advertising campaigns) that is constantly changing and requires high reactivity. They must be available in all of our datacenters around the world, 24/24 in real time (250 servers for 4000 DB). These databases are critical for Criteo’s business.
In parallel, the DBA’s are in charge of providing the platform and services that are used by our software engineers to build Criteo’s product and projects. These services have to be user friendly as much as possible. The platform has to be resilient, backed-up and secure to minimize the risk of data loss and downtime. Each piece of code is validated before going in run in order to avoid potential risks impacts and to maximize performance.
Automation
A large aspect of the work of a DBD in Criteo consists of automating recurring tasks (to save time and reduce human errors) in order to focus on higher value-added tasks. With the final goal being to have a self-managed platform.
Consulting/Coaching:
In addition to their tasks, the DBA’s work with the various R&D teams in providing guidance on best practices and tools
3.Methods and specificities
First and foremost, DBA’s are truly R&D engineers who venture into new technical environments and have to find solutions that are often inexistent.
Generally, DBA’s are database experts with a strong knowledge in programming or in system administration, whereas in Criteo they master all of the three parts . As a matter of fact, each DBA is capable of coding to propose evolution on the hardware or software architecture. These skills gives them the ability to do “Voyagers” (our solution to internal mobility and technical curiosity) in other R&D teams easily.
The DBA team operates in an agile mode and respect the whole Scrum Methodology (daily stand-up, sprints, post-mortem…). It evolves by applying the principles of the software world to relational databases.
All changes whether database or infrastructure are validated on our continuous integration platform. All changes are archived in Git. Jenkins and Chef validate server configuration changes. SQL Server Data Tool is used with Jenkins in validating database deployments.
The DBAs practice the Infrastructure As Code (IAC), in order to code the infrastructure and make it reproducible, and carry out their unit tests.All changes whether database or infrastructure are validated on our continuous integration platform. All changes are archived in Git. Jenkins and Chef validate server configuration changes. SQL Server data tool and used with Jenkins for validating database deployments.
Technologies
The DBA’s use a range of technologies such as SQL Server 2014. This is currently used for all the applicative data in the Criteo code. Maria DB is used for every open source project (Hadoop, monitoring Graphana/Graphite, alerting Prometheus, Logging Kibana…).
In addition to the above technologies, Powershell is the most used scripting language, but the DBA’s also often practice Go, Ruby or .net Core.
2018 roadmap
Some of the the numerous projects to come include the following:
- Migrate to SQL Server 2017, Windows 2016 and Maria DB 10
- Recover and optimize a Galera Cluster
- Continue the platform automation
- Go further in the replication resilience and reliability
- Define availability SLA for relational databases
- Integrate some DB currently under AWS in our physical infrastructure in order to increase control, quality, latency and cut costs.
To explore more about our engineering culture and daily life, please go here. If you’re motivated enough to join our ever evolving team, check out our jobs now.
Post written by:
Vincent Landrieux
Staffing Manager, R&D
Twitter: Vince92100
-
Our lovely Community Manager / Event Manager is updating you about what's happening at Criteo Labs.
See DevOps Engineer roles