Как стать автором
Обновить

Консилиум с Eltex: разработка ПО

Время на прочтение7 мин
Количество просмотров5.6K

Всем доброго времени суток!

В период непростой эпидемиологической ситуации большая часть высших учебных заведений продолжает функционировать в режиме дистанционного или смешанного обучения. Данный процесс отлажен далеко не во всех университетах и вызывает крайне противоречивые отзывы.

Чтобы внести разнообразие в образовательный процесс, а также мотивировать студентов к развитию, со своей стороны мы продолжаем цикл видеоконсилиумов – небольших обзорных и прикладных лекций в виде дискуссии с ведущими экспертами определенной предметной области. Главная цель мероприятия – помочь профессиональному становлению молодого специалиста, что невозможно без концептуального понимания теории и получения практических навыков ее применения.

На сегодняшний день организация бизнес-процессов и технологического конвейера разработки программных и аппаратно-программных решений является сложной комплексной задачей, требующей в решении навыки и умения широкого спектра профессий: от системного и сетевого администратора до разработчика и инженера информационной безопасности.

В рамках данного образовательного консилиума по представленной теме мы вновь решили пригласить одного из ведущих российских разработчиков и производителей телекоммуникационного оборудования – компанию Eltex, реализовавшую автоматизированную производственную линию полного цикла, включающую все технологические этапы производства комплексных программных и аппаратно-программных решений.

Ранее мы уже были в гостях у компании, затрагивали тему технологии беспроводной передачи данных на примере Wi-Fi 6 (IEEE 802.11ax). Нам также удалось не только провести экскурсию по производству, но и застать руководство врасплох вопросами о бэкдорах)

С педагогической точки зрения хотелось бы отметить, что большинство студентов сталкиваются с проблемой концептуального понимания учебного плана и процесса, не в полной мере осознавая суть теории ряда предметов, не понимая их практического применения. Безусловно, в случае возможности желательно параллельно работать по специальности со второго курса, подкреплять теорию практикой и в рамках обучения в университете рассматривать сложные и нетривиальные задачи. Дополнительно всегда стоит концептуально изучать любую систему и сферу целиком, не замыкаясь лишь на малой ее части. И в этом может помочь профессиональный взгляд «изнутри».

Погрузиться на практике в организацию бизнес-процессов и технологического конвейера разработки программных и аппаратно-программных решений мы решили с Артемом Олеговичем Вендерлых - руководителем департамента программной инженерии беспроводных решений предприятия Eltex. Для этого мы записали видеоконсилиум, а также совместно подготовили данную статью)

Кратко о бизнес-процессах

Компания Eltex занимается разработкой и производством широкого спектра телекоммуникационных и сетевых устройств. Под данным термином подразумевается аппаратно-программный продукт, который удовлетворяет потребности рынка и обеспечивает рентабельное функционирование предприятия. Прежде чем новое устройство попадает на рынок, оно проходит множество различных этапов. Совокупность этих этапов составляет основной бизнес-процесс компании по выпуску оборудования, который для каждого этапа определяет критерии его прохождения, а также ответственных участников работ. Ключевую роль в реализации этих процессов играют людские ресурсы. В процессе участвуют 8 лабораторий, а также производственный, коммерческий, конструкторский отдел, отдел документации и сервисный центр, отвечающий за проверку качества выпускаемой продукции. Важно отметить, что за каждым устройством, разрабатываемым в рамках определенного проекта, стоит архитектор - это ключевая роль и связующее звено между всеми участниками процесса.

Основные этапы разработки и производства

Рассмотрим этапы разработки и производства более подробно. Предприятие активно взаимодействует с заказчиками и анализирует ключевые тренды рынка, что позволяет своевременно выпускать конкурентоспособную продукцию отечественного производства. Идея разработки нового устройства формализуется в виде технических требований при участии архитектора и сотрудников коммерческого отдела и сервисного центра. На этапе проработки требований первостепенная цель - конкретизировать ключевые особенности аппаратной и программных частей, а также согласовать дорожную карту развития продукта. На следующем этапе при участии лаборатории Hardware подбирается электронно-компонентная база (ЭКБ), удовлетворяющая поставленным задачам. В качестве примера можно привести выбор центрального процессора: его характеристики должны соответствовать ожидаемой производительности, целевой себестоимости и предельному энергопотреблению. Ключевыми артефактами данного этапа являются принципиальная и структурная схема устройства. На основе этих схем рисуется топология, после чего заказывается плата. Тут важную роль играет отдел снабжения, который взаимодействует с поставщиками ЭКБ и обеспечивает бесперебойную поставку компонентов для производства устройств.

Этап запуска первых опытных образцов устройства обычно называется Bring-Up и характеризуется взаимодействием отдела разработки и лаборатории HW. Для запуска устройства нужен софт - это зона ответственности отдела разработки. За основу софта берется SDK ключевых ЭКБ устройства и готовится первичный софт, именуемый прошивкой, для возможности проверки основных электронных компонентов, таких как: светодиоды, phy, wi-fi радиомодули.

