Saturday, 5 May 2018

What are the key features of a fully optimized and extensible back end system?

I don't need thorough walkthroughs, as I can just Google those myself, but I want to make sure I know what to Google before I do.I have a very obsolete web server that runs on Apache and PHP. I want to migrate it over to a fully JavaScript back end.I know enough about Node to know I don't know very much. There are things like "reverse proxies" and concepts where you thread your process into 4 duplicates to share the load since Node is single-threaded.I don't know these things, but I know I want them. I want to learn them, and I want to implement them.I've been considering purchasing a new back end server and burning the old one to the ground, as it is too full of bloated obsolete software and configuration to bother trying to undo it all. Starting from scratch will be much better, imo.But when I start from scratch, I want to make sure I do it right. I'm going to have a plethora of websites and APIs all hosted on this server.My conceptualization of this currently is that each website has its own port (a la an Express/Node server instance), and some "reverse proxy" of sorts is going to listen to traffic on port 80 and direct it to the correct port auto-magically.e.g. I run mysite1's Node app, it spits out port 9111, and I configure my reverse proxy to forward traffic from mysite1.com:80 to localhost:91111, and I just do this for every site, each receiving a unique port.Or maybe I'm wrong. I don't know. That's why I'm here.I want to know what these concepts are that I'll need to do this. If my site crashes, how do I auto-reboot it? How do I branch it into multiple processes to optimally handle load? Are there times I wouldn't want to do that, given this server will be hosting a huge buttload of projects?Again, I don't want walkthroughs. I'll Google those myself, as I don't expect you guys to hold my hand. I just want to make sure I know what all the bases are, so that I can cover them.e.g. Let's Encrypt for SSL, helmet(?) for security(?), reverse proxy, that thing where I branch processes, some sort of process manager to branch the processes and auto-reboot them, some sort of error logging at some level.Do I want to throw up an nginX server also for the static files, or can Node forward those just fine without bringing in another software package?Many super thanks for any information you can provide, or any resources online that "cover all the bases."

Submitted May 05, 2018 at 07:54PM by GAMEchief

No comments:

Post a Comment