Студенты и свободные проекты - опыт Red Hat Identity Management (Александр Боковой, OSEDUCONF-2014) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
(нет различий)
|
Версия 12:46, 15 февраля 2014
Аннотация
- Докладчик
- Александр Боковой
Многие компании сотрудничают с университетами и привлекают студентов для получения практики. Результаты работы практикантов, как правило, используются для защиты курсовых и дипломных работ и редко становятся доступны более широкому обществу. Red Hat сотрудничает с университетами с целью вовлечения студентов в разработку свободных проектов. Важным критерием успешности работы является ее принятие проектом, а не только достижение учебных задач.
Доклад посвящен опыту разработки свободного программного обеспечения в области безопасности и управления инфраструктурой предприятий: FreeIPA, SSSD, Samba, MIT Kerberos, BIND, sudo, 389-ds.
На протяжении нескольких лет группа инфраструктуры предприятий в Red Hat работает со студентами нескольких университетов в Чехии и США. Практиканты заняты разработкой функционала в различных свободных проектах, параллельно защищая свои курсовые и дипломные работы.
В докладе рассматриваются конкретные примеры проектной работы и прослеживается их судьба после окончания дипломных проектов.
Видео
Расширенные тезисы
Компания Red Hat разрабатывает многочисленные продукты на основе свободного программного обеспечения. Инженеры компании работают во многих из 80 офисов в разных странах мира, а также удаленно, из своего дома. Два крупнейших инженерных офиса находятся в Бостоне, США, и Брно, Чехия. В этих городах известные университетские традиции в технологической сфере и естественным является развитие контактов с находящимися в них университетами.
Любая группа внутри Red Hat может организовать стажировку.
Несмотря на то, что стажировка сама по себе не требует обязательно участия университета в программе, сама концепция стажировки предполагает активное взаимодействие с коллегами в офисе, поэтому с университетами в непосредственной близости от офисов разработки формируются наиболее тесные связи.
Результаты стажировки могут быть использованы для написания курсовых и дипломных работ. В связи с тем, что и в США, и в европейских странах используется двухступенчатая система аттестации, то в реальности дипломные работы делятся на бакалаврские и магистерские, но сложность работ зависит скорее от амбициозности проектов, чем от требований учебных организаций.
На сегодняшний момент в программе по работе с университетами принимают участие 12 чешских и словацких университетов в Европе, MIT, Carnegie Mellon University и несколько других университетов в США.
Для координации работы над различными темами между университетами была написана система управления дипломными работами, сама защищенная как дипломная работа. Увидеть ее в действии можно по адресу https://thesis-managementsystem.rhcloud.com/, а исходный текст приложения доступен https://github.com/jcechace/Thesis-management-system.
Так как практически вся разработка программного обеспечения Red Hat ведется в рамках публичных проектов, работу, которую стажёр ведет над проектом, видят все — и внутри компании, и за ее пределами. Стажёр выступает в роли публичного лица, его корреспонденция представлена в архивах почтовых рассылок соответствующих проектов, его предложения оцениваются всеми участниками проекта, в том числе и не из Red Hat, он вынужден втягиваться в динамику самого проекта. В результате, оценка результатов стажировки более объективна, но особых скидок на «стажёрность» никто делать не будет. Безусловным плюсом является тот факт, что после окончания университета бывший стажёр может продемонстрировать результаты своего труда потенциальным работодателям. На данный момент (январь 2014 года) доступно около полусотни вакансий инженерных стажировок, сроком от нескольких месяцев до почти года.
Поскольку один из основных продуктов компании — Red Hat Enterprise Linux — используется для организации инфраструктуры пред- приятий, Red Hat ведет целенаправленную работу по улучшению свободного программного обеспечения в сфере управления ресурсами. В 2007 году был запущен проект FreeIPA, задачей которого стало создание простого и удобного набора средств для развертывания инфраструктурных объектов, управления информацией о пользователях, группах и машинах, разграничению доступа к ним и обеспечения защищенной инфраструктуры для решения бизнес-критических задач. Основой проекта стало объединение существующих стандартизированных сетевых протоколов в единую среду, улучшение средств управления конфигурациями серверных и клиентских компонент, реализующих эти сетевые протоколы и устранение «болевых точек», мешающих совместному использованию этих компонент.
Несмотря на то, что многие из используемых проектов существуют десятилетия, в них всегда можно найти задачи, за которые никто не берется по различным причинам, зачастую — из-за нехватки времени или необходимости координировать взаимодействие с другими свободными проектами. Такие задачи представляют собой идеальную цель для стажировок, как показывает, в том числе, и деятельность в рамках более масштабного проекта Google Summer of Code. В рамках работы над проектами Identity Management за последние несколько лет было проведено более десятка стажировок. Вот некоторые из них.
Автоматическая ротация ключей Kerberos для машин и служб
Проект выполнялся Ондреем Косом из Brno University of Technology. Ондрей написал демон keymonger, работающий на узлах, входящих в область Kerberos, и следящий за временем жизни ключей служб Kerberos, работающих на этих узлах. По достижении срока жизни ключа, keymonger автоматически запрашивает обновление ключа. Таким образом, приложениям не требуется специально заботиться об обороте ключей. Принцип действия взят из существующего демона certmonger, который используется во FreeIPA для ротации сертификатов, которыми подписывают свои данные службы, обменивающиеся информацией с использованием SSL и TLS. К сожалению, работа не была вовремя интегрирована из-за изменений приоритетов. Бакалаврская работа, тем не менее, была успешно защищена. Около полутора лет после защиты работы Ондрей проработал в Red Hat над проектом SSSD, а сейчас продолжает образование и готовится к защите магистерской диссертации в 2015 году.
Учебный курс по использованию библиотеки talloc и документация к библиотеке
Павел Брежина из Masaryk University of Brno выполнил важную работу по документированию библиотеки talloc, активно используе- мой в проектах Samba, FreeIPA, SSSD, realmd и многих других. Эта библиотека реализует иерархический менеджер памяти, эффективный для работы со структурированными сетевыми протоколами. Из-за того, что библиотека является ключевой для работы указанных проектов, понимание ее устройства и способов использования крайне важно для новых разработчиков. Однако, как это часто и бывает, документация была расчитана на тех, кто и так уже пользуется библиотекой.
Павел написал подробную документацию об устройстве библиотеки и хороший с методической точки зрения курс по использованию talloc. В процессе были обнаружены ошибки, которые Павел исправил и успешно интегрировал в Samba — как исправления, так и саму документацию. Полный текст диплома доступен на http://is.muni.cz/th/359290/fi_b/?lang=en, а учебный курс — http://talloc.samba.org/talloc/doc/html/libtalloc__tutorial.html
Сейчас Павел работает в Red Hat разработчиком SSSD.
Тестирование производительности MIT Kerberos
Петр Шпачек разработал набор тестов для оценки производительности MIT Kerberos, в частности, в случае хранения базы данных центра распространения ключей в LDAP. В процессе написания магистерской диссертации Петром были обнаружены некоторые проблемы в производительности MIT Kerberos, о них было сообщено в MIT, они были исправлены. Как результат, Петр успешно защитил свой диплом и работает в Red Hat над драйвером LDAP для сервера DNS, bind-dyndb-ldap, https://fedorahosted.org/bind-dyndb-ldap/.
Управление публичными ключами SSH во FreeIPA
Ян Холаста работал над созданием централизованной системы хранения публичных SSH-ключей для пользователей и машин, ин- тегрированной в систему управления FreeIPA. Для новых машин, добавляемых в домен FreeIPA, ключи SSH автоматически загружаются на сервер FreeIPA и регистрируются в DNS. Пользователи могут добавить дополнительно свои ключи через интерфейсы управления FreeIPA, а при попытке установления сессии по SSH на сервера под управлением FreeIPA происходит верификация публичных ключей этих узлов на основании имеющихся в центральном хранилище.
Публичные ключи пользователей, таким образом, доступны централизованно и могут быть добавлены администраторами (и другими пользователями) на нужные сервера с использованием средств автоматизации.
Работа была интегрирована во FreeIPA версии 3.0 и доступна в RHEL 6.x. Сейчас Ян работает в Red Hat над проектом FreeIPA.
Проксирование Kerberos поверх HTTP(S)
Робби Харвуд из Carnegie Mellon University летом 2013 года работал над реализацией протокола MS-KKDCP, проксирования Kerberos поверх HTTP(S). Робби разобрался со спецификацией MS-KKDCP, который еще не реализован нигде, за исключением Windwos Server 2012, и внес необходимые изменения в MIT Kerberos. Дополнительно он создал прототип самого прокси-сервера, который использует модифицированную версию MIT Kerberos.
Код проекта доступен на GitHub: https://github.com/frozencemetery/krb5 и https://github.com/frozencemetery/krb-proxies. Интеграция в MIT Kerberos запланирована на версию 1.13 и позднее.