News for hackers. Stuff that matters.

tgalopin

Kubernetes was the key part in our development process: it gave us the flexibility, stability and scalability required to handle million of users while still deploying multiple times per day.

At the beginning of the campaign, we had only one node in the cluster, as we thought it would be enough. However, while it was enough most of the time, it had issues under DDoS attacks: as the node was the only one, it was the master node of Kubernetes and when it overloaded, Kubernetes crashed.

To avoid this, we used three smaller nodes instead, to avoid having a node overloaded leading to the whole system crashing. Kubernetes handled the following attacks really well with this setup, and it did not cost more for us.

About the attacks: they threw more at us (XSS, SQL injections, etc.) but most of these attacks were still automated. Perhaps have they tried something even more subtle, but I doubt it: they prefered to hack emails :) .

I have to admit making the project open-source was a quite difficult decision: I really wanted it, but I also knew we would be potential targets of powerful organizations. We decided to do it because in the end, the argument you stated was stronger: open source does lead to more secure, stable and quality code, and this project showed it. Note also that we didn't advertise much on this project during the campaign, so perhaps was it not clear for potential hackers that the code was open.

In a political movement, the main source of costs is the organization of the movement itself (members, committees, events). It is perfectly normal as it is the core of the party, but it is really difficult to decrease these costs. In classical parties, this organization required to have a physical place in thousands of cities in France.

What I meant in the article was that our budget was way smaller than the one of other parties. That is the reason why we relied mainly on Internet since the beginning to create committeess and organize events.

This being said, the "small" budget we had was not that small if you see it as an individual: we had several million euros coming from donations and loans. This was not enough to have physical places in France but it was largely enough to create a high-end platform instead.

Technically speaking, the hosting and the different services we use costed us around 8000 euros/month at the end of the campaign, including the DDoS attacks mitigation (which did indeed increase our costs). The website development itself is very difficult to estimate as it was made both by volunteers as me and by external companies.

I also would like to add that the cost of development would have been much higher if we had relied only on external companies. The flexibility required by a presidential campaign forced us several times to develop complete features in a few hours and that would have been difficult with a classical company only, requiring specific contract and limiting our possibilities. I think one of the reasons why the project went really well was because of the synchronization between motivated volunteers (highly flexible work time) and external companies (proper high-end quality code).

PHP is becoming nicer and nicer over time :) . Perhaps would it be worth a new try?

In the project, we didn't use server-side rendering: what I meant in the article was that the basic HTML was a first version then replaced by React, on the client side. The React component has different code than what was rendered initially, but for our usage it's not an issue.

I guess your comment wasn't written to be answered, but please note that the lack of validity of your arguments prove how badly you know PHP.

In the En Marche platform project, we serve million of users per month, with fast response times, deployment without downtime, 4 mail workers and multiple PHP instances in paralell synchronizing cache using Redis. I personally worked on several projects having the same infrastructure and the same high quality standards.

I think that, as many other developers, you have a strong but irrationnal opinion on PHP and will do everything in your power to attack it. I hope this kind of behavior will fade in the future, as it should not represent our community.