
Web Architecture 101 - aksxna
https://engineering.videoblocks.com/web-architecture-101-a3224e126947/?ref=abhimanyu
======
aaavl2821
I'd love to see more tutorials / examples of implementing some of these
concepts. Maybe I'm looking in the wrong place, but most tutorials I see are
just super simple apps and don't deal with load balancing, services, data
pipelines etc.

For people who are working in non-tech jobs but teaching themselves
programming so they can build useful tools for themselves, colleagues and
customers, I think there's a big gap in learning tools. Often these ppl can
have enterprise users out of the box bc they understand needs and know people,
but can only make hackish solutions that are useful but don't scale well or
aren't sufficiently secure. These ppl don't have CS backgrounds and don't code
for a living, so going straight into docs can be really overwhelming even if
it's the "right" thing to do, esp if it's an architectural choice or security
issue where the documentation may not be as straightforward

~~~
mehblahwhatevs
I too am in great need of things like that.

I'm a mobile dev developing an app that I think I'm going to quit my job for
to work on full time. I'm 33 and in over a decade of doing mobile (and front-
end web) programming I've never worked on a personal project that showed as
much promise as this one has for me, both financially and from a fulfillment
standpoint.

However the prospect of wrangling the back-end and all the new things I need
to do around deploying, scaling, containers, separation of services: cache,
API, queue, DB, and making it all secure on top of that is giving me pause and
making me less confident the more I read :(

~~~
mnm1
Nah, don't let that discourage you. You can probably start with a Postgres
backend that will serve as your db, full text search, data warehouse, and even
job queue. Load balancers in front of your stack are available from aws, etc.
and are easy to set up. The rest, like a caching redis server, actual job
queue, etc. you can add as you go if it becomes needed. Some language stacks
let you run async operations and queues in the server itself which may be
enough. There is no need for containers or complicated deployment processes.
If you're on the JVM, for example, just create an uberjar and run that. Focus
on things that actually bring value to your business and use the simplest,
most minimal solution everywhere else. Don't give up on your idea because you
feel overwhelmed. Good luck.

~~~
testb
Was about to write this exact reply. A single database and web server goes
surprisingly far.

~~~
collyw
If you have a reasonable idea of what you are doing.

~~~
nucleardog
Even if you don't, throwing some more hardware at it can still get you pretty
far with a decent ROI in the early stages.

------
sna1l
I found the book "Designing Data-Intensive Applications" by Martin Kleppmann
to be a good, practical primer on a lot of these topics.

If you want to go deeper on any of the subjects he discusses, his references
for every chapter are solid and provide a deeper understanding.

~~~
wenc
I'm a big fan of DDIA (I have a copy in front of me right now), but the topics
covered in DDIA are much more around distributed systems and databases, in
short "data architecture", i.e. batch, streaming, derived data, transactions,
consistency, etc.

The article above is more about "web architecture".

There is some overlap but DDIA largely doesn't really cover the same topics.

~~~
quickpost
Any other books you'd recommend that come closer to fully covering the topic
this post discusses?

~~~
spraak
Perhaps "Web Scalability for Startup Engineers" by Artur Ejsmont. But I admit
I have't read it yet -- I however felt the same as you and started exploring
for more resources after coming across this thread.

------
aportnoy
Can anyone recommend an introduction to web architecture in the more general
and less complex sense? I would like to learn about how the browser interacts
with the server (I don't care about load balancing or caching for now), how JS
interacts with HTML and CSS, how API's work?

I know a common architecture is JS in the browser making requests to the
server and receives JSON and then renders it somehow. Sometime the server
renders stuff itself and sends it to the browser, right?

And then there's possibly a database attached to the server.

How does all that work?

~~~
zefool
I wrote an article on learning web development, might be useful to you. Here's
the link: [https://medium.com/career-change-coder/how-i-broke-into-
web-...](https://medium.com/career-change-coder/how-i-broke-into-web-
development-473867f44876)

If you're only looking for high-level concepts, Crash Course has some good
episodes about the workings of the internet.

~~~
aportnoy
Thank you, some of the references were helpful!

------
iandanforth
I'd love to see the initial diagram _grown_ step by step. You don't start out
this way and it can be extremely informative to see which bits get added when.

~~~
vinceguidry
It depends on the business needs. Generally what happens is a developer will
notice that something is going to become a problem and start considering
solutions, long before the app becomes unmaintainable. It's all driven by what
the application needs.

------
sixdimensional
Random thought, but when you see that.. it also makes more visible a little
bit more, what it means to be responsible for the "full-stack" in 2018.

~~~
collyw
Skyscanners "Full Stack Test" was entirely in Javascript when I got asked to
do it. Screw that, its not my strong point. Apparently the alternative is
Hackerrank for systems engineers when I mentioned that to them. Hiring in our
industry is a shambles.

------
x13pixels
I'm sure this has been said before but this reminds me of
[https://www.youtube.com/watch?v=CJQU22Ttpwc](https://www.youtube.com/watch?v=CJQU22Ttpwc)

------
Zaheer
This is a great overview! It's a shame this sort of thing isn't taught in
schools (from my very own anecdotal university experience).

~~~
aksxna
While I agree that a precursor to these concepts would be a great initiator,
however I also believe that a good appreciation for scaling technologies can
only be developed by getting hands on and working with a high traffic website.
Just reading the theory might not help that well.

------
csnewb
"Web Application Architecture" by Leon Shklar is a good read for a detailed
description.

------
kgoutham93
Really enjoyed it... Any recommendations for Web architecture 102 ?

~~~
thinkmassive
Without committing to an entire book, perhaps more detail on load-balancing
and proxies?

[https://blog.envoyproxy.io/introduction-to-modern-network-
lo...](https://blog.envoyproxy.io/introduction-to-modern-network-load-
balancing-and-proxying-a57f6ff80236)

------
niutech
This is overcomplicated, you can do it much simpler using some Backend as a
Service, like Parse, Hoodie, Backendless or Firebase with a client-side
business logic.

------
dfsegoat
This is great. It's great for new devs - and even for upper management who may
want a simple/executive summary of how modern stacks work.

------
sixdimensional
Funny.. I just had to diagram the same kind of generic thing at my day job.
And it's almost exactly the same.

Nicely done and a good share!

------
inestyne
Best job in the world i can't believe they pay me to do this!

