Интересная серия постов в блоге StackOverflow про разработку софта в SpaceX — для управления ракетами, спутниками Starlink и всякими внутренними процессами, типа цепочек поставок и сборки аппаратов на конвейерах. Статьи в популярном стиле, технических подробностей не слишком много, но всё равно интересно.
Самые ответственные части пишутся, конечно, на C++ — например, ПО, которое работает непосредственно на ракетах и спутниках, потому что там нужно быстро реагировать и принимать решения. Но в местах, где производительность не критична, а также для прототипирования, используется Python. Ещё используются PostgreSQL, Docker, Kubernetes, Angular. Раньше было много чего на MS стэке — SQL Server, ASP.NET и прочее, но от этого решили отказаться в пользу открытых продуктов.
Что примечательно — много проверок, тестов, запариваются на стабильности критичного софта. Программы никогда не должны падать, а если случилась ошибка, то она должна быть локализована, например, ошибка в системе навигации не должна сказаться на системе жизнеобеспечения экипажа. Для тестов у них есть стенд, который пытается максимально точно повторять железо внутри ракеты, этот стенд используется для тестов в CI. Там нет двигателей, но, например, есть сиденья для экипажа, и их можно программно перемещать. Подозреваю, что они постоянно двигаются.
Забавно, что чуваки запускают аппараты в космос, а технологический стэк плюс-минус такой же, как и у нас, простых смертных.
https://stackoverflow.blog/tag/software-in-space/
Post #269
521