Being a bootstrapped startup, it’s an important decision to decide which technologies to invest in. Whether it’s cloud VMs, cloud services or even email providers. We were in the same situation when we opted to use OpenFaaS for our upcoming major update of Iconscout.
Previously, we’ve worked with Azure Functions, AWS Lambda, Serverless and many more to do small on-demand actions. And now with this update, we wanted to move to serverless architecture for all the tasks. Majority of our cloud usage is for processing of files we’re receiving from our contributors. And also this is the most time & cost consuming activity. We started looking for a service or hosted solution, using which we can deploy our services in seconds without much human interruption. We are a small team of dedicated people who are involved in development, deployment and/or maintenance of Iconscout, thus we’ve to take these constraints in our mind. Plus, cutting down infrastructure cost matters a lot to us.
Let’s get into our use case first, and then I’ll show you how we are working with OpenFaaS.
Iconscout is a Design Resources Marketplace, where designers can upload their icons and buyers can choose from our collection of 900,000+ icons for their projects. We are receiving thousands of vector SVG icons from our designer community on weekly basis. Once designer submits his/her icons, we then convert those vector SVGs into 11+ different sizes and formats, including PNG (from 512×512 to 16×16), AI, EPS, PDF, PSD, ICO, ICNS, with and without watermarked versions. Also, we generate different Icon Pack mockups to display them on-site, for SEO, OpenGraph images and many more purposes. Plus, we’ve unique feature to download one click zip files for our premium users.
Previously, in Iconscout, we used traditional monolithic and microservices. During these conversions, we are dealing with thousands of files, which move to and fro from our storage providers. We were using traditional single-threaded PHP workers to process these tasks.
We started exploring possible solutions to solve our problems. As mentioned above, we wanted some reliable service or self-hosted solution which is easily scalable and low-cost solution.
We gave first try to Azure Functions as we’re already using them for testing purposes. And below are the points that forced us to look for alternatives.
This was our next chance to go for due to its popularity among the developers. But our journey continued after this too!
Finally, we found OpenFaaS! In the beginning, it took time to learn about how it works, how to develop and deploy it. Thanks to Alex Ellis, for being there actively with us on every stage.
Alex is the most helpful & active member amongst all the communities that we came across.
We started testing OpenFaaS, for small on the go event like generating zip, as well as for long-running workers of our image conversions. We were already using Docker for our development purpose, thus utilized Docker Swarm for OpenFaaS. And guess what? Those 20–30 minute time taking tasks came down to 5–7 minutes duration. And the most important part is, We can deploy it to a new VM in a moment! Yes, we have done it for our testing, staging and production environments.
Let me give you an example diagram of how we’ve utilized OpenFaaS for our upcoming update.
In simple words,
“With OpenFaaS it was incredibly easy for us to develop functions and integrate them into our applications. I was able to get started in minutes and I found the portability really important for our use-case.”
It was a very good experience to work with OpenFaaS and Alex Ellis. If you want to get started serverless computing, just give it a shot. You can find getting started guide at OpenFaaS docs and do join OpenFaaS community on Slack. I bet you won’t regret it.
I hope you liked this article and looking forward to comments & suggestions from you guys! Do share with your teammates.?
Stay in touch!