Не для кого не секрет, что в процессоростроении мы сейчас находимся в позиции догоняющих. На текущий момент в России из перспективных серверных процессоров общего назначения можно выделить только линейку Эльбрус от МЦСТ. Справедливости ради стоит отметить, что Байкал электроникс тоже готовит процессор Байкал-S[5], в продаже его обещают в третьем квартале 2021 г.
Для тех кто не следит за отечественными разработками краткая справка по этим процессорам. Эльбрус - это процессор общего назначения построенной на оригинальной архитектуре с использованием большого командного слова (VLIW)[1]. Актуальными на текущий момент являются процессоры Эльбрус 8С[2] и его доработанный младший брат Эльбрус 8СВ[3]. В ближайшее время обещают пополнение в линейке с дополнительными возможностями (например поддержка виртуализации). В компании Байкал электроникс срезали путь и выпускают Байкал-S на архитектуре ARM, далее его рассматривать я не буду, т.к. он еще не доступен для массового рынка.
И так, фактически, если вам нужен сервер с отечественным процессором, то на данный момент у вас выбор только из одного процессора.
Теперь отвлечемся немного в бок и посмотрим, как сейчас происходит управление рабочими нагрузками. Современные подходы к разработке (такие как микросервисная архитектура, REST и т.п.) требуют и других подходов к управлению рабочими нагрузками. В частности, большое количество экземпляров приложений при микросервисной архитектуре ставит крест на ручном управлении, требуется автоматизация и оркестрация этих самых нагрузок.
Так-же стоит отметить, что микросервисная архитектура принесла и возможность делать гетерогенные среды, т.е. теперь не обязательно писать все сервисы с использованием одного стека технологий.
Сами рабочие нагрузки уже лет 10 как не запускают на голом железе, использование виртуализации стало стандартом "де факто" в любых мало мальски серьезных системах, следовательно, нам требуется и еще система управления виртуальными машинами (не говоря о том, что нам требуется сама виртуализауция).
На чем сейчас пишут приложения? Вот вот с чем мне приходилось работать в своей карьере (в порядке убывания личного рейтинга):
- Java (и другие языки использующие JVM)
- C# (dotnet core)
- Python
- PHP
- Go
- Ruby
- JavaScript (Node.js)
Языки на которых написаны инструменты с которыми мне приходилось работать:
- Go
- Ruby
- Python
- Java
Хочу отметить Rust мне не пришлось еще ковырять вебсервисы написанные на нем, но он явно начинает лезть на поляну, где традиционно правили C/C++, например сейчас даже в ядро Linux его предлагают к использованию как язык написания модулей (драйверов).
Python сейчас занял специфичную нишу связанную с нейронными сетями и анализом данных, с этим тоже нужно считаться, если речь идет о портировании языка на другую архитектуру, нужно обеспечить и работу этих библиотек.
На текущий момент для архитектуры Эльбрус доступны следующие языки программирования:
- Go (gogcc, версии 1.14.2)
- Ruby (версии 2.7.0)
- Python 3.7.4
- PHP 7.4.7
- Java (openjdk версии 8 и 11)
- C# (Mono JIT compiler версии 5.16.0.220)
- Perl 5 (версии 30)
- JavaScript (Node v7.8.0)
- Lua 5.1.5 и LuaJIT 2.1.0-beta3
- С/С++/Fortran (через lcc 1.25.14 совместимым с GCC версии 7.3.0)
Операционные системы доступные для архитектуры процессоров Эльбрус:
- ОС Эльбрус (АО МЦСТ)
- Эльбрус-Д (АО МЦСТ, но про него не слышно ничего, предоставляется по запросу на фирменном бланке(!))
- Альт линукс (СПО Базальт)
- Astra linux (ООО «РусБИТех-Астра»)
Версии программного обеспечения я проверял по
Из инфраструктурного программного обеспечения (по заявлениям сотрудников АО МЦСТ) имеется:
-
Контейнерная виртуализация на базе LXC
-
Docker / Kubernetes (в стадии тестирования)
-
PostgreSQL (Postgres Pro 11.5)
-
Greenplum (6.8.0-1)
-
Redis (5.0)
-
ClickHouse (19.11.4.24)
-
ElasticSearch (6.8.1)
-
Apache Kafka (2.11-2.3.0)
-
RabbitMQ (3.8.3)
-
Celery (4.3.0)
-
Apache Airflow (1.10.11)
У читателя может возникнуть резонный вопрос, какой кубернетес, какие докеры в государственных структурах, в которые, в первую очередь, начнут поставлять оборудование с отечественными процессорами? А вот тут вы не правы, конечно, если взять какой нибудь райцентр, то там про такое не слышали, но на федеральном уровне все технологии и языки программирования уже давно во всю применяются.
[1] [Эльбрус (процессорная архитектура)](https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81_(%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BD%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0)
[2] Описание процессора Эльблус-8с
[3] Описание процессора Эльблус-8св
[4] Презентация К. Трукшина о перспективах процессоров Эльбрус