[TSTIL] cf-mendix-buildpack

[ This is a part of "The Software That I Love", a series of posts about Software that I created or had a small part in ]

2014 - cf-mendix-buildpack

The 12-factor app manifesto made an enormous impact on the world of cloud. If you didn't do 12-factor apps, you were stuck in the stone age. At Mendix we were stuck in the stone age, and we wanted out.

I believe it was in 2013 that Johan, the CTO, spent a weekend on getting Mendix to run on Heroku. He was still close enough to the Java code that he could compile his custom runtime for this purpose. I think this is the last serious programming I saw him do. He's a fantastic CTO and unlike me learned to let go of coding.

We never pursued Heroku again, but a year later Mark Rogers, who was leading Business Development, discovered Pivotal and their Cloud Foundry offering. This was an enterprise platform that targeted the same market as us. Cloud Foundry was Heroku for the Enterprise, and it was awesome. It would take us out of the stone age and into the 12-factor scalable future.

If I recall correctly, Johan asked me to try it out and to see if I could get Mendix to run on it. I was skeptical, but once I got access I gave it a spin. Being a Product Manager I now had a bit more freedom to spend my time than the daily scrum rhythm. I took the m2ee-tools code that Hans had written, wrote a tiny bit of glue code and hacked together a very ugly buildpack. Hans hated it because I took 12329 shortcuts. It worked though. You can see most of this history here: https://github.com/mendix/cf-mendix-buildpack . The initial commits were too ugly to keep so I rebased it. Initially it ran on both Heroku and Cloud Foundry.

"Production Ready" is a relative term. We were going all-in on the Cloud Foundry ecosystem and needed to run on IBM Bluemix, HP Helion and Pivotal Cloud Foundry. I think I became "mister cloud foundry" within Mendix, at least Erno started calling me that. Within a couple of months we flew to Barcelona for HP Discover, and I saw Johan on stage with Meg Whitman. He was talking to 5000 people about how easy it was to create a buildpack. "It only took us a couple of days!" He's a great showman, even with the Dutch accent ;)

The buildpack allowed us to go 12-factor. It needed major changes to the Mendix Runtime to remove state and scale horizontally which took about a year. Years later, in 2018, we had the first apps that really could not work without horizontal scaling. We were running an app that powered the "huishoudbeurs". A big event in the Netherlands that would see huge spikes in traffic. It ran on Cloud v4 and was very horizontally scalable. In my memory there were very few issues, and it was a proud moment for me.

The buildpack also allowed us to seriously partner with Pivotal, IBM, HP, SAP and GE. It gave us a seat at the table. Our Private and Public cloud propositions were much stronger with the Cloud Foundry play. Nowadays Cloud Foundry is not doing so well, and the Kubernetes beast became the standard platform that CF wanted to be. In my view CF has a much better developer experience than K8s and to me, that's what matters.

Although I was no longer an engineer but a Product Manager, the buildpack was clearly my project. It was small compared to the effort we put in m2ee-tools or the Mendix Runtime but it was crucial. It's my #1 project in terms of business impact. Every day, thousands of Mendix apps start running using my code. Although better engineers have probably refactored most of it, I'm immensely proud of it.

previous2014 - Sandboxes


Popular posts from this blog

AI programming tools should be added to the Joel Test

The unreasonable effectiveness of i3, or: ten years of a boring desktop environment

The long long tail of AI applications