PCQuest

8 thIngS to ConSIder Before SettIng Up YoUr BaCkend platform

A readily scalable backend that functions with the same agility at which technology and demands are changing is the need of the hour. Here we discuss eight key issues to keep in mind before developing one

- Harsha TBA, VP Engineerin­g (Backend), Curofy

So you have just been hired in an early stage startup, or you just decided to startup! And your first task is to build a scalable backend that can support multiple apps, can do 1000 things, crunch all the required data, provide valuable insights and yes has a 0% downtime! Sounds familiar? If yes, then read on. Below are a few things responsibl­e for its optimal functionin­g. The learnings are mostly centric towards the most common pitfalls that developers ignore. Most of these things are very low on effort compared to their usefulness.

1. Choosing the right language and framework

Choosing the right language and framework for your requiremen­ts can be a very confusing task. Start with the language you are comfortabl­e with. Now while choosing a framework, first look at the size of the community using that framework. Second, an extensive ‘Documentat­ion’ of the framework is also a must. Community and Documentat­ion are very critical when you are building at pace.

If you are building an e- commerce site you can choose frameworks like Django, Rails, Magento which have some wonderful plugins to support your applicatio­n. But if your applicatio­n involves communicat­ion, choosing a non-blocking applicatio­n framework is a must.

There has been a lot of talk going around Node vs other frameworks. Definitely, Node is the largest growing community but we need to give it some time till it matures enough. –

2. Reusabilit­y

Developers are always under pressure to deliver fast and this might lead to bloated and unorganize­d code. Sorting out your code and breaking it into smaller functions can be real time saving. Moreover, you can write test cases for each function and profile them easily.

3. Never miss out on data

These days, the IP of any product is not the code or the design, it’s the data. And trust me you cannot afford to lose it. So a couple of basic things… (a) When storing a data row try storing additional informatio­n like the time of action. You never know when this will come useful.

(b) Never do hard deletion on any data. For example, if the user wants to delete some comment / purchase he made, do a soft deletion on that row i.e., have a flag in that row that determines that particular informatio­n has been deleted. This might be tough while writing the codes but this could provide very useful insights.

4. Never be monolithic

There are a lot of cloud hosting services available which provide different prices and different features. But make it a point to not deploy all the services on just a single server. Instead, use multiple servers. This will not just provide load distributi­on but also prevents the case when the whole server crashes and you have to set everything up again.

In case you are using relational databases, AWS provides some out of the box solutions like RDS which have some amazing features like a point in time recovery and setting up read replicas.

5. One point deployment­s

Try to avoid ssh-ing to servers to deploy your code. There are many open source tools available like Chef, Ansible, and Fabric. You might be in your comfort zone in doing that but as you scale up this might prove to be real tough. Even when operating on a single server and installing

 ??  ??

Newspapers in English

Newspapers from India