При участии сервисного центра проверяются предельные возможности по производительности и тепловыделению в прототипах корпуса.

После первого этапа и корректировок в схеме заказывается предсерия устройств и готовятся производственные методики.

Одновременно с этим команды разработки и сервисного центра активно работают над софтом для устройства. После чего устройство подходит к этапу массового производства и активных продаж. Жизненный цикл устройства составляет 3-5 лет, и на всём протяжении жизни обеспечивается техподдержка, а также модернизация устройств.

Софт формируется в релизы - это совокупность работ, которые нужно выполнить к определенному сроку. Для этого используется баг трекер, где фиксируются основные задачи. Разработка релиза делится на несколько этапов: планирование, разработка, стабилизация и выпуск релиза, включающий проверки в эксплуатации. На выходе получается прошивка, которая в дальнейшем используется на производстве для выпуска партий устройств. Рассмотрим, из чего состоит типовая прошивка. Роль основной системы устройства играет одна из версий Linux, модернизированное ядро которой обычно идет в составе SDK производителя основных ЭКБ. Для запуска системы используется загрузчик. На каждое устройство и версию ПО соответствующим отделом разрабатывается и обновляется исчерпывающая многоязычная документация. Вся рабочая документация хранится в системах организации и хранения знаний: Confluence, Wiki.

Следует отметить, что для графического управления устройствами используется Web-интерфейс или софтовый контроллер. За разработку этих систем отвечает отдельная лаборатория.

Используемый стек технологий

Разнообразные языки программирования и технологии позволяют предприятию решать широкий диапазон комплексных задач: от написания модуля ядра, разработки высоконагруженных сервисов, развертывания их в Docker с использованием Kubernetes до создания Android/IOS приложений.

Ресурсы аппаратного обеспечения сетевых устройств зачастую ограничены. Эта особенность определяет стек технологий для создания встроенного программного обеспечения. Соответственно, на предприятии Eltex используется язык Си, как основной язык ядра операционной системы Linux. Широко используется С++, в некоторых лабораториях есть опыт написания модулей на Rust.  Для решения узких задач пишутся вставки на ассемблере. В одной из лабораторий для написания высокопроизводительных приложений для телефонии используется язык Erlang. Для отладки кода используются следующие инструменты: отладчики (GDB); средства захвата и анализа сетевого трафика (wireshark); утилиты отладки использования памяти и трассировки системных вызовов (valgrind, strace); статические анализаторы кода (cppcheck, PVS-studio).  Для сборки прошивок разворачивается Jenkins, сборки осуществляются в Docker контейнерах.

Обеспечением качества и поддержкой продуктов в эксплуатации занимается отдельный отдел - сервисный центр. Их главная задача - обеспечить выпуск ПО, удовлетворяющего внутренним критериям качества. Они пишут тесты различного назначения (функциональные, интеграционные) на bash и python. Создают инфраструктуру, обеспечивающую поддержку постоянного уровня качества. На каждом из этапов команда взаимодействует с разработчиками, обеспечивая контроль качества выпускаемого ПО: прорабатываются и выполняются тесты как по отдельным задачам, так и по крупным фичам, разрабатываются стенды и схемы интеграционных проверок, модернизируются старые и пишутся новые тесты. Регулярные автоматические тесты позволяют выявить ошибки на раннем этапе. В зависимости от направления и тестируемого продукта используются различные инструменты. Для автоматизации тестов задействуются следующие инструменты: pytest, selenoid, allure, яндекс танк, ansible. Используемые инструменты для логирования:  graylog, elasticsearch, influxdb, telegraf, prometheus, grafana. Также стоит отметить, что для организации ci-cd применяется gitlab.

Невозможно представить сетевые устройства без сервисов управления и мониторинга. ПО данного типа может быть как в составе железа (WEB-интерфейс), так и распространяться в виде deb-пакетов или Docker контейнеров (контроллерные решения). Для внешних решений используются языки java, kotlin, go, python. При разработке встроенного WEB-интерфейса используются Angular/JS для фронтенда и lua/C++ для бэкенда.

В компании есть группа, которая пишет Andoid/Ios приложения для мобильных устройств на Java и Swift. Эта группа разрабатывает различные вспомогательные приложения для Media приставок, а также для проекта умного дома/офиса.

Заключение

Таким образом, хотелось бы отметить, что разработка  программных и аппаратно-программных решений - это комплексная задача, требующая навыков и умений широкого спектра специалистов. И для профессионального развития в IT-индустрии требуется концептуальное понимание всего технологического конвейера. На примере предприятия Eltex мы кратко осветили бизнес-процессы предприятия и масштаб трудозатрат для организации современной производственной линии, обеспечивающей качество выпускаемой продукции.

Безусловно, без внимания остались и другие не менее интересные вопросы. Но не все сразу!) Подробнее с темой Вы можете ознакомиться в видеоконсилиуме.

Надеемся, материал был интересен и полезен. Если подобный формат понравится студентам и сообществу Хабра, то постараемся и дальше записывать интересные консилиумы.

Теги:
Хабы:
+4
Комментарии9

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн