#1 Making a Tech platform, Past…

Clement Hussenot-Desenonges
7 min readDec 12, 2022

--

From Hosting provider to internal Site Reliability and finally Platform Engineering…

The main objective of paleontology is to reconstruct the history of life and past environments, diving into the depths of time, where history is counted in millions, tens and hundreds of millions, and even billions of years. My testimony here is intended to explain what Platform Engineering is and will be seen through the prism of only 3 years experience at ManoMano. It’s a bit shorter than millions of years… but there’s definitely some good to learn.

I propose you… A kind of walk in time, describing the projects and steps that allowed the evolution of what we now call, the ManoMano technical platform. I will also tell you about what seems to be the future directions to take in the third article.

I’m Clement Hussenot, passionate technophile… I was Site Reliability Engineer, then Platform Engineering Manager at ManoMano (Next40). These articles concludes my work here since I decided to leave ManoMano recently to take the time to take care of my family …Until the next adventure!

So here we go… How at the ManoMano current scale we have structured the operations and platform to meet the demands of the business and our hundreds of developers? 🧱 We have simply gone through a number of steps in order to obtain a robust & resilient platform.

How a Next40 platform is engineered?

Platform engineering is a relatively new field that involves building and maintaining the infrastructure and tools that support the development and operation of software applications. We come to think of the platform as a product, which we generally want to be self-service to accelerate innovation within the company. Some of the challenges in this field include:

Scalability — All engineers need to ensure that the infrastructure they build can handle the large amounts of data and traffic generated by their applications, and can easily be scaled up or down as needed.

Security — All engineers need to ensure that the infrastructure they build is secure and protects sensitive data from unauthorized access or attacks.

Integration — Platform Engineers often need to integrate different systems and technologies in order to provide a seamless experience for developers or users.

Maintenance — Platform engineers are responsible for maintaining and updating the infrastructure over time, which can be a challenging and time-consuming task.

Collaboration — Platform engineering often involves working with teams of developers, managers, and other stakeholders, and requires good communication and collaboration skills.

Flexibility — Platforms are constantly evolving and changing, and platform engineers need to be able to adapt and respond quickly to new requirements and challenges.

The steps we took…

I divide the history of the ManoMano website in several ages.

1. Proterozoic — Monoliths and ancient times before… the cloud!
This age lasts for 7 years and is divided into three stages. It was during this age that ManoMano was built, which at the beginning had the name of monechelle.fr

1.1 NeoProterozoic — The company was co-founded (July 2012).
ManoMano under the name MonEchelle raises €150,000 to finance the launch of its marketplace in France. The site is written in $php, with an in-house framework. This solution includes front accesses for B2C customers, as well as a backoffice for employees. The development team is small. And does not include people in charge of IT operations. The hosting is outsourced to a provider.

1.2 MesoProterozoic — the Company changes its name (Sept. 2015).
By changing its name to ManoMano the company wants to tackle a larger market and be present in several countries in Europe.

1.3 PaleoarcheanHow can we conquer more?
I was hired right at the end of that era! This era has allowed a transition to AWS, hiring more and more people and opening an office in Spain for mainly tech people. After 3 monoliths and several redesigns. The decision to grow the teams was taken. In order to allow a fast innovation, the teams are structured in Gears and adopt a μservices architecture. The first μservices deployed still have very strong coupling with our monoliths.

2. Hadean ☄️

The big switchover to Amazon Web Services (AWS) was done in September 2019. After months of preparation, we pushed the teams to migrate all the monoliths… and proto-μservices of the ManoMano website. This was done in only 2 days, our technical teams worked in rotation during each of the three periods of approximately eight hours that make up the workday. I was SRE and I was part of this big switch. We worked at night to deploy all the stuff with the objective of not having any interruption of services. This operation was globally a success. We then had a much more dynamic capacity, thanks to AWS innovations, which was very quickly useful to us… The traffic during the pandemic has simply increased our daily traffic by more than 4. \0/

3. Phanerozoic — which saw the development of an abundant quantity of μservices, or λ (lambdas) … This was our goal, to help life develop faster and see many different forms in production. Then it was hard to keep up with things and we had to tool up!

REESSBTLLYY… What are we operating on, guys?

We then had to try to understand what we have in our hands… after having done the hardest… How naive we were! To understand what we had, we totally transformed our monitoring approach to set up an observability of the ManoMano whole ecosystem.

Observability is the ability to monitor and understand the state of a system by analyzing the data generated by its components (μservices, databases, network, storage). In the context of platform engineering, observability is important because it enables teams to quickly and effectively identify and diagnose issues with their technical platform. By providing a complete and detailed view of the platform’s performance, observability can help teams to identify potential bottlenecks, optimize resource utilization, and improve the reliability and stability of the platform. For this we have chosen after a serious benchmark to use the Datadog solution. Our implementation has been progressive. And we met many teams to make them take in hand the solution and understand it.

Very quickly, observability has helped us better understand the behavior of our platform and the impact of changes made to it. This was particularly useful when developing and deploying new applications on the platform, as it allowed us to identify and address potential problems before they became major issues.

Gotcha, so you’ve done some monitoring 2.0!

I would prefer to say that Monitoring and Observability are two related but distinct concepts in the field of software engineering:

Monitoring refers to the practice of collecting and analyzing data about the performance and behavior of systems and applications, in order to identify potential issues and problems. This data typically takes the form of metrics, such as CPU usage, memory utilization, or network traffic, which can provide insight into the health and performance of systems and applications.

In contrast, observability is the practice of making systems and applications transparent and understandable, so that they can be easily monitored and diagnosed. Observability focuses on providing the right data, tools, and practices to enable teams to understand the behavior and state of their systems, and to identify and respond to potential issues and failures.

<Life is a bad joke>

One key difference between monitoring and observability is that monitoring is primarily focused on metrics, while observability is focused on events. Events are discrete occurrences or changes in the state of a system or application, such as a request being made, a service being started, or a network connection being established. Events provide a rich source of information that can help teams to understand the context and behavior of their systems, and again… to identify potential issues and problems.

Overall, monitoring and observability are complementary practices that are essential for building and maintaining stable and reliable technical platforms. By combining monitoring data with observability techniques, teams can gain a comprehensive view of their systems and applications, and can more effectively identify, diagnose, and again… respond to potential issues and failures.

At ManoMano, observability quickly became a cornerstone and allowed us to build a solid team around it. In order to make our platform scalable, reliable and efficient. I was extremely happy to be part of those who had the mission to set it up.

If you want to know how I built the PULSE team in order to operate the platform as smartly as possible… If you want to understand how to think observability de facto, how to structure your teams around this concept, read me & the rest of the adventure in this article.

You found this first article helpful or interesting, please consider sharing it with your friends or colleagues, or contacting the author to learn more.
I would love to hear from you! — Clement Hussenot

--

--

Clement Hussenot-Desenonges

Over 15 years experience designing resilient & scalable infras, I worked for several startups... and hope you'll enjoy my ideas and point of view on Tech.