Анализ падения Амазона

Ама­зо­нов­цы опуб­ли­ко­ва­ли тех­ни­че­ский раз­бор при­чин недав­не­го паде­ния AWS. То, что вино­ват был DNS, уже было извест­но, но лич­но мне было любо­пыт­но понять — что же имен­но они смог­ли сло­мать в систе­ме, кото­рая, по идее, долж­на быть одной из самых про­стых и надёж­ных в инфра­струк­ту­ре интер­не­та?

Ока­за­лось, в их реа­ли­за­ции DNS скры­вал­ся ранее неза­ме­чен­ный баг, при­вед­ший к клас­си­че­ской race condition — ситу­а­ции, когда несколь­ко про­цес­сов или нитей про­цес­са одно­вре­мен­но пыта­ют­ся полу­чить доступ к обще­му ресур­су и в ито­ге меша­ют друг дру­гу. Такое состя­за­ние закан­чи­ва­ет­ся тем, что ресурс «зали­па­ет», а вся систе­ма рушит­ся, как кар­точ­ный домик.

При­знать­ся, изна­чаль­но у меня было подо­зре­ние на на чело­ве­че­ский фак­тор — дума­лось, что какой-нибудь неопыт­ный сисад­мин дёр­нул не за ту руч­ку, посо­ве­то­вав­шись с ИИ, но не спро­сив стар­ших това­ри­щей. Такое быва­ет, и мне тоже дово­ди­лось такое устра­и­вать. Но, как выяс­ни­лось, всё ока­за­лось куда глЫб­же.

Боль­ше все­го впе­чат­лил мас­штаб тре­ша, уга­ра, и бед­ла­ма с содо­ми­ей, вызван­ных сбо­ем. Лег­ла такая туча сер­ви­сов, что толь­ко успе­вай пам­пер­сы менять. Наши систе­мы, к сча­стью, напря­мую не постра­да­ли — но один из наших вен­до­ров ощу­тил послед­ствия спол­на.

Хочет­ся верить, что в Amazon извле­кут из это­го инци­ден­та пра­виль­ные уро­ки — ведь даже гиган­там вре­мя от вре­ме­ни полез­но вспом­нить, что совер­шен­ство инфра­струк­ту­ры не отме­ня­ет зако­нов веро­ят­но­сти и чело­ве­че­ской при­ро­ды.