What I can bring to your organization
I am an experienced DevOps engineer who has worked in a multitude of contexts, for large international companies as well as small and medium-sized enterprises.
Depending on your needs and the nature of your organization, I can help you in a variety of ways.
Instill a collaborative culture
Even before tackling technical issues, the success of a DevOps mission depends on the establishment of constructive collaborations between the various stakeholders, aligned with the organization's needs.
Adapted solutions: every situation must be approached with pragmatism and an open mind. There is no such thing as a ready-made solution, but rather responses that are more or less adapted to a need that must be defined collectively, within the constraints specific to the organization.
Team buy-in: solutions need to be adopted by the various teams, who will benefit from them (devs: code easier to deploy / ops: fewer repetitive tasks) and not an additional burden. I also don't hesitate to plan training workshops if necessary.
Initiate continuous feedback loops: the impact of modifications can be immediately assessed. For example, developers receive real-time feedback on the performance and stability of their code in production. This enables rapid iterations and transparency on the modifications made, resulting in the delivery of higher quality software in shorter cycles.
Expertise in designing CI/CD solutions
The objectives of automating and increasing the reliability of integration/deployment processes call for the design of robust and creative CI/CD solutions.
Build automation: detect code delivery events (commit, merge, tag) to launch a build pipeline with Gitlab, possibly on several system architectures, to generate deliverables, produce release notes or other types of DocAsCode automatically...
Containerization: promote and integrate containerization with Docker into CI/CD processes, to deliver operational and immediately deployable software as independently of the platform as possible; also adapt to microservices architectures.
Standardized deployment: generate automated, managed deployments as code, notably with Ansible and Docker Compose. The risk of manual error is thus limited, configuration is archived and versioned for easy rollback, and updating is greatly facilitated.
Security testing: introduce cybersecurity requirements as early as the continuous integration phase, by configuring static analysis tools (SAST) like Sonarqube, and dynamic analysis tools (DAST) like Zaproxy to detect OWASP top 10 vulnerabilities.
Make the infrastructure secure and reliable
Whether in the cloud or on-premise, it is vital to define the application deployment architecture in advance, and to set up infrastructure monitoring.
Technical architecture: design an infrastructure adapted to your needs (CPU/RAM/storage, replication), scalable if necessary, and always placing security at the heart of your concerns (limit open ports, reverse proxy, mutual TLS, exposure to the web in DMZ, SSO authentication, ...).
Monitoring: rapidly deploy and configure monitoring solutions such as Grafana-Prometheus, and report on infrastructure capacity.
Problem analysis: be able to study both system metrics and application logs to produce analyses targeting the problems encountered (performance, etc.). Deploy solutions such as ELK to facilitate log reporting.
Web development and scripting
As a complement to my DevOps activity, I can help develop web applications (sites, APIs) and tools that provide fast, reliable solutions when off-the-shelf software doesn't meet the need.
End-to-end support: requirements gathering, implementation choices, data modeling and SQL querying, development, CI/CD processes, support.
Team tools: expertise in scripting (shell, Powershell, perl, python, Go) to meet various needs (data retrieval and storage, task automation), scheduling if necessary (systemd, Control-M).
Web interfaces/APIs: specialization in UI/API development in various languages (Go, PHP, JS), web server configuration and networking skills, implementation of authentication processes (SSO, Kerberos, Active Directory group rights management).
My skills
DevOps tools: Gitlab, Docker (++++), Ansible, Docker Compose (+++), Nexus, Jenkins, Puppet (+), Kubernetes, Terraform (in progress)
Development and scripting: shell (++++), Go (+++), PHP, javascript, Powershell, Python (++), Perl, Ruby (+) / Git (+++)
Monitoring: Grafana (++), Zabbix (+)
Cybersecurity: SAST with Sonarqube(++), Codeclimate (+); DAST with Zaproxy (++). SSL, certificates, reverse proxy, mutual TLS (+++).
Virtualization/Cloud: Microsoft Hyper-V (+), AWS (in progress)
Databases: PostgreSQL (+++), SQLite (++), MSSQL, Oracle, Sybase (+)
Web servers: Nginx (+++), Apache, Traefik, IIS (+)
Authentication: AD, LDAP, SSO, Kerberos (++)
Scheduling: Control-M, HPOO, systemd (+)
My experience
Here are just a few examples of the issues I've dealt with, and the objectives they have helped to achieve.
Capacity planning for Crédit Agricole CIB's private cloud infrastructure
Implementation of a private IaaS cloud platform with several service offerings (Windows VM, Linux, SQL Server DB, etc.) and migration of the historical virtualized infrastructure.
Gather capacity data (CPU, RAM, storage, network) for the private cloud infrastructure, to render the status of each service offering.
Contact with numerous teams to import data (SCVMM for Hyper-V clusters, datacenters, networks) via scripts (shell, Perl, Powershell), Control-M scheduling, PostgreSQL DB modeling. Development of a web interface with charts (PHP, chartjs), aggregating retrieved data by cluster and service offering. Automated reporting with HTML/CSS e-mail to CACIB/CAGIP IT Department.
Coverage of all the infrastructure's cloud services (over 5000 VMs). Increased infrastructure availability thanks to information transmitted to order servers on time, organize sub-networks...
Migration of all Ekinops company projects to Git/Gitlab
Group-wide standardization of SCM and build processes to improve delivery quality and frequency. Save time building artifacts.
Migrate projects from Mercurial to Git/Gitlab and improve the build process launched manually on Jenkins. Ensure that teams assimilate the use of the new tools.
Migration script of 800+ projects from Mercurial to Git, and creation in Gitlab. Definition and implementation of the Git/Gitlab CI/CD cycle (merge fast-forward). Build launched automatically on Gitlab with Docker images generated for each system architecture, with parallelization (child pipelines) to boost performance. Team training sessions on Git/Gitlab.
Decommissioning of previous SCM and team training completed in 3 months. Parallelization of builds: 2 to 3 times less time for compilation and artifact generation.
Automated setup of DevOps tools
Standardize tools used by certain dev teams (Sonarqube, Nexus), propose new ones (Grafana) to make them available to all and integrate them into CI/CD processes.
Install DevOps tools (Sonarqube, Nexus, Grafana) and ensure their technical integration with Gitlab so that they can be used directly by teams, as well as their ease of deployment.
Systematic use of Docker Compose to facilitate deployment and Nginx reverse proxy. Creation of an automated deployment process with Gitlab-Ansible-Docker Compose. Integratation of Sonarqube with Gitlab to automatically launch tests and display results on Gitlab (badges). Easy-to-integrate Gitlab CI templates into builds for dev teams.
Standardized and automated deployment of DevOps tools across multiple environments. General adoption of Sonarqube as a code analysis tool with no special effort on the part of development teams.