About a year and half ago, I was wondering if and how a tool like Liferay could benefit from containerization. Many other products had already been pushed on Docker Hub, but for Liferay there were only few, unofficial guides and examples.
The relevant question was: In what way a Liferay image can simplify the software development process? Does it make any sense to spend some time investigating this topic?
As you can easily imagine, the answer was: Yes. Definitely.
At that point I found this repo realised by Manuel de la Peña, from which I took some cues to realise my own versions of Liferay containers. Even if Liferay was not officially supporting Docker at that time, someone in Liferay had started to explore it. Promising.
Nevertheless, there was a lack of complete guides on how to setup a whole, enterprise ready Liferay Workspace environment able to support Docker deployment. Pain.
The same pattern can be applied to a plethora of diverse elements. Every project, every team, every day has its peculiar situation which perfectly fits with the service offered by that product, that library, that paradigm.
And maybe somewhere in Internet someone realised an example of integration, which works perfectly for his problem with that particular version of Liferay. But there is no detailed documentation, no guarantee of portability, no official support.
So, what can you do? Two ways.
The first way is complaining about Liferay company and its developing team. How on earth could they ignore this feature, which is the most important (for me)? How can I go to (my) customers and sell them a product without such an invaluable feature? Liferay sucks!!!
The second one is to reverse the approach. If this feature is useful to me, maybe it could be useful for someone else. Maybe even for Liferay and its developing team. People in Liferay always say that they take care about community, so maybe I can talk with them and see if they are interested in my idea. Or maybe I can realise a PoC of my proposal and write a blog post, to see if someone else in the community shares the same needs. Liferay is great!!!
I chose the second approach and wrote this blog post. About one year ago. Shortly after, Milen asked me to realise a dev.life session on the whole staff. That was great, because it meant that someone in Liferay was interested in my idea. I was not alone.
Now Liferay has its own Docker containers and officially supports them. I don't want to take credit for that, but I'm happy because it means that my idea was a good one. And there is also a more practical advantage: when official Docker containers came out, I had more than one year of experience on a feature that many people were seeing for the first time.
Community can help you to evaluate the worthiness of a feature long before its first appearance in Liferay ecosystem.
Moreover, I personally contributed to the liferay-themes-sdk, in order to support container-ready themes deployment, because one day Chema asked me if I was interested in doing that. This means that now my implementation of this feature has become the official, supported one. And I don't have to maintain it anymore: Liferay engineers will ensure portability when Liferay version changes.
Contributions can lift the burden of maintenance from your shoulders.
But the most beautiful thing for me was the feeling. It was very nice chatting with Chema and Ivan during the debugging session. I felt like we had been colleagues for a long time, even if I had never talked to them before. And the satisfaction to see your code merged inside Liferay official repo is something beautiful. It's like to leave an indelible mark, to be part of Liferay community forever. Inspiring.
What I always felt while talking with people in Liferay is: Liferay wants your contributions. Liferay community is always open to evaluate changes, to experiment, to get involved. People in Liferay are happy to see your proposals, to examine them, to evaluate their impact. But often they simply have not enough time to develop all your ideas by themselves. But if you want to contribute, they will be very happy to help you. And you should be very happy to contribute, too.
After a year, I never regretted my choice.