10 ms·
Up until yesterday I didn't know Zendesk was written in Rails. They had a talk at RailsConf 2022[0] where they went over how they handle a billion requests a da
by nickjj 4y ago
Up until yesterday I didn't know Zendesk was written in Rails. They had a talk at RailsConf 2022[0] where they went over how they handle a billion requests a day with mostly a Rails monolith.
I wonder why they're not brought up more when talking about large Rails apps. Is there an interesting (read: bad) history with them and Ruby?
[0]: https://www.youtube.com/watch?v=mJw3al4Ms2o https://www.youtube.com/watch?v=mJw3al4Ms2o
- Beltalowda 4y agoI guess being a business app plays part; not a lot of consumers use it. Plus, I'm not sure if I ever met someone who used ZenDesk and actually liked it.
- philliphaydon 4y agoZendesk is one of those… what’s better? Products… used many over the years and while I don’t like zendesk i can’t think of anything better. There’s most likely is better but donno what is.
- djyaz1200 4y agoAgree, anyone have a link to and/or list of competitors?
- julianeon 4y agoThere are competitors but their general idea is “we’ve rethought support from the ground up (and Zendesk is not it).” Intercom for example, support through chat. The basic idea of the competitors is that you’re “not just a ticket” (another Zendesk zinger) - that any customer message should be part of a holistic strategy for communication, and also strategizing, upselling, etc.
- SnowHill9902 4y agoCan you give some examples?
- nso 4y agohttps://www.superagent.com/ https://www.superagent.com/ is interesting
- wil421 4y agoSums up enterprise tooling in a nutshell. If it’s somewhat better than the last tool and more efficient in some ways then good enough is good enough.
- CPLX 4y agoFor what it's worth, I evaluated all the obvious offerings about two years ago and settled on Help Scout and like it quite a bit. My use case is pretty low volume so I could probably have succeeded with anything but it's been sophisticated and fast and easy to use so far.
- secabeen 4y agoI've been happy with Request Tracker for over two decades, but the scope of RT is also a lot smaller than ZenDesk. Just email-first ticketing, little more.
- beardbound 4y agoI agree. I used RT years ago when I was in IT and quite liked it. I’ve used plenty of the competitors over the years and they seems to be mostly worse versions of it. However RT is really just a request tracker and doesn’t do some of the fancier pseudo PM stuff zen desk does. That’s a plus in my book since when I’m tracking tickets I don’t want a JIRA clone but worse. Also it’s worth noting I haven’t used it in 10 years so it might have changed substantially since then.
- smeej 4y agoI use ZD extensively and have for years. I do like it. I found that after I went through their free training programs, I could use it powerfully, the way it's designed, and it works really well when you know how to use it really well. Granted, we haven't "met," so your statement stays true, but I really like ZD.
- audeyisaacs 4y agoZendesk is a million times better than Freshdesk, ServiceNow, Jira service desk, in the context of basic ticket management workflow.
- shafyy 4y agoZenDesk sucks, but it's not because they use Rails. It's their UX that sucks.
- hiyer 4y agoWell, they say imitation is the best form of flattery, and Freshworks, another successful company, was pretty much a copy of zendesk when it started. I haven't used either in a while, so I don't know if/how much they've diverged now.
- pen2l 4y agoThere’s also that when you’re kind of big, there’s a brand to be maintained and that rarely involves presenting the dissected view of your stack. In fact at some it’s readily avoided by some. I recently discovered, for example, that Django-REST is quite often used for big sites. Like Robinhood and Eventbrite.
- quickthrower2 4y agoBoring tech is not blog or social media worthy I guess!
- tetha 4y agoIt's interesting though. The container orchestration at work has kind of moved past the initial scary phase, and kinda past the first honeymoon phase. In the beginning, it was like "Oh we can use all kinds of technology in there, how amazing!" - by now we're much rather becoming very, very efficient a smacking problems with the 3 boring old sticks dev has. Something like deploying and monitoring low-volume spring boot applications based on postgres has become extremely streamlined by now.
- SEJeff 4y agoI'm assuming you're referring to Django Rest Framework? It's one of the nicest API frameworks I've had an excuse to use professionally. It's easy to see why.
- iratewizard 4y agoTop notch documentation. Carefully thought out patterns like authentication pipelines. Simple syntax one you learn it. There's lots to like.
- Hamuko 4y agoI feel like DRF's documentation is a bit lacking, especially when compared to Django's documentation.
- sdrwefgfvb 4y ago> they went over how they handle a billion requests a day with mostly a Rails monolith 1 day has 246060=86400 seconds. 1bn/86400 is more than 10000 reqs/second, so each request has to be served in less than 100 us. According to [1], random access on an SSD is about 150us. This suggests to me it's likely that most of these are being served cached from a CDN. Are we supposed to be surprised that this can be done by a rails monolith? We don't know how many of those requests are actually hitting the rails app. [1] https://gist.github.com/jboner/2841832 https://gist.github.com/jboner/2841832
- ajmurmann 4y agoThere is no limitation that this has to be served by a single server
- sdrwefgfvb 4y agoWait, so in what sense is it a monolith then? :D
- nkozyra 4y agoNot sure how much is sincere here, but a monolith typically means "not microservice architecture" and has very little-to-nothing to do with the ops side.
- sdrwefgfvb 4y agoWell if you're distributing requests over multiple servers, I wouldn't call that a monolith.
- macksd 4y agoNevertheless, that's a pretty common term when the compute portion of the application is a single tier, but that doesn't mean that the tier can't scale over many stateless compute nodes.
- 4y ago
- viraptor 4y agoThey're not hiding it either. There's a few ruby and RoR projects they publish https://github.com/zendesk/ https://github.com/zendesk/ including Samson. I feel like people don't talk that much about big RoR apps in general...
- captn3m0 4y agoOutside of ruby, https://github.com/zendesk/maxwell https://github.com/zendesk/maxwell is quite popular.
- anotherhue 4y agoSamson isn't even recommended internally > It is currently in maintenance mode (bugfix, but no new features) because we are migrating off it.
- ransom1538 4y agoIMHO: Companies that make a profit are in php and rails (rarely in python). Companies that do not make a profit or have no intention to are in elixir, rust, typescript, go and node. I don't think this has anything to do with the language used - it's the attitude of the founders: "let's use easy boring tech"- that type of thinking extends into the business. The founders are focused on solving a business problem - not some hipster js framework. I don't want to code php, but after year 20 i am confident there is no escape.
- CoastalCoder 4y agoThat's a really interesting observation. I never thought of tech stack as a possible predictor of profitability. Do you know of any larger studies on that?
- derivagral 4y agoPaul Graham wrote this[0] back in the day about tech stacks. I think this is still kind of true, but there's many more people across many stacks today that can work around some of the shortcomings. I guess it would still be important-ish at a small startup, but you still have to hire for it. There's much more JS/python/java/etc these days, so you have to fight that tide while you grow. Profitability also may correlate differently; smaller places usually focus on growth instead, right? [0] http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html
- collinc777 4y agoelixir, rust, typescript, and node are all relatively newer languages. Php, rails, and python have been around longer and the companies built on top of them have had more time to ride the compound growth rate curve.
- matwood 4y agoI wouldn't exactly call Go hipster. New maybe, but it fits squarely in the 'easy boring tech' and is one of the main complaints from detractors.
- spollo 4y ago
- jcelerier 4y ago> a billion requests a day ... that supposed to be good ? it's 11600 requests per second... for reference Seastar (a C++ framework) reaches 7M requests per second (https://seastar.io/http-performance/ https://seastar.io/http-performance/)
- fknorangesite 4y agoIsn't this apples-to-oranges? Seastar is just the web server, right, not the whole app? Would a better comparison be Seastar to, say, Puma?
- jcelerier 4y agoi can't find a single benchmark that puts puma at more than 1k req/s. found a thread which mentions 70 req/s, which I guess some overclocked Z80 or 6502 could reach lol
- treis 4y agoThey've got a bunch of completely independent regions. So they've really scaled their Rails monolith to handle 100s of millions or less a day and get to a billion by having 10+ regions. Which is obviously still good but not quite the same.
- cplanas 4y agoAuthor of the presentation here. While you are right that sharding is an incredible tool that makes our lives much easier, not everything in our system is/can be sharded. Also, we do handle more than a billion requests/day, that was just for giving the title a nice ring.
- gabetax 4y agoThat level of scale always boils down to partitioning work. The fact that these partition are distributed across regions is done for risk mitigation (e.g. what happens when AWS's eu-central-1 catches in fire). Architecturally, nothing really changes if you stuffed them all in the same region.
- cplanas 4y agoAuthor of the talk here. Thank you, you made my day by sharing my presentation. :) One thing I would like to add after reading some of the comments here. The "1 billion requests/day" is actually an understatement so the title has a nicer ring. Last time I checked we were around 2B -and that's according the most conservative approximation-. Those are requests that hit the application, excluding the CDN caching layer. BTW, happy to answer any questions!
- john-tells-all 4y agoMicroservices have received a lot of attention. For Zendesk, what are the business consequences of using a monolith? Is this a mono- or multi-repos? Are tests simpler? Does the system require lots of special-purpose tooling? Thanks!
- hiyer 4y agoCongratulations on the talk and the buyout. I hope you got a big payout :-)
- simpleintheory 4y agoIsn’t GitHub in a similar spot as a Rails monolith? Or did they move recently?