Build Serverless Python Applications using AWS Chalice

By Harsh Bardhan Mishra

Elevator Pitch

AWS Chalice is a Micro-Web Framework that allows for the development of Serverless Python Applications. With a unified CLI, it allows us to develop and deploy Python applications almost instantaneously. The talk will introduce you to Chalice and how to develop RESTful APIs and deploy them flexibly.

Description

Description

With the rise of the Serverless Applications, Developers now have a chance to focus on developing the Code Logic and allow the Cloud Service Provider to focus on the deployment aspects. Serverless exactly doesn’t mean that there are no servers. It just means that we don’t need to provision and maintain them exactly. Our Cloud Service Provider takes care of packaging and deployment almost instantaneously.

With Python, Amazon Web Services (AWS) released an interesting Micro Web-Framework named: Chalice. And it features everything that we would want from a Serverless Framework to easily develop and deploy our applications using Python. With an easy to understand syntax, a unified Command Line Interface (CLI) to create new projects and deploy them and ease of Development Experience, along with integration to various AWS Services, Chalice is a must to go with.

The talk would introduce you about the Serverless Environment on Amazon Web Services and how you can develop and deploy Python-based Production Grade RESTful API Services using Chalice.

Content of the Talk

  • What is Serverless?
  • Background to AWS Lambda
  • Setting up a Project on Chalice
  • Developing a REST API Service
  • Deploying the Application on AWS
  • Testing the API

Pre-Requisites

  • Basic understanding of Cloud
  • Basic understanding of RESTful API Structure
  • Experience with Python Development

Important Take-Aways

By the end of the talk, we will be able to learn on how you can run your Code on Serverless Platforms like AWS. We will also have set up a Production Grade API on AWS tied up with various other AWS Services at ease. Finally, we will be taking a look at how Chalice aims to improve the Developer Experience with ease through the intuitive use of Serverless Technologies.

Notes

Technical Requirements

The Technical Requirements aren’t hard and fast. Chalice allows you to set up Projects locally and test them without even having an AWS Account. For Deploying Applications, we would need an AWS Account and setup an IAM User for the purpose. I will be showing that in the demonstration on how to setup AWS Credentials on Local Machine using Python for better access.

The Attendees should also have installed cURL or Postman to test the APIs and I will be demonstrating the API Testing using both of them for better accessibility. Lastly, a good Integrated Development Environment (IDE) is worth to invest in for better access to the Session and following up with the Materials.

Motivation

  • Serverless Application Development is booming among Developers.
  • With high costs and labour going into developing Cloud Solution for Application Deployment, Serverless is a new way to deploy and scale applications instantaneously.
  • Developers can then focus more on writing Code Logic and less on setting up Deployment Servers.
  • With Chalice, we will also explore other Serverless Services on AWS and how to integrate them in our Python Application.

Why me?

  • Dedicated to work for Open Source projects and make a contribution to society by completing this project.
  • Always curious and energetic to know about all the technology.
  • Love to help people in developing their skills.
  • Passionate to teach and mentor. Took sessions reaching over 10,000+ Students.
  • Mentored for The Uplift Project by Girlscript Foundation, PClub Summer of Code by Programming Club, Panjab University, Contributor’s Hack by HakinCodes, Semester Long Projects by DSC-DAIICT and Student Code-In 2020.
  • Technical and Community Mentor at OpenMined, Open-Source Organization aimed to bring privacy as part of Machine Learning Models.
  • Co-Founded and leading the Educational and Open-Source Team at Tesseract Coding with over 156 Active Contributors on NeoAlgo (180+ Stars and 310+ Forks), an Open-Source Project which I am administering.

Experience with Python

I have been a Python Developer over the past two years where I have worked on Full Stack Development with Python, RESTful API Development, Data Modelling with Machine Learning Frameworks and Algorithmic Development.

I have been a former Software Engineering Intern at Qxf2 and a Fellow at Major League Hacking where I have worked on developing and deploying Scalable Applications through Python. I have also worked on Developer Tools and Services to enhance the Developer Experience in further way.

Some of my notable works in Python include:

  • NewsFresh: Machine Learning App built using Django and Scikit-Learn to detect and classify Fake News with Crowdsourcing.
  • WebEdge: Developer Tool to help Developers enhance Search Engine Optimization (SEO) Philosophies.
  • Helping Hands: Flutter Application to help Blind People navigate through AI Models running on Flask APIs.
  • Internal Survey App:: Internal Survey Application put to production at a major QA Startup to solve issues around Company Culture, built with FastAPI, Neo4j and ReactJS.

I would love to be a part of BelPy 2021 and I’d be extremely happy if I’m given the chance to speak at BelPy 2021.