Recently, I joined a new organisation, Supahands!
As my first assignment, I was supposed to assess a few front-end frameworks for one of our products. It was a challenging task for me and I learned a lot through the process.
Story - For our new product, we had four frameworks in our mind. React / Vue / Angular / Ember.
After a few days of evaluation, we came to a conclusion that ReactJS is a perfect fit.
The product's goal was pretty simple to achieve. It was a simple CRUD operations app, with a few more service-calls to retrieve some data.
We already had a running product with Ruby On Rails + PostgreSQL stack.
After inspecting our objectives, we realised that we needed to adapt to better technologies and architecture.
We were trying to achieve the following things:
- Move our business logic to independent services (AWS Lambda).
- Introduce new UI design and Template System for the application.
- Write a Client-Side application in React.
- Restructure our current database and migrate to DynamoDB.
- Automate CI processes and current deployment strategies with the help of AWS CloudFormation. Our business logic is tightly-coupled with the deployment stack.
And why were we doing this?
- To minimize the cost.
- To re-use services in other products.
- To have a Client-Side single-page application.
- To maintain and share a common database with multiple applications.
And... did we achieve our targets? YES!
What did I do in the process?
- I participated in the app's UI design process. I converted those designs into JSX templates with the help of Bootstrap.
- I successfully wrote code with React for our Client-Side application (from scratch).
- I deployed our React app to AWS.
- Adapted myself to Serverless architecture. And, still learning...
- I wrote backend services in Python 3.6 for AWS Lambda.
- I designed a better structure of the database in AWS DynamoDB.
Why was it challenging?
- I was working with React and AWS for the first time.
- I had no idea how Serverless technologies work.
- I have never worked on a front-end framework on my own from scratch to go-live.
So, what's next?
- Improve the app's code base.
- Add test cases for front-end app.
- Add Redux for state management.
- Make the app mobile-friendly.
Special thanks to dev.to and the community. I have referred a lot of threads for React and Serverless development!
Top comments (8)
Cool!
It's hard to distill such a huge refactoring in a few lines but...
What was your experience about moving an entire app to serverless? What about startup times for the functions?
Especially thanks to this part you wrote:
:-D
Hey @rhymes .
The overall experience with Serverless was outstanding. And I learned a lot through the process.
I found this inside AWS docs about Automatic scaling -
Well, it sounds great! Thank you for the answer :)
I wondered about startup times with Python, it's not as bad as Java (due to the lack of JIT compilation) but it's not the fastest either. You definitely answered my question.
I am glad I could help. I am still new to this technology stack. :)
I would really like to experiment with serverless. Could you share some starter tips? Cheers
Hey @janguianof , thanks for sharing the tutorial!
@senornigeria , I would like to share the material I followed.
Hi!
I started with this:
hackernoon.com/a-crash-course-on-s...
Hope it helps.
Regards!
❤️❤️❤️