DEV Community

Yeison Cruz
Yeison Cruz

Posted on

What about scalability?

Let me tell you, it's beautiful

Systems are expected to grow at any time, and you know "Any time" even at middle of night. Also you won't know when a new pandemic is going to be propagated in the world and people need to make almost everything using the computer and your system will increase traffic even 500% of the expected.

It sounds good, but be careful scalability isn't something you have to do just when the system fails or maybe when a big deal is near. You have to think is scalability from the beginning. Because is so difficult to scale in/out a monolith, here is a list that i think you should have in mind from the beginning:

  • Don't create logs in the server, it's difficult to maintain when you have to duplicate your server.
  • Avoid a LAMP, MEAN servers, please move your database to another connection.
  • Integrate a monitoring tool, will be easy if you can see what is happening before sign in into the server.
  • Create Microservices, and avoid to use always the same programming languages, there is a language according the task.
  • Use external service for assets (img, pdf, csv, txt ...), I usually use S3 it's cool.

After follow those tips, will be easier to move your system to a high scalable site, and some other benefit come in the package like easy to maintain, availability, cost effective site. Yes if you are able to reduce the server size when there are no users using it your wallet will be happy.

And at the end, obviously you will be able to sleep better.

Top comments (3)

Collapse
 
kasunkoswattha profile image
Kasun

Thanks for this. Can you elaborate more on "avoid to use always the same programming languages, there is a language according the task" ? How does this affect scalability?

Collapse
 
vekmaster profile image
Kevin D. Agudelo Gallego • Edited

I think, for example, if your project need AI try to use the best language for AI to get the best performance.

Each Microservice should have a unique responsability, try to use the best language for this unique responsability.

Collapse
 
kasunkoswattha profile image
Kasun

Thanks for the clarification. I get the performance aspect of it. We should choose the most appropriate language for the job. It was unclear that how a language stops a software from scaling. You have to write code scalability in mind. That goes for every language. But once its written It should scale the same.