[HN Gopher] Ask HN: Where can I see many examples of real compan...
___________________________________________________________________
Ask HN: Where can I see many examples of real companies' software
architecture?
I want to broaden my horizon regarding how things are solved in the
real world. Other than some very high-profile companies (like
Netflix, github) and companies that I've worked at, it's hard for
me to find easily digestible (20-60 mins) examples of actual
working architecture of differently sized companies from different
business verticals.
Author : PeledYuval
Score : 390 points
Date : 2022-04-11 10:39 UTC (12 hours ago)
| theginger wrote:
| I came across this a while back It is a court document from one
| of the UK post office horizon IT system scandal. It has a very
| detailed review of the system and its history dumbed down to the
| level a lawyer could (maybe) understand.
|
| It stands out because it is quite hard to find examples of this
| level of detail about such a large scale distributed system which
| aren't internet / web tech companies.
|
| https://www.judiciary.uk/wp-content/uploads/2019/12/bates-v-...
| mythz wrote:
| https://techstacks.io/stacks/
| loganmarchione wrote:
| Here is a post with some examples of IaC (Terraform, Ansible,
| etc...).
|
| https://old.reddit.com/r/devops/comments/smfr2e/do_any_compa...
| pugworthy wrote:
| Etsy has a "Code as Craft" blog with lots of interesting reads.
| It's not been as active the last 2 years but has been re-launched
| with more posts the last few months.
|
| https://www.etsy.com/codeascraft
| mikojan wrote:
| Twitch recently open-sourced all their software.
| oooooooooooow wrote:
| You forgot to add unwillingly, but otherwise correct
| Nextgrid wrote:
| Also Patreon and Microsoft (Bing). I'm sure there are other
| lesser-known ones that might be interesting too.
|
| Oh and I'm pretty sure I've seen GitHub Enterprise too.
| hamasho wrote:
| > Other than some very high-profile companies (like Netflix,
| github) ... it's hard for me to find easily digestible (20-60
| mins) examples
|
| So I think this doesn't meet your requirements, but I like Tech
| Dummies Narendra L's YouTube videos [0]. He introduces big tech
| companies' systems in 30-60min videos and it's not difficult to
| understand.
|
| [0]
| https://www.youtube.com/playlist?list=PLkQkbY7JNJuBoTemzQfjy...
| swyx wrote:
| so like.. not to be too cynical but how does he know his
| representation is correct or at least not misleading? a lot of
| youtuber content is just made up.
| jryantaylor wrote:
| Narendra's content is awesome, but I think you're right to be
| skeptical. His content is more focused on how to answer
| system design interview questions about how the companies
| operate.
| hamasho wrote:
| Yeah... It's dangerous to accept random YouTubers' content as
| fact mindlessly.
|
| I'm not sure all he says are correct, but at least he uses
| the target companies' engineer blogs, external articles, and
| some open-sourced part of systems (and list them in the
| video's detail section). His main targets are often big techs
| like Twitter, Uber, and Netflix, so I guess such documents
| are often available.
| pbiggar wrote:
| All of darklang's infra is source available, feel free to read
| it. This [1] is a good entry point for the infra configuration
| and setup.
|
| [1] https://github.com/darklang/dark/#production-services
| codr7 wrote:
| I'm a big fan of Sean Parent from Adobe, he has a lot of good
| material on YT; somewhat C++ specific though.
| yuppie_scum wrote:
| Check meetups.com and see if there are local DevOps or other
| technical meetup groups where people are demoing.
| Trex_Egg wrote:
| its http://meetup.com/ I think
| andy_ppp wrote:
| I guess searching YouTube is best for these things.
|
| https://martinfowler.com/ but I'm not sure if he touches the real
| world sometimes, it all feels very academic rather than
| pragmatic.
|
| I wonder if you'll find "good" outcomes though, it seems to most
| startups or companies bumble their way to an architecture that
| works for them. It might not be correct but it might be best way
| to build a company without architecting everything too much up
| front.
| pc86 wrote:
| Most of MF's articles read like someone extremely intelligent
| but who last actually wrote code or worked on a real system in
| the late 90's.
| protomolecule wrote:
| What made you think that?
|
| Just curious, last time I happened to read anything from
| Thoughtworks was quite a long time ago.
| rglullis wrote:
| I'd really want to have that, but for small companies/services
| that benefited from _avoiding_ the trends to get some competitive
| advantage.
|
| Something like "IT Architecture for the Forbes 500-thousand"
| softveda wrote:
| AWS This is my Architecture video series
| https://aws.amazon.com/architecture/this-is-my-architecture/
| lazyant wrote:
| Software engineering blogs
| https://github.com/kilimchoi/engineering-blogs
| ArtWomb wrote:
| AWS Summit is approaching. I usually find other teams, even
| nominal competitors, or hulking behemoths of industry, to be
| quite proud of what they've built, and generous with their battle
| tested knowledge. All you have to do is reach out and ask ;)
| nuclearnice1 wrote:
| Great plan.
|
| Additionally, there is a "This is my architecture" series on
| YouTube where AWS interviews users.
|
| https://youtube.com/playlist?list=PLhr1KZpdzukdeX8mQ2qO73bg6...
|
| https://aws.amazon.com/architecture/this-is-my-architecture/
| jon-wood wrote:
| Be careful with things like this - it is ultimately an AWS
| marketing channel, so they're not going to bring on people
| who say "we tried running everything on Lambda and it turned
| out to be a deployment nightmare". The very best way to do
| this is find a tech meet-up around the sort of thing you do,
| and then go for the after event drinks. Get to know people,
| chat with them, and find out all the many ways architectures
| can shoot you in the foot.
| [deleted]
| throwie2000 wrote:
| I'm looking for something similar for design interview practice
| purposes in my job hunt.
|
| All the systems design resources I can find are aimed at L4/L5,
| where the focus is e.g. on how to implement a rate limiter on a
| single machine, or at best saying you can distribute it by
| putting the counters on a cache server.
|
| I'm trying for L6 and can identify many of the issues with a L5
| design (redundancy, sharding, global latency, hot spots, local
| batching), but it's hard not to miss the obvious, and to offer
| practical/realworld solutions, when my day job is embedded
| compilers and not large scale systems.
|
| This is mostly a rant but I appreciate suggestions.
| zinxq wrote:
| Here's a video of the technical (and product) evolution of
| Mailinator.com - and how each influenced the other.
|
| https://www.youtube.com/watch?v=BqNfHsZ3QUc
| sahin wrote:
| https://www.Stackshare.io has many
| [deleted]
| xs83 wrote:
| Slideshare can give you some insights from various companies,
| most tech presentations discuss something around their
| architecture!
| beckman466 wrote:
| https://github.com/loomio/loomio
| theanirudh wrote:
| Gitlab is a very open company and have lots of documentation on
| their architecture here:
| https://docs.gitlab.com/ee/development/architecture.html and
| here:
| https://about.gitlab.com/handbook/engineering/infrastructure...
| caffeine wrote:
| This doesn't really answer your question, but gleaning it from
| job descriptions is one way I do it.
|
| If I'm curious how a company did something, searching for their
| job descriptions can turn up interesting stuff like what
| languages and frameworks they use, and often from there you can
| infer what their architecture might look like.
| davidkunz wrote:
| Enterprise Fizz Buzz:
| https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
| angryGhost wrote:
| https://eng.uber.com/ has great articles covering many topics
| jjri wrote:
| Wow, thanks for this link. At a glance, there are tons of great
| and interesting articles to view. I am saddened by the fact
| that there isn't more content on self-driving vehicles.
| dahart wrote:
| Work at more companies! Lots of great resources here, however,
| from experience I would say take all public presentations about
| how things work inside a company with a big grain of salt. They
| always have a vested interest in advertising successes, and
| public presentations always focus on some filter of
| interestingness. You won't see the important "real world" parts
| of what's left out unless you're part of the organization.
| qbasic_forever wrote:
| Read the engineering blogs of big companies like Google, Netflix,
| Dropbox, etc. and especially read papers they publish. Google has
| a book out now about its software engineering practices too--
| although it's not specifically on architecture you can glean a
| ton of info about how Google services work internally from its
| software processes: https://abseil.io/resources/swe-book
| baq wrote:
| look at public org charts, they'll define the architecture.
|
| only half joking
| thomasjudge wrote:
| https://en.wikipedia.org/wiki/Conway%27s_law
| fsloth wrote:
| Conway's law - I don't think it's a joke at all.
|
| Like most things in software engineering, it's qualitative and
| empirical - but also has very strong potential to function as a
| supporting "first principles" theory for so many things.
|
| Conway - "How committees innovate"
|
| http://www.melconway.com/Home/pdf/committees.pdf
|
| I think this paper has a fantastic corollary in Peter Naur's
| "Programming as theory building" which triumphantly explores
| the implications of institutional knowledge in long term
| software maintenance. https://pages.cs.wisc.edu/~remzi/Naur.pdf
| [deleted]
| dhab wrote:
| For AWS, this might help:
| https://aws.amazon.com/architecture/this-is-my-architecture/
| Asooka wrote:
| Try and search for SDKs of some large software. Usually those
| would be programs for creating content - audio, 3d modelling, 2d
| drawing, etc. Every major vendor has a plugin architecture that
| quite obviously leaks implementation details. So stuff like Adobe
| Photoshop, Autodesk 3dsMax, FL Studio. All these have public SDKs
| that you can download, explore and write plugins for. You can
| probably think of some more programs that support third party
| plugins.
| rmeertens wrote:
| InfoQ's QCon conference frequently has an "architectures you
| always wondered about", which frequently has good talks. You can
| find them here: https://www.infoq.com/architecture-design/.
| jollybean wrote:
| It's a wonderful question because Github as a zillion projects,
| and yet there's nary a way to consistently make sense of the
| system as a whole.
|
| Blobs of code. It's hard to see the systems level.
|
| I think there's a startup idea in there.
| northstar702 wrote:
| I thought this was really useful in getting a quick overview of a
| variety of systems in the real world, even though the book itself
| is designed to answer interview questions.
| https://www.amazon.com/System-Design-Interview-Insiders-Guid...
| mirchiseth wrote:
| Came here to say the same. System Design Interview book has
| digestible level of info on what the OP is asking (I think :-)
| )
| wsostt wrote:
| A certain amount of information can be gleaned from job
| descriptions from a company's careers page.
| rsecora wrote:
| OSINT
|
| ;)
| nilsbunger wrote:
| The book "System Design Interview" by Alex Su and Sahn Lam is a
| good place to get digestible examples. It walks you through step-
| by-step how you might solve various systems problems, introducing
| the pieces you need. Each problem fits your 20-60 min request
| perfectly.
| gentleman11 wrote:
| The doom source code was released. If you would like a guided
| tour, maybe look at https://fabiensanglard.net/gebbdoom/
|
| Unreal is source available too, if game engines are of interest
| to you
| mangoTangoBango wrote:
| NSA security architecture
| https://media.defense.gov/2022/Mar/01/2002947139/-1/-1/0/CTR...
| explaingarlic wrote:
| It's good to note that it depends largely on the company you're
| looking at.
|
| I work for a very large organization (~PS6bil in revenue,
| PS700mil in profit last year) and we suffer from the "mud"
| problem - nothing about our technology stack is particularly
| special, it's just a hodgepodge of many different technologies
| that struggle to work together. That's not entirely fair - I work
| within a very unique solution inside of this firm, but I'm in a
| very unique position and I'm sad to say that it took a silly
| amount of hard work just to be able to not work on legacy
| applications.
|
| That being said, the companies you mention (Netflix, Github) work
| completely differently - they were _designed_ with tech in mind!
| They probably are much more lean in a technological sense, and
| don 't suffer from enterprise architectural issues that large
| legacy firms do.
|
| I suspect that this inability to move has singlehandedly killed
| more than one company, though I haven't studied the market to the
| point that I could really name any. The real kudos has to be
| given to large companies that existed before the internet and
| _were_ able to move away from their slow-to-adapt, horribly
| inefficient legacy systems.
| dahve wrote:
| https://nickcraver.com/blog/2016/02/17/stack-overflow-the-ar...
| Osmose wrote:
| Discord did a blog post a while back about their architecture
| https://discord.com/blog/how-discord-handles-two-and-half-mi...
| mandeepj wrote:
| https://github.com/donnemartin/system-design-primer
|
| It has link to many other articles and tech blog, besides having
| a lot of great info on system design and arch
| neoeno wrote:
| I was developing some architecture training recently and had this
| very same question. It's not easy to find realistic
| architectures.
|
| The best I found was the German contact tracing app -- Corona
| Warn App. It was done by a group of consultancies in
| collaboration with the German govt, and went from inception to
| launch in around fifty days -- largely if not totally open
| source.
|
| Here's the repo that has all the architecture in:
| https://github.com/corona-warn-app/cwa-documentation
|
| It's got full git history so you can see it evolve over time,
| along with the implementations (also on Github).
|
| There's a pretty fascinating short talk by one of the people who
| led the project on youtube too -- more about the process side
| though: https://youtu.be/5y1sHSkPWRg?t=1770
| alhirzel wrote:
| You can get a good view on some architectures from AOSA, thought
| it may not be as focused on web as you're looking for:
|
| http://aosabook.org/en/index.html
|
| A good example is Scalable Web Architecture and Distributed
| Systems by Kate Matsudaira:
|
| http://aosabook.org/en/distsys.html
| buescher wrote:
| Thanks! I didn't know about the AOSA books. There are some
| really nice examples of top-level software documentation in
| them.
| klenwell wrote:
| On topic of architecture of open source applications, Wikimedia
| shares this:
|
| https://meta.wikimedia.org/wiki/Wikimedia_servers
| FelipeCortez wrote:
| It's pretty cool how their Grafana is open
| https://grafana.wikimedia.org/d/000000002/api-backend-
| summar...
| honkdaddy wrote:
| Very cool!
|
| At what level of scale might one expect to need what's going
| on in the "Edge Cluster", as opposed letting all the requests
| fly right into the app servers?
| DougMellon wrote:
| Wow, those all look fantastic. Thank you for sharing!
| foxbee wrote:
| I know it's not a 20-60 min example, but I find reading open
| source repos very informing:. I'm the cofounder of Budibase, and
| I like to jump on a call with new contributors and take them
| through the high-level arch and repo:
| https://github.com/Budibase/budibase
| jlbbellefeuille wrote:
| BuiltWith - doesn't give you a whole picture, but it does share a
| lot of information.
|
| https://builtwith.com/
| 0xbadcafebee wrote:
| In the real world [of software], things are solved by choosing
| the tech with the lowest barrier to entry, not reading any
| documentation, getting a minimum-not-quite-viable-proof-of-
| concept working in a development environment, then making that
| production, over-working a select few to keep it running, and a
| lot of crossed fingers and heads in sand. The only thing you'll
| learn from different verticals and sizes is how size and scope
| have no correlation to how things are built or whether they work
| well.
|
| The interesting part is how larger scale makes things fail more
| often, and the response to increased failure can either be
| running around with your hair on fire for years, or a solid
| firefighting team, or actually teaching teams not to build
| products that catch on fire. The only way to get the last one is
| by focusing on people, not technology.
| Veuxdo wrote:
| Here is an interactive presentation of a serverless architecture
| with a Stripe integration:
| https://app.ilograph.com/demo.ilograph.Ilograph/__overview
| pid-1 wrote:
| LAPSU$ leaks
| devmor wrote:
| Based on my experience, write down the names of some services and
| languages on slips of paper then draw a few from a hat.
| beauzero wrote:
| Thoughtworks keeps a "technology radar" that I have found very
| interesting. I won't post the "whys" but it's worth looking for
| upcoming components and tech that they are seeing used more in
| consulting. https://www.thoughtworks.com/radar/techniques
| ITB wrote:
| https://HighScalability.com is excellent
| cfors wrote:
| High Scalability has some good articles around this.
|
| http://highscalability.com/all-time-favorites/
| jedberg wrote:
| Keep in mind that the author of that blog doesn't actually talk
| to anyone at the company they are writing about, they just
| collect articles around the internet and public statements and
| piece it together from that.
|
| For example one of the most popular article on that site (which
| is part of their book now) is the article on Netflix. A lot of
| that was cribbed directly from my talks, but they never reached
| out to me to even check it over, and as such missed a lot of
| nuance and detail, things I didn't cover in my talks.
|
| Same thing for the article about reddit -- also cribbed a lot
| from my talks.
|
| It's a fine overview, but light on specifics. I've reached out
| a few times and some things have been corrected after the fact,
| but I don't know if the other articles have been reviewed.
|
| So my point is, be warned that the articles on that site are
| not primary sources but are derived from them.
| evanelias wrote:
| Other times, they would directly talk to a single employee,
| but get skewed or misleading information based entirely just
| on that one employee's POV.
|
| Their post about Tumblr's architecture [1] focused a lot
| about JVM-based services, HBase, etc which in reality was
| only ever used for a tiny subset of the backend. The huge
| section on "Cell Design for Dashboard Inbox" was especially
| ridiculous: the systems described there were literally a mix
| of complete vaporware and failed/canceled projects that never
| even got close to production.
|
| As an early Tumblr engineer, I was really upset to read this
| nonsense. I spent several months of my life working very long
| hours to successfully scale the existing (PHP/MySQL)
| dashboard activity feed architecture in 2011-2012. It
| continued to be used as-is for many years after this
| interview, with lower latency and much lower cost than the
| proposed hbase/scala cell replacement.
|
| And of course, engineering candidates being interviewed would
| _always_ ask about this hbase cell architecture thing that
| they read about in High Scalability...
|
| [1] http://highscalability.com/blog/2012/2/13/tumblr-
| architectur...
| szaboat wrote:
| I've bumped into this in a job listing a few weeks ago from
| https://litnerd.com/.
|
| https://www.figma.com/file/6rFlomXiaKyE4pVQ9O7Qod/engineerin...
| culi wrote:
| You can use stackshare.io to get an idea of different tech stacks
| companies use. This might shed some light on their architectures
| JonChesterfield wrote:
| A popular choice in the real world is known as 'the big ball of
| mud', e.g. as described at http://www.laputan.org/mud/.
| gentleman11 wrote:
| I came here to share this link too
| gitfan86 wrote:
| It isn't really a choice, it is just what happens due to
| incentives and changing needs and leaders and politics and
| technologies inside the company.
|
| People assume that software architecture is like building
| architecture, in some ways it is, but NO ONE has ever showed up
| to a construction site that was half way done and said "Hey
| guys the steel framing we ordered has been delayed so please
| continue building the rest of the building by replacing
| anything that was original designed for steel beams with
| bamboo.
| kitd wrote:
| A better description is that of garden landscaping.
|
| You have a reasonable idea of what you want to achieve, and
| it looks good on paper, but until you have actually walked
| through it, touched and felt it, you don't know whether it
| really does what you wanted.
|
| And of course, it changes as it matures, and what was great
| at first can become overgrown and resource-hungry.
| smaddox wrote:
| I like Casey Muratori's view of software architecture being
| more akin to urban planning than to building architecture.
| Taking that view seems to alleviate many of the apparent
| paradoxes.
| JonChesterfield wrote:
| Oh it's definitely a result of choice. Strictly speaking it
| is lots of choices that in aggregate give the classic result.
|
| Some choices by sales, some by engineering, some by
| management. All doing their best. Each reasonable on a
| sufficiently small time horizon.
| somethoughts wrote:
| This is awesome (as well as the ball of mud "paper").
|
| I think the building construction analogy might be similar to
| a home which has seen multiple remodels.
|
| Now imagine a scenario where you have an absentee owner with
| a lot of money, a permanently staffed architect and a bunch
| of extremely able, slightly competitive contractors all on
| staff - each trying to prove their annual salary.
|
| The original one story building would quickly become an ten
| story nightmare of a building.
| vardump wrote:
| A lot of old projects (especially 20 years+) tend to be more or
| less this.
| hintymad wrote:
| I'm very interesting in the architecture of systems similar to
| Amazon SQS. Interestingly I couldn't find much discussion on such
| systems. I guess it's because SQS is such a typical iceberg
| system that has sophisticated designs to provide dead simple
| APIs: having a queue that supports competing consumers and simply
| scales infinitely (in the eyes of users) with users provisioning
| capacity is no joke.
| geoduck14 wrote:
| Go to google.com, search "pile of spaghetti", click "images"
| lemedro wrote:
| https://runninginproduction.com is a podcast about software
| architecture examples.
| nickjj wrote:
| Thanks for linking that.
|
| The purpose of each episode is for anyone to walk away having a
| reasonable understanding of why and how a company built and
| deployed their app with XYZ technologies without needing to
| know anything up front. There's over 100 different companies /
| individuals who were on the show.
|
| I tried to make it as efficient as possible to get these
| details. There's a lot more detail than a few bullet points but
| it doesn't get super lost in the woods with a million low level
| details that's specific to 1 company. It's basically an hour or
| 2 conversation for each episode where we cover everything from
| building to deploying their app, lessons learned, etc..
| ben30 wrote:
| http://highscalability.com/
|
| Looks like it hasn't been updated for a while though.
| jkingsbery wrote:
| +1... I haven't read through it in a while, but I read it
| frequently earlier in my career and have found that really
| valuable. In the cases where I've been asked about situations
| that I had no first-hand experience in interviews, it's been
| helpful to draw on knowledge from that reading. Being able to
| say, "well, Company X got to scale Y using technique Z" sounds
| more compelling than taking guesses.
| taeric wrote:
| There was an article recently
| (https://news.ycombinator.com/item?id=30936189) that was
| basically about how far you can get with a simple architecture.
|
| One thing I don't remember explicitly called out, is that most
| all architectures are grown. There are scarily few situations
| where starting with the complicated idea is a good idea.
| edelans wrote:
| Gall's Law :
|
| > A complex system that works is invariably found to have
| evolved from a simple system that worked. The inverse
| proposition also appears to be true: A complex system designed
| from scratch never works and cannot be made to work. You have
| to start over, beginning with a working simple system.
| lfpeb8b45ez wrote:
| This is a dated paper, but it checks many of the boxes you ask
| for - the original Windows Azure Storage architecture:
| https://sigops.org/sosp/sosp11/current/2011-Cascais/printabl...
| jplahn wrote:
| All of our Sourcegraph docs are public, including our
| architecture overviews and a myriad other docs linked from there.
|
| https://docs.sourcegraph.com/dev/background-information/arch...
| sqs wrote:
| Also all of our (Sourcegraph's) code is public, so you can see
| what the architecture actually looks like implemented in code.
|
| https://sourcegraph.com/github.com/sourcegraph/sourcegraph
___________________________________________________________________
(page generated 2022-04-11 23:01 UTC)