6 ms·
Web Architecture 101
- Zaheer 8y agoThis 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 8y agoWhile 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.
- meowface 8y agoThese things were taught at my university (Information Systems major), but the info was pretty out-of-date and not as practical as this article.
- sna1l 8y agoI 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.
- sciurus 8y agoSure, it's a great book, but it only covers a few of these topics (maybe 4, 6a, 5, and 9) and covers a lot that goes beyond them. It's a book I would heartily recommend, but not for someone whose primary goal was to learn about web architecture.
- quickpost 8y agoAny other books you'd recommend that come closer to fully covering the topic this post discusses?
- sciurus 8y agoGood question! The Practice of Cloud System Administration is one that comes to mind, but it's not precisely focused on this topic either. https://the-cloud-book.com/ https://the-cloud-book.com/ Edit: thinkmassive mentioned the Art of Scalability, which I'd also recommend.
- thinkmassive 8y agoClean Architecture https://www.goodreads.com/book/show/18043011-clean-architecture https://www.goodreads.com/book/show/18043011-clean-architect... The Art of Scalability (2nd edition) https://www.goodreads.com/book/show/25686275-the-art-of-scalability https://www.goodreads.com/book/show/25686275-the-art-of-scal...
- thinkmassive 8y agoFor anyone interested in building or modifying system architectures I also highly recommend this book, although it isn't web-specific (similar to the DDIA recommendation): Building Evolutionary Architectures https://www.goodreads.com/book/show/36308520-building-evolutionary-architectures https://www.goodreads.com/book/show/36308520-building-evolut...
- wenc 8y agoI'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 8y agoAny other books you'd recommend that come closer to fully covering the topic this post discusses?
- wenc 8y agoNot really, but I don't know this space as well as I do the space covered by DDIA. It could well be that no one has written such a book, and perhaps the market is ready for one.
- tlrobinson 8y agoA modern version of Cal Henderson's "Building Scalable Web Sites" would be nice to have. I'm sure a lot of it still applies, but it was written a decade ago: http://shop.oreilly.com/product/9780596102357.do http://shop.oreilly.com/product/9780596102357.do
- spraak 8y agoPerhaps "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.
- rhizome31 8y agoIn fact, the Unix and Linux System Administration Handbook offers a pretty good coverage of this topic.
- hackermailman 8y agoDesigning for Scalability with Erlang/OTP book is good resource. I mix Erlang with Algorithmia pay-per-use algorithms these days to drop in features like sales analysis.
- kgoutham93 8y agoReally enjoyed it... Any recommendations for Web architecture 102 ?
- spraak 8y agoI posted this above in reply to someone else asking the same question: > 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.
- thinkmassive 8y agoWithout committing to an entire book, perhaps more detail on load-balancing and proxies? https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and-proxying-a57f6ff80236 https://blog.envoyproxy.io/introduction-to-modern-network-lo...
- dfsegoat 8y agoThis 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.
- aaavl2821 8y agoI'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
- duxup 8y agoAmen, web content to learn from wise security, back end stuff, architecture doesn't get enough coverage. There are so many super simple app tutorials that are an island to themselves that might get your other super simple app going, but they don't even give lip service to any deeper concepts or what is going on the back end. I have a theory that the volume of basic copy this code type tutorials is because they are really resume fodder.... I've run through some tutorials that are downright misleading IMO, and I could tell that as a noob myself. I was playing with one recently that I wondered, hey can I make it do X too? But the code was laid out and ran so wonky that it was just easier for me to start fresh on my own. It was a react tutorial and even running it as provided it ran but react was all wtfareyodoing.jpg in the console... right out of the tutorial... come on. I wish people would quit it with the code tutorials as resume content. As for security I finished a boot camp recently and I asked about security, the answer "We really don't address security." I have a networking background so I could see a lot that was missing that folks really should know...but not even given lip service.
- rubber_duck 8y agoI'm guessing, but IMO when you're dealing with load balancing, services and data pipelines you're at a scale where you should be able to hire qualified people to do the job so the docs are geared towards that audience.
- csnewb 8y ago"Web Application Architecture" by Leon Shklar is a good read for a detailed description.
- aportnoy 8y agoCan 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 8y agoI 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-development-473867f44876 https://medium.com/career-change-coder/how-i-broke-into-web-... If you're only looking for high-level concepts, Crash Course has some good episodes about the workings of the internet.
- aportnoy 8y agoThank you, some of the references were helpful!
- x13pixels 8y agoI'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
- sixdimensional 8y agoFunny.. 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!
- sixdimensional 8y agoRandom 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 8y agoSkyscanners "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.
- iandanforth 8y agoI'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 8y agoIt 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.
- inestyne 8y agoBest job in the world i can't believe they pay me to do this!
- deleted 8y ago[deleted]
- niutech 8y agoThis 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.