Twitter is a top-5 near realtime web property. It has an enormous attack surface across nearly the entire spectrum of cybersecurity threats. It's hosted at least in part on prem. Swathes of it are programmed in Scala, which is a minority language that is hard to hire for. It makes money through ads, which involves significant operational complexity at scale. Its recommendations and trending features are built on machine learning models which themselves require data engineering pipelines to deliver continuous updates. It's been in continuous development for 16 years, with an accumulation of accidental complexity (aka tech debt) in addition to the ever-expanding essential complexity inherent in its functionality.
Those of us who have taken an oncall shift in the world's most complex distributed systems environments are just shaking our heads at some of the drivel in these comments.
A few examples:
- security holes discovered in the OS requires an emergency update, which requires lots of testing because updating the OS has a bad tendency of breaking even stable software (I've encountered that issue a few weeks ago);
- security holes discovered in third-party libraries/frameworks/..., which requires updating, re-testing, re-releasing stuff – and fixing whatever breaks because of undocumented changes in said library/framework/...;
- security holes discovered in your own code, of course, which also requires updating, reviewing, re-testing, re-releasing;
- monitoring your stack for misbehaviour, which could indicate a software problem (bug? license expired? SSL key expired?), a hardware problem, a resource problem (disk full?), an attack, or in the case of Twitter, one of your clients (the companies that build ads) misusing your tools and attacking you by accident;
- ... and once the misbehavior is detected, actually investigating and fixing the issue.
Sure, you can hop along for a while without anybody to handle these cases. But how long? Keeping in mind that Twitter is a high-value target for state-sponsored attackers (among others) all over the world, so any weakness will be probed and exploited mercilessly.
If Twitter is failing that easily, these engineers deserve to be laid off
Does your engineering department have a solution to all these problems that does not require human beings? Or are we talking of different things?
Do you have additional information about that you can share (maybe an announcement regarding this made by AWS)?
[1]: https://perspectives.mvdirona.com/2021/11/xen-on-nitro-aws-n...