Американское Национальное агентство по воздухоплаванию и исследованию космического пространства (National Aeronautics and Space Administration, NASA) известно во всем мире. НАСА отвечает за гражданскую космическую программу страны, а также за научные исследования воздушного и космического пространства и научно-технологические исследования в области авиации, воздухоплавания и космонавтики.
В Лаборатории реактивного движения НАСА (Jet Propulsion Laboratory, JPL), которая занимается созданием и обслуживанием беспилотных космических кораблей для НАСА, активно пользуются программным обеспечением с открытым кодом.
По словам Тома Содерстрома, директора по ИТ JPL, открытый код изменил принципы работы с программным обеспечением в лаборатории. «В прежние времена мы пользовались коммерческим ПО, которое нам продавали коммерческие компании. Они контролировали все обновления и изменения», – рассказал Содерстром.
С переходом на открытый код все изменилось. «Вы можете менять его самостоятельно – добавлять функции и улучшать имеющиеся, – продолжил Содерстром. – А еще можно пользоваться платными услугами поддержки. Это отличная бизнес-модель, и нам она нравится».
Но в НАСА пользуются открытым кодом не только ввиду его доступности для изменения. «Мы бы не стали из принципа применять только открытое или только коммерческое ПО, – поясняет Содерстром. – Мы прагматики и пользуемся тем, что нам лучше всего подходит для конкретной задачи».
Применений для открытого кода в JPL нашлось немало – во многих случаях он позволяет ученым и инженерам делать то, что иначе было бы невозможно выполнить.
Открытый код не всегда доступен всем
Считать, что проекты с открытым кодом обязательно должны быть общедоступными, – распространенное заблуждение. Ричард Столлман, создатель Free Software Foundation, лицензии GNU и др., говорил, что организации могут пользоваться моделью свободного ПО (он избегает термина «открытый код») и для внутренних нужд. Если вы не предлагаете свой программный продукт другим, то не обязаны публиковать его исходный код. Таким образом, внутри компаний можно свободно применять модель открытого кода без его публикации и взаимодействия с внешними сообществами.
Именно так поступают в JPL. В лаборатории пользуются моделью разработки Open Source для внутренних нужд.
Открытый код применяется в JPL в том числе в уже идущих исследованиях космоса. Марсоход Curiosity работает на Красной планете на удалении 54 млн километров от Земли, находясь на ручном управлении. Чувствительные инструменты на его борту могут надежно действовать только в определенном температурном режиме, поэтому у операторов на Земле есть лишь весьма ограниченное время, для того чтобы управлять движением марсохода.
Curiosity передает на Землю массу данных, по которым ученые определяют оптимальное время движения. С некоторых пор в JPL работают не так, как раньше, – данные копируются в облако, где информацию обрабатывают аналитические системы с открытым кодом наподобие Elastic Stack. В распоряжении специалистов, отвечающих за управление Curiosity, – миллиарды элементов данных, с которыми можно взаимодействовать, выясняя безопасные пределы, говорит Содерстром: «Благодаря аналитике мы получили возможность значительно увеличить время движения, не внося никаких аппаратных изменений. Мы ведь именно для этого на Марсе – чтобы ездить по нему и изучать планету».
Открытый код помогает инновации
В JPL в качестве репозитория кода используют GitHub Enterprise, который по соображениям безопасности доступен только в пределах США. GitHub позволяет JPL предоставлять доступ к коду тем, кто мог бы воспользоваться им и улучшить его, – так появляются новые функции.
Применение этой модели не ограничивается одним проектом. По словам Содерстрома, таким же образом разрабатывается ПО для следующего марсохода, который планируется отправить на Марс в 2020 году.
В 2015 году НАСА запустило спутник SMAP (Soil Moisture Active Passive) для геологических исследований. Как рассказал Содерстром, еще до запуска во время демонстрации возможностей SMAP один из руководителей JPL спросил инженеров, может ли спутник выполнять функции, уже реализованные раньше для Curiosity. У разработчиков оставалось всего две недели, этого времени не хватило бы для создания нужного кода с нуля. Посовещавшись, инженеры в итоге просто скачали код из репозитория GitHub и доработали всего за несколько дней, благодаря чему требуемые функции появились на SMAP. С тех пор собран уже огромный объем данных, а тот же код на сегодня задействовали уже в десяти различных миссиях.
Таким образом, использование открытого кода – естественная способность стимулировать инновации. Разработчики заражаются энтузиазмом, видя достижения других. «А главное, – отмечает Содерсторм, – нам не нужно платить за время, которое тратят программисты. Они работают для себя, но делятся созданным с другими».
Сотрудничество с внешним миром
Говорить об открытом коде только как о модели разработки ПО было бы неверным. Ту же модель можно применять и в других областях. В США существует проект OpenNotes, в его рамках пациентам и медикам предоставляется доступ к заметкам, которые врачи делают в процессе лечения, но которые не включаются в официальную историю болезни.
Открыты для сотрудничества и в JPL. Так, лаборатория взаимодействует с индийской организацией космических исследований в рамках миссии SAR по спутниковому наблюдению за естественными процессами, происходящими на Земле. Партнеры совместно обрабатывают большой объем открытых данных. «Тут уже речь идет не только о коде», – заметил Содерстром.
JPL не является разработчиком ИТ или программного обеспечения. Задача лаборатории – отправлять планетоходы на Марс, искать «Землю 2.0», обнаруживать астероиды и менять их траектории, выяснять, как появилась Вселенная.
Революция открытого кода
Открытый код изменил представления об инновациях. Глава Red Hat Джим Вайтхерст выразил мнение, что открытый код, в особенности системы машинного обучения и искусственного интеллекта, играет важную роль в четвертой промышленной революции. Сегодня все крупнейшие ИТ-компании, включая Amazon, Microsoft и Google, выпускают свои технологии машинного обучения в открытых кодах.
По словам Содерстрома, если проследить статистику по патентам с 1750-х годов до наших дней, можно увидеть, что патентов на новые технологии становится меньше. «Но ведь у вас нет ощущения, что инноваций становится меньше, – продолжил он. – Напротив, прогресс сегодня идет стремительными темпами. Так в чем же дело? Если посчитать патенты и изобретения, созданные путем объединения различных технологий, то мы увидим, что их число сегодня невероятно велико. И все это – открытый код. Если говорить об Uber или Airbnb, они ничего принципиально нового не изобрели, только придумали новые способы пользоваться тем, что уже имеется. А сколько сейчас стартапов создается, сколько новых имен появляется – инновации поистине безграничны».
Аппаратное обеспечение по принципу Open Source
Open Source – это не только программное обеспечение. Сегодня существует немало недорогого оборудования с открытой конструкцией – Raspberry Pi, Arduino и т. п., которое можно применять для создания прототипов не тратя много денег.
«Сегодня мы легко можем смастерить какую-нибудь “безделушку” и отправить ее в космос, – говорит Содерстром. – Раньше такой возможности не было – устройство должно было быть защищено от излучений и удовлетворять целому ряду требований. Теперь прототипы обходятся настолько дешево, что мы можем купить десяток таких плат и облучать их, пока они не выйдут из строя. Это очень выгодно».
А еще есть 3D-печать, которая переносит преимущества ПО с открытым кодом на оборудование, предоставляя возможность создавать практически что угодно. «Мы активно пользуемся 3D-печатью в лаборатории, – добавляет Содерстром. – У нас масса недорогих 3D-принтеров, и сотрудники могут свободно экспериментировать».
«Мы думаем о том, чтобы отправить на Марс 3D-принтер для распечатки строений. Чтобы можно было взять марсианский грунт, наделать из него кирпичей и построить дом. Когда астронавты прибудут на Марс, их уже будет ждать убежище»
- Том Содерстром, директор по ИТ Лаборатории реактивного движения НАСА
Однажды Curiosity нашел интересный метеорит на Марсе – на камне была ржавчина, что могло быть свидетельством воздействия воды. Марсоход сделал множество снимков образца и передал их на Землю. А один сотрудник JPL предложил распечатать образец на 3D-принтере, благодаря чему в лаборатории появилась точная копия метеорита. «Мы его отдали на время в Смитсоновский музей, но он там так понравился, что его решили забрать насовсем, – говорит Содерстром. – Нет проблем – мы распечатали еще один. Мы даже изготовили уменьшенные копии с брайлевским текстом – теперь дети с нарушениями зрения могут ознакомиться с метеоритом и почитать о нем».
Отныне любой музей может распечатать себе копию метеорита на 3D-принтере. Но это еще не все. В JPL конструируют множество роботов – машин, способных взбираться на высоту, плавать, прыгать и делать многое другое. Их детали изготавливают на недорогих 3D-принтерах. Если какой-то прототип оказался удачным, его отправляют в космос. «Мы думаем отправить на Марс 3D-принтер для распечатки строений, – говорит Содерстром. – Чтобы можно было взять марсианский грунт, наделать из него кирпичей и построить дом. Когда астронавты прибудут на Марс, их уже будет ждать убежище».
***
JPL не является разработчиком ИТ или программного обеспечения. Задача лаборатории – отправлять планетоходы на Марс, искать «Землю 2.0», обнаруживать астероиды и менять их траектории, выяснять, как появилась Вселенная.
«Наше дело – наука и инженерное проектирование, – заключает Содерстром. – Мы хотим, чтобы наши специалисты имели лучшие инструменты и работали в наилучших условиях. Открытый код – отличное подспорье, благодаря которому многое не приходится изобретать заново».
– Swapnil Bhartiya. Open source speeds innovation, plays major role in NASA’s mission. CIO. Jul 11, 2016