|
|
Masters equivalent degree in Computer Science, Facultad de Matemática, Astronomía y Física, Universidad Nacional de Córdoba. Capstone Project: «Trieste: A distributed filesystem».
Abstract:
Most network installations use centralized network filesystems, and some even use peer-to-peer ones. Centralized filesystems don't use the resources in the client machines, and peer-to-peer ones are not transparent enough and are not easy to administrate. We designed and implemented a fault-tolerant, easy to administrate distributed filesystem, which can add storage space easily. Trieste showed to be greatly scalable, using disk bandwidth and space of each added computer. Its features makes it suitable for clusters.
Since Sep 2023 - Oodrive Sign
This post has several facets:
- SRE: I'm in charge of configuring monitoring and alerting. We use Grafana and Prometheus and CloudWatch on AWS. Incident response, writing postmortems. I'm automating the deployment of our systems with Ansible. I sometimes help debugging issues with clients.
- Security: Incident response, securing perimeters with firewalls and allow lists, secrets handling, CVE response.
- Systems Architecture: I define new deployment schemes so they can be more production ready for systems that are developed in tightly coupled Docker containers.
- DevOps: I manage a GitLab instance; a Portainer + Docker instance to provide development and testing environments; and a Jenkins instance for our CI.
- IT: I sometimes work on the local network; be the remote hands for the IT department in Paris, including moving all development machines to new offices; and provide first level support to employees in our offices in Marseille.
I am on a team of one, but I have collaborated tightly with others through a couple of projects, like reducing expenses in our AWS deployment, which mostly involved with shrinking databases by migrating them to new instances.
I had an apprentice for 3 months.
- Public cloud: AWS (EC2, VPC, IAM, RDS, MDS, HSM and more), OutScale, OVH
- IaC: Ansible
- Monitoring: Prometheus, Grafana
- Containers: Docker, Docker Compose, Portainer
- Databases: AWS RDS and MDS, PostgreSQL clusters.
- Services: Java and NodeJS services, stand alone or containerized.
- Languages: Python, Bash
- SSL Certificates and digital signature.
May 2018-May 2023 - Cloudian Inc.
Professional Services. Coordination with Solution Engineers, product installation in Clients' infrastructure, post install services; all this for about one year.
At one point we had to manage the upgrade of CentOS 6 to 7 for all our clients, which included both extending the only unofficial tool and developing our own wrapper around it, handling details like UEFI; and doing the upgrades ourselves.
I then became a developer. My tasks were mostly around the Installer, developed in Bash and Puppet, but we were migrating to a mostly complete Salt setup.
I also developed our SSL Certificate management from scratch.
I also also the developer of a tool based on Python, Ansible and Terraform that allowed us to deploy any cluster architecture on several cloud systems, like EC2, LXD, Docker and Vagrant.
I also participated on the initial development of our Monitoring system based on Prometheus and Grafana.
Finally, I was also part of an informal security team that stays current on CVEs on the libraries and tools that we use and respond to Client queries around them.
- Languages: Python, Golang, Bash
- Services: Cassandra, Redis, RocksDB
- IaC: Puppet, Salt, Ansible; Terraform
- Monitoring: Prometheus, Grafana
- Other: SSL Certificates
October 2016-March 2018 - Travaux.com
DevOps and VoIP/IPBX administrator. I was automating internal procedures, which I export as a WebService so other systems can use them. This task includes interacting with several internal systems, like the database, mail and SSO servers, and the VoIP/IPBX system.
I also administered the VoIP/IPBX system, which serves 3 call centers with 250 agents in total. This is implemented with Asterisk. Currently I'm planning the migration to a new version, which includes creating a testing environment and testing the different use cases.
- Languages: Python/Django/DRF
- Services: Asterisk
- Configuration Management: Salt.
- System tools: Docker, LXC, Zabbix, Grafana
December 2012-September 2015 - Astek Sud-Est for Amadeus SAS (http://www.amadeus.com)
Developer for the R&D-SSP-TAE-TDS team. We developed several systems:
- An in memory Key-Value store.
- A manually sharded database with multi dimensional range search on top of it.
- A computation scheduling system that takes in account popularity and volatility of the data.
These systems handle flight data for different types of search queries.
I added a new backend to the KVS that used LMDB (http://symas.com/mdb/) for storing data on disk so we could handle terabytes of data, as a mitigating step while we prepared to migrate to MongoDB.
- Languages: C, C++, Python
- Development tools: Jenkins, Atlassian (git, jira)
- Databases: LevelDB, LMDB
- System tools: docker, chef
June 2011-November 2012 - Astek Sud-Est for Orange Portails (http://www.orange.com/)
System Administrator at the HEBEX Division, which is in charge of maintaining all the 3000+ servers split in 3 Data Centers used for developing, testing and hosting a lot of Orange's sites, including Orange and associated sites (Actu, Immobilier, Finances, Femme, École, Business, etc) and Voilà, among others.
My main work was around maintaining multi-site databases that host the data for all those web sites, using different technologies (PostgreSQL+Slony-I clusters, MySQL clusters, Cassandra clusters), and the WebServices developed in C++ and PHP, hosted in Apache servers, that are used to access those databases; installing new versions of production code; massively migrating the servers from several Debian releases to Ubuntu Lucid and Precise LTSs; and supervising the whole infrastructure in general, including the creation of new monitoring tests and graphs.
My last task was to research the possibility of using Cassandra as a database for the type of data we handled, including its behavior and recovering on different types of failures and its health monitoring.
- Languages: Bash, Perl, Java, PHP
- Platforms: Linux (Ubuntu, Debian)
- Databases: PostgreSQL+Slony-I+PGBouncer, MySQL cluster, Apache Cassandra
- Web Servers: Apache+mod_ndb, PHP and C++ webservices.
- Networking: GTM load balancers.
- Server Administration: CFEngine, XYMon, BigBrother.
- Other: redundant setups, multiple datacenters.
September, 2009-December, 2010 - INRIA Méditerranée (http://www-sop.inria.fr/)
Engineer expert for the Hop project (http://hop.inria.fr/). I'm porting both Bigloo, a Scheme compiler, and Hop to the Android platform. I'm also modifying Hop to run as a OSGI bundle and helped improving and expanding Hop's runtime library.
- Languages: Bash, C, Scheme, Java
- Platforms: Linux (Debian, Fedora), Android, OSGI
- Development: Mercurial, GCC
- Protocols: SOAP, STOMP, oBIX
- Other: XML, Phidgets, cross compiling
June, 2009-August, 2009 - Proteon (http://www.proteon.nl/)
System administrator assistant. I helped in the Hosting Division, planning and executing consolidation of servers using Xen and migrating them between data centers to reduce costs.
- Languages: Bash, Python, Perl
- Platforms: Linux (Debian, CentOS)
- Development: Subversion
- Networking: IPSec/OpenVPN, Nagios, Server installation and configuration.
- Other: Xen (machine virtualization), Server consolidation (via virtualization), Server manipulation in data centers.
April, 2007-December, 2008 - Soluciones Informáticas Libres S.A. (http://except.com.ar/)
System administrator. I maintained the network, run servers and workstations, installation and configuration of hardware. In several ocasions I managed routers, Xen servers, and install and configure software and other minor tasks for our clients abroad.
Developer. I wrote the backend of the Xarope project, a Xen based system for offering hosting for Zope/Plone sites. This project has been released under the GPL.
- Languages: Bash, Python, C
- Platforms: Linux (Debian, Ubuntu)
- Development: Subversion, Mercurial, GCC, Python
- Networking: SSH, Apache (web server/reverse proxy), Django sites, PostgreSQL, Squid, Zope/Plone, Router/Firewall (Coyote), VCS repositories, NFS, LDAP, Mail system (postfix, courier, spamassassin, squirrelmail, mailman), Printer server (CUPS), DHCP, Server and workstation installation and configuration, Network security, Server monitoring (munin, logwatch, rkhunter), Thin clients (XDMCP), offsite backup.
- Other: Xen, virtualenv (Python), Trac (ticket system), Debian packaging, backporting, remote client assistance, Linux kernel customization.
September, 2008-May, 2009 - IATE - Astronomic Observatory - UNC. (http://iate.oac.uncor.edu/)
System administrator. I maintained the network, run a small server/router/firewall and helped maintaining the workstations.
- Languages: Bash, Python
- Platforms: Linux (Debian, Ubuntu, CentOS, Fedora), Windows
- Development: «Python for scientists» (course lectured).
- Networking: SSH, Apache, Drupal, MySQL, Squid, Firewall (Shorewall), NFS, LDAP, Printer server (CUPS), DHCP, Server and workstation installation and configuration, Network security, Server monitoring (munin, logwatch, rkhunter), Multiple network providers balancing.
November, 2006-May, 2007 - Fundación Vía Libre (http://www.vialibre.org.ar/)
System administrator. I installed and maintained a Debian server with Apache and WordPress for news sites and MailMan for mailing lists.
- Languages: PHP, CSS
- Networking: SSH, Apache, WordPress, MySQL, mailman, Server installation and configuration.
January-July, 2006 - Departamento de Cómputos de la Facultad de Ciencias Químicas de la U.N.C.
System Administrator. I maintained the network and servers in the faculty. Network services included DNS, mail, spam and virus filtering, HTTP proxy and Web servers. One of the server connected to 4 balanced ADSL lines. Most servers were different Linux distributions.
- Languages: Bash
- Platforms: Linux (Debian, Ubuntu, Mandrake, Fedora), Windows
- Networking: SSH, Apache, Squid, Firewall (Shorewall), Server and workstation installation and configuration, Network security, Server monitoring (munin, logwatch), Multiple network providers balancing.
October, 2005-January, 2006
Freelance system administrator. I maintained Zope and Apache servers running under FreeBSD and Debian GNU/Linux.
- Platforms: Linux (Debian), FreeBSD
- Networking: SSH, Apache, Zope/Plone
- Others: virtualenv
March, 2002-June, 2003 and March-September, 2005 - Fundación Vía Libre
Python developer. I worked in a team of 3 python developers. We developed papo (http://papo.vialibre.org.ar/), an ERP for SMEs released under the GPL. We built tools like xot and cimarron.
- Platforms: Linux (Debian)
- Languages: Python
- Development: OOP, Subversion, GTK, Test driven development.
2007-2009 - Facultad de Matemática, Astronomía y Física (http://www.cs.famaf.unc.edu.ar/)
Graduate teaching assistant in the Algorithm and Data Structures laboratory course. We teach C, Haskell and Java. Wrote material for teaching programing with Java.
2004-2005 - Facultad de Matemática, Astronomía y Física
Graduate teaching assistant in the Operating Systems and Networks and Distributed Systems laboratory courses. We teach C and Linux kernel programming.
September-December, 2005 - Fundación Vía Libre
Wrote the material for and lectured an Advenced System Administration course. The course was delivered via a mailing list.
2000, 2002 - Facultad de Matemática, Astronomía y Física
Undergraduate teaching assistant in the Operating Systems and Networks and Distributed Systems laboratory courses. We teach C and Linux kernel programming.
2000 - Facultad de Matemática, Astronomía y Física
Undergraduate teaching assistant in the Databases course.
July-August, 2004 - Grupo de Investigación en Informática para Ingeniería, FRC, UTN.
I lectured a course about developing applications in C++ using the Qt libraries, delivered in 12 classes of 2 hours each.
October, 2004 - Fundación Vía Libre
I lectured an introductory course on the Python language, delivered in 4 classes of 4 hours each.
Segalini, Antonio et al. “Towards Massive Consolidation in Data Centers with SEaMLESS.” 2018 18th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID) (2018): 233-242.
https://hal.science/hal-01877886/document
Nombever, 2015
«From sockets to async in 45 minutes», given at PyConAr 2015 in Mendoza, Argentina.
August, 2007
«Xarope: Hosting Zope/Plone for the masses», given at 7JRSL in Córdoba, Argentina, on behalf of Soluciones Informáticas Libres S.A..
August, 2007
«The mail salad», given at 7JRSL in Córdoba, Argentina.
November, 2005
«Xot+Cimarrón: OOP application development», given at 5JRSL in Rosario, Argentina, on behalf of Fundación Vía Libre.
October, 2005
«Xot+Cimarrón: OOP application development», given at 4CafeConf in Buenos Aires, Argentina, on behalf of Fundación Vía Libre.
November, 2004
«Trieste: a distributed filesystem», given at 3CafeConf in Buenos Aires, Argentina.
September, 2004
«Trieste: a distributed filesystem», given at 33JAIIO in Córdoba, Argentina.
July, 2004
«Trieste: a distributed filesystem», given at 2ELL in Concordia, Argentina and Salto, Uruguay.
In my free time, among other things, I'm playing with the idea of approaching Python to shell programming. ayrton simplifies both the execution of commands and the remote execution of code via ssh.
Human readable regular expressions with batteries included. Just another approach to build regexps that you can read back and understand, with a couple of twists: you can debug you regexps and see when they fail to match, and the module has some useful predefined regexps.
Me and a few other pythonistas think that Python needs a development tool that helps you create projects, using templates for different types of projects, install and update its dependencies, check its code, test it, generate common files, register and upload to pypi and more. For that we created pbt, which is mostly a wrapper for lots of other tools, like pip, coockiecutter, unittest and more.
A personalized audio player that started as a way to test KDE's Python bindings, but that grew to also support inline tag edition and collection management.
A mirroring tool that I developed for maintaining a distribution mirror. It aims at maintaining the mirrors consistent, specially when an update does not finish (for example, when the time slot ends, which was the main concern in these particular mirror).
My never-ever-touched-again capstone project. It's a prototype for a distributed filesystem. It includes an implementation of Chord (https://en.wikipedia.org/wiki/Chord_%28distributed_hash_table%29).
In my spare time I'm also an amateur cartographer, designing my own tile based map with publicly available DEMs and Open Street Maps' data and design.