Sharing knowledge is important if we are to grow and develop our skills. With the developing practices of open source technologies, this sharing of knowledge has progressed in leaps and bounds. Open Brackets is the latest entrant to this.
What is Open Brackets?
Organized by the Mozilla Club Campus of IIT, Open Brackets is a series of meetups and tech talks conducted by industry professionals, regarding open source technologies. One such technology that was the main area of the first Open Brackets Meetup was about going Serverless.
So what exactly does going serverless mean?
Well, that’s what Ragularuban Nanthagopal – Founder and CTO of Alakazam was here to talk about. Contrary to popular belief, Serverless doesn’t mean that you choose to develop your apps without a server. Rather, it’s where your applications are hosted via a 3rd party service.
When you’re releasing an app, there are a number of factors to consider. These range from containers, to databases, scalability and administration. With a serverless technology, the server takes control of all these factors. So essentially, Serverless helps you get out of these concerns giving you the time you need to focus on the actual app that you want to write.
While it may seem the next best thing since sliced bread, going serverless also has its cons. These include having a built in restriction on size, a limitation of memory, a time limitation for a function etc.
When Alakazam went Servleress
Ragularuban then went on to talk about their experience with going serverless with regard to Alakazam. They focused so much on the server functions, that they lost focus on developing the app. They started paying for VMs but then they realized that they were still losing out on scalability. They heard about this term called “serverless” and began migrating to serverless functions. This, in turn was where they faced al the limitations that Ragularuban explained above.
Ragularuban also explained that they faced a problem of a limited list of natively supported programming languages. Having a cold start was another limitation that he explained. Here, serverless functions end and go to sleep due to inactivity. So if you want to call that function again, it will take time to fully wake up and return to full operational capacity.
Regardless of all the problems that might arise with implementing a Serverless architecture, Ragularuban emphasized that the participants should all try serverless functions, even if they are not planning to implement them in actual products that they’re working on.
The next part of Ragularuban’s session involved a live demo of a serverless function. Using AWS, Ragularuban explained how functions and handlers worked in a Serverless architecture. With the live demo done, Ragularuban’s session came to an end
Learning about Serverless Architectural Patterns
Manoj Fernando – Technical Lead at 99X Technology was up next to speak on common architectural patterns related to serverless. He listed down the principles of being serverless. These include the primary fact that there are no servers to provision or manage. From there, he spoke about how serverless architecture can scale with usage as they are auto-scaled on the user’s behalf. You also only have to pay according to usage.
So what are the common architectural patterns?
According to Manjo, these are web applications, event driven data processing, stream processing, conversation bots, serverless workflows, and data lake to name a few. Using real world scenarios, Manoj went on to explain each of these common patterns.
Using an example of an Online Shopping platform, Manoj explained that the first pattern is to have a web application that is on the Cloud such as AWS. While having your application and its functions on the cloud may look easier to do, it also means you have to consider things like scalability and zero downtime.
When you run your web application, you need to make sure that it can recover as fast as possible in the event of it crashing. In addition, it also has to load fast each time. In addition, you must also make sure that your web application is secure.
Manoj then went on to speak about CDNs and caching of websites. This is helpful when you don’t want your server to be pinged each time a visitor uses your web application. Once the app is up and running, the next problem is that the site is slow.
This is because high-resolution images are loaded on to the landing page. As a remedy, you can generate a thumbnail each time a product image is uploaded and show that image on the landing page. The full-size image can be stored in an AWS S3 bucket. After that, a thumbnail for the image can be generated and added to the landing page.
Manoj’s next point was about stream processing. This comes into play if you want to implement a search engine. So how do you optimize the search to show results as fast as possible? Manoj explained that using Elasticsearch. This is an extremely fast search engine. Adding to the Stream processing function was a scenario where you would want website analytics such as the total number of visitors, how long they stayed on the site, and how many almost purchased an item and quit.
Ai Powered chatbots can be used to improve the User experience of the site. As such, Manoj’s example was where you can use a conversation bot so that a user can search for and order items just by using their voice. Serverless workflows were Manoj’s next point. Here, the workflow or process is automated with no intervention required by the website administrator.
In conclusion, Manoj’s explained that if you’re implementing a serverless architecture with something like AWS, you should definitely use quick start guides. He also noted that you should read the AWS documentation as wellAWSvideos.com
With that, the Open Bracket Meetup on Serverless architecture came to an end. If you are interested in attending an Open Bracket meetup, you can check out their Facebook page. If you are also interested in the Mozilla Club of IIT, you can check them out here.