Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Уникальная игра, объединяющая популярные механики Match3 и пошаговые бои!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
NetIntel
NetIntel
1 месяц назад
Лига программистов

Языки программирования на все случаи жизни. Часть 1⁠⁠

В программировании существует десятки разных направлений, языков ещё больше, около 9000. Эта статья будет интересна для тех, кто только-только начинает свой путь разработчика или же для тех, кому просто интересно. К языку будут прилагаться библиотеки и фреймворки, которые нужны для обсуждаемых направлений (например, django для python в бэкэнде). В статье будут не только языки программирования, но суть от этого не меняется.

Направления и языки

Web-разработка

В web-разработке есть 2 основных поднаправления: Backend и frontend. Frontend это клиентская часть сайта, её видит пользователь и она отправляется клиенту с сервера в браузер. Backend это логическая часть сайта, она работает на сервере и делает всё, что пользователь не видит, например, обрабатывает платежи и т.д.

Frontend

Frontend это клиентская часть веба. Она отвечает за визуал сайта. Всё то, что видит и слышит пользователь на сайте - дело рук фронтендера. Браузер делает http(s) запрос на сервер, он получает HTML-страницу (и CSS с Javascript) и отрисовывает страницу. Ответ сервера может содержать: HTML-документ; данные, встроенные в HTML; ссылки на статические файлы (CSS, JS, изображения); JSON/XML/другие данные (если это API запрос).

И так, языки для frontend разработки:

  • HTML и CSS: Это не опционально. HTML обязателен, а без CSS сайт может работать, но вряд ли он будет красивым. Их нельзя назвать языком программирования, но пусть будут. Фреймворки и библиотеки для CSS:

    • Tailwind CSS: Utility-first CSS фреймворк, то есть разработчик использует набор предопределённых классов, каждый из которых имеет некоторое количество стилей. Очень гибкий и мощный.

    • Bootstrap: Самый популярный. Предоставляет адаптивную сетку, компоненты (кнопки, навигация, карточки и т.д.), JS-плагины.

    • Sass / SCSS: Препроцессор CSS, который расширяет возможности стандартного CSS, добавляя функциональность, такую как переменные, вложенность, миксины и многое другое.

  • JavaScript (JS): Двигатель для визуала сайта. Он добавляет интерактивность и динамическое поведение на веб-страницы. Фреймворки и библиотеки для JS:

    • React: Библиотека от Meta. Позволяет создавать компоненты. Упрощает разработку.

    • Vue.js / Vue 3: Модульная структура. Относительно простой фреймворк.

    • Angular: Полноценный MVC-фреймворк от Google. Работает на TypeScript. Хорошо подходит для крупных корпоративных приложений. Включает в себя маршрутизацию, формы, HTTP-клиент и т.д.

    • Svelte: Очень быстрый и лёгкий. Отлично подходит для микросервисов.

    • TypeScript: Надмножество Javascript. Статическая типизация.

Backend

Backend это серверная часть веба. Обработка платежей, регистрация пользователей и всё то, что не видит клиент, делается тут.

  • Node.js: Это среда выполнения JavaScripts, которая позволяет использовать JavaScript для разработки серверной части. Фреймворки и библиотеки для Node.js:

    • Expess.js: Самый популярный и гибкий фреймворк, часто используемый в качестве основы для многих Node.js проектов. Он обеспечивает минимальный базовый набор функций для создания веб-приложений и API.

    • NestJS: Фреймворк, ориентированный на создание масштабируемых серверных приложений. Он использует модульную архитектуру, поддерживает TypeScript и предоставляет встроенные решения для валидации, маршрутизации, аутентификации и авторизации.

    • Fastify: Фреймворк, ориентированный на максимальную производительность и низкое потребление ресурсов, что делает его подходящим для высоконагруженных приложений.

  • Python: Этот язык многофункционален и его можно использовать в бэкэнде. Фреймворки и библиотеки для Python:

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

    • Flask: Микрофреймворк, гибкий и легкий, подходит для небольших и средних проектов, а также для создания API.

    • FastAPI: Современный, быстрый фреймворк, ориентированный на создание API.

  • Java: Java доминирует в банках, финансовых платформах и крупных онлайн-сервисах (например, LinkedIn, Netflix, Amazon частично используют Java). В большинстве случаев используется Spring. Фреймворки и библиотеки для Java:

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

  • C#: C# популярен в компаниях, работающих на Windows-инфраструктуре, особенно в Европе и США: от страховых компаний до госпорталов. Фреймворки и библиотеки для C#:

    • ASP.NET: Основной фреймворк C#. ASP.NET Core предоставляет широкий набор инструментов для создания веб-сайтов, API и других веб-сервисов.

    • Entity Framework Core: ORM (Object-Relational Mapping) фреймворк, который упрощает работу с базами данных. Позволяет работать с базами данных, используя объекты C# вместо SQL запросов.

    • Blazor: Фреймворк для создания интерактивных веб-интерфейсов, работающий как на стороне клиента (в браузере), так и на стороне сервера.

  • Go: Высокая производительность и простота. Фреймворки и библиотеки для Go:

    • Gin: Известен своей высокой производительностью и легкостью использования. Идеален для создания API и веб-приложений, требующих быстрой обработки запросов.

    • Echo: Легкий и быстрый фреймворк, ориентированный на производительность и простоту использования. Отлично подходит для создания API и веб-сервисов.

  • PHP: Классика веба. Фреймворки и библиотеки для PHP:

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

  • Ruby: Лаконичный и удобный. Фреймворки и библиотеки для Ruby:

    • Ruby on Rails (RoR): Самый популярный фреймворк, известный своей структурой MVC, удобством разработки и возможностями для создания масштабируемых веб-приложений. Он предоставляет готовые решения для работы с базами данных, маршрутизацией, представлением и многим другим, что значительно ускоряет процесс разработки.

  • Базы данных: Будучи backend разработчиком вам придётся работать с базами данных.

    • PostgreSQL: Гибкая система управления реляционными базами данных (СУБД). Удобно хранить геопространственные данные.

    • MySQL: Одна из самых популярных. Открытый исходный код. MySQL имеет меньше поддержки стандартов SQL, чем PostgreSQL.

    • SQLite: Лёгкая, встраиваемая система управления базами данных. SQLite не требует отдельного сервера, база данных хранится в одном файле на диске. Не предназначен для многопользовательского доступа с высокой конкуренцией. Для локального хранения.

    • MongoDB: Нереляционная (NoSQL) документо-ориентированная система управления базами данных, которая предназначена для хранения, обработки и масштабирования больших объёмов неструктурированных или полуструктурированных данных. MongoDB хранит данные в формате BSON (Binary JSON).

    • Redis (REmote DIctionary Server): Redis хранит данные в оперативной памяти, что обеспечивает очень быструю обработку запросов. Данные хранятся в парах "ключ-значение", что упрощает доступ к информации.

  • Docker / CI/CD / Nginx/Apache: Полезные вещи для бэкенда.

Системное программирование

Системное программирование - Разработка программного обеспечения, которое взаимодействует напрямую с железом. Это низкоуровневое программирование, где важна производительность и эффективность управления ресурсами. Системные программисты разрабатывают ОС, драйверы, компиляторы, виртуальные машины и антивирусы.

  • C: Фундамент всех ОС и системного ПО. Работает напрямую с памятью. Ядро Unix/Linux написано на C. Даёт полный контроль над памятью, но требует ручного управления памятью. Почти нет абстракции.

  • C++: Мощнее C, добавляет ООП, используется в движках и ядрах.

  • Rust: Безопасная альтернатива C / C++ без утечек памяти.

  • Assembly: Пишется для конкретного процессора (x86, ARM, RISC-V). Почти напрямую управляет CPU, регистрами, стеком.

Мобильная разработка

Создание приложений для смартфонов, планшетов и носимых устройств. Тут есть 3 поднаправления: нативные мобильные приложения; гибридные (на web-технологиях); кроссплатформенные.

Нативная разработка

Это создание мобильных приложений под конкретную операционную систему.

  • Kotlin: Разработка под android. Ститачески типизированный язык программирования, разработанный компанией JetBrains. Безопасен от NullPointerException. Выразительный синтаксис. Возможность интеграции с кодом на java.

    • Android studio: IDE специально для создания приложений под android.

    • Jetpack Compose: Упрощает и ускоряет процесс разработки интерфейсов за счёт меньшего объёма кода, мощных инструментов и интуитивно понятного кода. Использует kotlin для создания UI.

    • XML (eXtensible Markup Language): Язык разметки для хранения и передачи данных.

  • Swift: Разработка под IOS. Современный и безопасный.

    • Xcode: IDE для разработки под IOS.

    • UIKit: Предоставляет разработчикам набор элементов управления, такие как кнопки, метки, текстовые поля, а также возможности для обработки касаний и жестов, обеспечивая интуитивно понятное взаимодействие с пользователем.

    • SwiftUI: Декларативный UI-фреймворк от Apple.

Кроссплатформенная разработка

Один код работает и на android, и на IOS.

  • Flutter: Кроссплатформенный SDK от Google для создания красивых, нативных приложений для мобильных устройств. Быстрый рендеринг. Кастомный UI.

    • Dart: Основной язык для flutter. Простой синтаксис. Высокая производительность. Богатый набор библиотек.

  • React Native: Использует один и тот же код JavaScript для iOS и android. Основное преимущество React Native это возможность создавать приложения для iOS и Android, используя общий код на JavaScript.

  • Kotlin Multiplatform Mobile (KMM): Код пишется на kotlin и компилируется на обе ОС. UI пишется отдельно, но бизнес логика общая.

Гибридные и web-приложения

Такие приложения сочетают в себе элементы нативных и веб-приложений. Работают как web-приложения внутри обёртки. По своей сути, это веб-приложения (обычно написанные с использованием HTML, CSS и JavaScript), "упакованные" в специальную нативную оболочку (часто называемую WebView).

  • Ionic: Фреймворк для разработки гибридных кроссплатформенных мобильных приложений.

  • WebView Multiplatform Mobile: Кроссплатформенная библиотека для встраивания веб-контента в приложения для Android и iOS.

  • Xamarin WebView: Фреймворк для разработки кросс-платформенных мобильных приложений, предоставляет доступ к WebView для отображения веб-содержимого.

  • Tauri: Фреймворк для создания десктопных приложений с использованием веб-технологий. Во второй версии можно делать мобильные приложения. Написан на сложном rust.

Data Science / Аналитика данных

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

  • Python: Де-факто стандарт в data science. Прост в изучении. Огромное сообщество. Богатейшая экосистема библиотек. Библиотеки для python, которые нужно знать аналитику данных:

    • NumPy: Для работы с многомерными массивами и матрицами. Линейная алгебра.

    • Pandas: Предоставляет мощные структуры данных.

    • Polars: Современная, очень быстрая альтернатива pandas. Оптимизированная для работы с большими наборами данных.

    • Matplotlib / Seaborn: Визуализация данных.

    • Scikit-learnt + keras: Машинное обучение. Прогноз данных.

    • Jupyter: Интерактивный блокнот для работы с кодом.

  • R: Язык специально для статистики. Имеет невероятно богатый набор пакетов для статистического анализа, визуализации.

  • SQL: Необходим любому специалисту по данным. Для хранения данных.

  • Scala: JVM-язык, сочетающий объектно-ориентированную и функциональную парадигмы. Основной язык для Apache Spark.

  • Julia: Создан специально для высокопроизводительных научных вычислений. Синтаксис похож на Python / MATLAB.

Машинное обучение и ML-инженеринг

ML-инженеринг (MLOps) - Инженерная дисциплина, которая фокусируется на машинном обучении. В отличие от Data Science, где основное внимание уделяется исследованию данных и построению моделей, ML-инженеринг охватывает весь жизненный цикл AI-продукта. Построение моделей, нейросетей, прогнозирование. Это инженерная часть Data Science, фокусирующаяся на промышленной эксплуатации. ML-инженеру нужно также знать математику на высоком уровне.

  • Python: Часто этот язык является лишь высокоуровневым интерфейсом, а фреймворки написаны на C++. Если бы модели обучались только на python, это было бы слишком медленно. Фреймворки и библиотеки python:

    • TensorFlow: Открытая библиотека машинного обучения. Предназначена для построения и обучения моделей машинного и глубокого обучения.

    • MLflow: Платформа с открытым исходным кодом для управления жизненным циклом машинного обучения.

    • Kubeflow: Набор инструментов для развертывания ML-воркфлоу на Kubernetes (использует Python для определения пайплайнов).

Научные и инженерные расчёты

Математика, физика, симуляции.

  • Python: Отлично подходит для научных вычислений. Простота изучения, огромное сообщество, богатейшая экосистема научных библиотек, отличная интеграция с другими языками и инструментами, поддержка всех этапов работы (прототипирование, анализ, визуализация, развертывание). Фреймворки и библиотеки python:

    • NumPy

    • SciPy: Построен на NumPy. Реализация алгоритмов: оптимизация, интегрирование, интерполяция, специальные функции, обработка сигналов/изображений, статистика, дифференциальные уравнения.

    • SumPy: Компьютерная алгебра.

    • Matplotlib: Гибкая и мощная библиотека для создания статических, анимированных и интерактивных 2D/3D графиков.

    • Mayavi, PyVista: Визуализация 3D данных и научных расчетов.

  • MATLAB: Специально для численных вычислений. Широко используется в инженерии (особенно в вузах и промышленности). Платный. Интуитивный ситнаксис.

  • Fortran: Непревзойденная производительность для задач с плотными численными расчетами (физика, механика жидкостей, метеорология, квантовая химия, вычислительная астрофизика). Отличная поддержка многомерных массивов и операций над ними (включая срезы).

  • Julia: Быстро набирает популярность в научных вычислениях.

  • C / C++: Абсолютный контроль над аппаратурой и памятью.

GameDev

Создание игр от мобильных до AAA. 2D и 3D. VR/AR.

  • C++ / Blueprints

    • Unreal Engine: Движок для больших и AAA игр. Красивая графика. Подходит для крупных игр с проработанными механиками и игр с упором на графику. Для мощного железа. На нём даже фильмы снимают. Чтобы делать игры на нём, нужно быть профессионалом.

  • C#

    • Unity: Подходит для большинства игр. Часто используется дли инди проектов. Большое сообщество и много ассетов. Много полезных функций. Для VR/AR хорошо подходит.

  • Godot: Поддерживает некоторые языки программирования, такие как C# и C++, есть собственный язык GDScripts. Активно развивается. Открытый, лёгкий, отлично подходит для 2D игр. Хороший выбор для новичков.

  • Phaser (JS): HTML5-движок для 2D игр в браузере. Прост и быстр в освоении. Идеален для веб-игр.

  • Lua: Скрипты в играх (Roblox, WoW и тд). Очень простой язык. Тоже вариант.

DevOps

DevOps (Development + Operation) - Подход к разработке ПО, объеденяющий разработчиков и IT-специалистов по эксплуатации с целью: ускорить релизы; повысить стабильность и безопасность; автоматизировать всё, что можно. В основных задачах у девопсера это CI/CD (непрерывная интеграция и доставка), контейнеризация, оркестрация контейнеров, автоматизации инфраструктуры, мониторинг и логирование.

  • Linux: Каждому девопсеру нужно знать linux. Linux это основная платформа для управления серверами, развёртывания приложений и автоматизации процессов в DevOps.

  • Bash: Для автоматизации. Скрипты. CI/CD. Bash-скрипты позволяют автоматизировать повторяющиеся задачи, экономя время и ресурсы.

  • Python: Python подходит для разных задач, включая написание сценариев, определение инфраструктуры в виде кода, создание конвейеров CI и CD, упрощение мониторинга и разработку пользовательских решений. Python работает с API многих облачных сервисов, таких как AWS, Google Cloud и Azure, что делает его незаменимым для облачной инфраструктуры.

  • Go: Создание собственных CLI-инструментов. Go позволяет разрабатывать и поддерживать собственные инструменты для автоматизации CI/CD, мониторинга, оркестрации. Многие популярные DevOps-инструменты написаны на Go, например Kubernetes, Docker, Terraform, Prometheus. Умение читать и писать на Go помогает лучше понимать и изменять их код.

  • YAML: Конфигурации Kubernetes, Ansible, Github Actions.

  • Groovy: Скрипты для Jenkins.

  • Docker: Контейнеризация.

  • Kubernetes: Оркестрация контейнеров. Автоматическое масштабирование. Балансировка нагрузки и управление состоянием контейнеров.

  • Jenkins: Инструмент для автоматизации процессов непрерывной интеграции (CI) и непрерывной доставки (CD) в DevOps. Он помогает разработчикам быстрее и эффективнее интегрировать изменения в код, находить и исправлять ошибки на ранних этапах, а также автоматизировать рутинные задачи.

  • Prometheus и Grafana: Мониторинг облачных приложений и сервисов.

Cloude

Cloud Developer - Специалист, чья работа сосредоточена на облачных платформах и сервисах. В отличие от традиционных разработчиков, он оперирует ресурсами (вычислительными мощностями, хранилищами, сетями), предоставляемыми по запросу через интернет, а не управляет локальными серверами напрямую. Разработчик облачных решений отвечает за проектирование, разработку, развертывание, масштабирование и поддержку приложений, сервисов и инфраструктуры, непосредственно работающих в облачной среде.

  • Amazon Web Services (AWS): Самая популярная облачная платформа, предоставляющая широкий набор сервисов для вычислений, хранения данных, аналитики, машинного обучения и многого другого.

  • Microsoft Azure: Облачная платформа от Microsoft. Популярная в корпоративном сегменте.

  • Google Cloude Platform (GCP): Облачная платформа от Google.

  • IBM Cloude: Платформа с акцентом на корпоративные решения, блокчейн и AI.

  • Oracle Cloude: Облачные решения от Oracle. Для крупного бизнеса и с фокусом на базы данных.

Для взаимодействия с облачными API, автоматизации задач инфраструктуры (IaC), написания скриптов развертывания и непосредственно разработки облачных приложений и сервисов разработчики облака активно используют языки программирования, такие как:

  • Python: Универсальность, богатые SDK для облаков.

  • Go (Golang): Высокая производительность, популярен для инструментов Cloud Native.

  • JavaScript / TypeScript: Фронтенд и бэкенд, серверные среды типа Node.js.

  • Java: Традиционно силен в корпоративной среде, особенно с Azure/IBM.

  • C#: Ключевой язык для экосистемы Microsoft Azure.

  • Ruby: Менее распространен, но используется, например, в DevOps инструментах.

Кибербезопасность

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

Основные направления кибербезопасности:

  • Сетевая безопасность: Защита инфраструктуры от атак (DDoS, MITM, эксплойты).

  • Информационная безопасность: Шифрование данных, контроль доступа, защита от утечек.

  • AppSec (безопасность приложений): Анализ кода, защита веб- и мобильных приложений.

  • Криптография: Разработка и взлом алгоритмов шифрования.

  • SOC & Мониторинг: Обнаружение и реагирование на инциденты в реальном времени.

  • Пентестинг и Red Teaming: Имитация атак для поиска уязвимостей.

Операционные системы для тестирования:

  • Kali Linux: Основной дистрибутив для пентеста.

  • Parrot OS: Альтернатива Kali с акцентом на анонимность.

  • BlackArch: Расширенный набор инструментов для хакеров.

Инструменты анализа и атаки:

  • Сканирование сетей: Nmap, Wireshark, Masscan

  • Взлом паролей: Hashcat, John the Ripper, Hydra

  • Эксплуатация уязвимостей: Metasploit, Burp Suite, SQLmap

  • Социальная инженерия: SET (Social-Engineer Toolkit), Maltego

Языки программирования:

  • Python: Автоматизация, скрипты для анализа угроз.

  • Bash/PowerShell: Администрирование, анализ логов.

  • C/C++: Разработка эксплойтов, анализ вредоносного ПО.

  • Go: Сетевые инструменты, быстрое создание утилит.

IoT и встаиваемые системы

Встраиваемые системы - Специализированные компьютеры, встроенные прямо в устройство, которым они управляют. Их задача это выполнять конкретные функции (управление двигателем, сбор данных с датчика и т.д.).

IoT (Internet of Things) - Когда такие встраиваемые системы получают возможность связываться друг с другом и с интернетом.

С чем должен уметь работать инженер IoT:

  • Микроконтроллеры (MCU)

  • Микропроцессоры (MPU)

  • Датчики: Температура, влажность, движение (акселерометр/гироскоп), свет, давление, газ, GPS и т.д.

  • Интерфейсы связи

Языки программирования:

  • C: Прямой доступ к железу, минимальные накладки.

  • C++: Набирает силу для сложных задач с ООП, где ресурсы позволяют.

  • Python: Для прототипирования, инструментов, мощных MPU (Raspberry Pi) и обработки данных на сервере / шлюзе.

  • Rust: Новый, но перспективный. Безопасность памяти + производительность как у C/C++. Начинают использовать в ядре Linux.

  • Assembler: Для самых критичных кусков кода или когда ресурсов очень мало.

ОС:

  • Без ОС (Bare Metal): Код работает напрямую на процессоре. Максимум контроля, минимум накладок.

  • RTOS (Real-Time OS): FreeRTOS (самый популярный), Zephyr (набирает ход, современный), ThreadX, VxWorks (для высоконадежных систем). Гарантируют времена реакции.

  • Linux: Для мощных MPU (Raspberry Pi, BeagleBone). Yocto Project/Buildroot — для сборки кастомных образов.

Блокчейн и Web3

Блокчейн - По сути, это распределенная база данных (цифровой реестр), где записи ("блоки") связаны в цепочку криптографически. Данные хранятся не на одном сервере у корпорации, а у тысяч участников сети

Web3 - Идея следующего поколения интернета поверх блокчейна. Суть такова, пользователь владеет своими данными, цифровыми активами (NFT, токены) и участвует в управлении сервисами. Вместо обычных платформ децентрализованные приложения (dApps).

ЯП:

  • Solidity: АБСОЛЮТНЫЙ мастхев для Ethereum и EVM-сетей (Polygon, BSC и т.д.). Похож на JavaScript, но со спецификой.

  • Rust: Доминирует в Solana, Near, Polkadot (Substrate), всё чаще пишут смарт-контракты и на нем. Сложнее, но мощнее.

  • Vyper (для Ethereum): Альтернатива Solidity, фокус на безопасность и читаемость (синтаксис ближе к Python).

  • Go: Для разработки нод (клиентов блокчейна), утилит.

Desktop

Десктоп-разработка - Создание приложений, которые работают напрямую на ОС пользователя. В отличие от веба или мобилок, тут есть прямой доступ к железу, файловой системе и нативным API. Мощь, контроль, но и ответственность за стабильность.

Стек:

  1. Нативные технологии:

    • Windows (C# / .NET):

      • Языки: C#, C++/CLI

      • Фреймворки: WPF (XAML + C#), Wndows Forms

    • macOS:

      • Языки: Swift, Objective-C

      • Фреймворки: SwiftUI (новинка), AppKit (старая школа)

    • Linux:

      • Языки: C++, C, Python, Rust

      • Фреймворки: GTK (GNOME), Qt (KDE, кроссплатформенно), wxWidgets

  2. . Кроссплатформенные фреймворки:

    • Electron: JavaScript + Chromium + Node.js. Плюсы: Пишешь как веб-приложение (HTML/CSS/JS). Минусы: Жрет память как не в себя.

    • Qt (C++): Мощь, скорость, зрелость. Используют в AutoCAD, Tesla. Поддержка 3D, сетей, БД.

    • Avalonia (.NET): Кроссплатформенный аналог WPF. Пишешь на C# — работает на Windows/macOS/Linux.

    • Flutter (Dart): Добрался до десктопа. Пока сыроват, но трендовый.

    • Tauri (Rust): Альтернатива Electron. Бекенд на Rust, фронт - любая веб-технология. Размер приложения ~10 МБ вместо 150 МБ у Electron.

Разработка корпоративных решений (Enterprise)

Erprise-разработка - Создание софта для крупного бизнеса: банки, страховые, логистика, ритейл, госсектор. Системы обрабатывают миллионы транзакций, хранят терабайты данных и должны работать 24/7.

ЯП:

  • Java (Spring Boot, Jakarta EE, Quarkus): Король корпов.

  • C# (.NET Core ASP.NET): Популярен в банках и госсекторе.

  • Python (Django, FastAPI): Для аналитики, скриптов.

  • ESB: Apache Camel, MuleSoft, IBM Integration Bus.

  • API Gateway: Kong, Apigee, AWS API Gateway.

  • Очереди: Apache Kafka (лидер), RabbitMQ, IBM MQ, Azure Service Bus.

  • Стандарты: REST/JSON (модерн), SOAP/XML (легаси), gRPC (микросервисы).

  • SQL: Oracle DB, Microsoft SQL Server, PostgreSQL, IBM Db2. Транзакции, ACID, отчетность.

  • NoSQL: MongoDB (документы), Cassandra (высокая нагрузка), Redis (кэш/очереди).

  • Аналитика: Snowflake, Amazon Redshift, Apache Druid.

Финтех

FinTech (Financial Technology) - Область, в которой пишут технологии для финансов. Например, финтехи пишут платёжные системы, необанки, аналитику и бюджетирование, кридитные платформы, алготрейдинг, B2B-решения. Финтех разработчик занимается разработкой: бизопасных API и клиентских приложений; обработкой денежных транзакций, комиссий, волют; реализацией сложных бизнес-правил.

Стек:

  • Java: Часто используется.

  • Kotlin: Современная альтернатива Java.

  • Go: Высокая производительность, минимализм.

  • Python: Быстрая разработка, аналитика. Скоринг.

  • C#: Банковский и страховой сектор.

  • Rust: Безопасность и производительность.

Если понравилась статья - рекомендую подписаться на телеграм‑канал NetIntel. Там вы сможете найти множество полезных материалов по IT и разработке!

Показать полностью
[моё] Программирование IT Стек Разработка Языки программирования Web-программирование Backend Frontend Python Linux Windows Программист Программа Автоматизация Приложение Google Текст Длиннопост
3
13
DmitriitheFals
1 месяц назад
Лига Сисадминов
Серия Кудахтеры: захоронение данных

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 3 – цифры и предварительные итоги⁠⁠

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 3 – цифры и предварительные итоги

Для лиги лени: ничего нового, просто запускал DiskSPD. Но вышла фигня.

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

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 1 - общая

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 2 - виртуализация

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 3 – цифры и предварительные итоги

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 4 - ребилд и прочие ситуации «ой пропали диски».

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 5 – другие варианты виртуализации

Диски

При покупке дисков «под тесты» у нас были разные проблемы

1. Максимальное число дисков.
На сервере, выбранном под тесты, (какая-то достаточно старая Supermicro 2U, материнскую плату попозже посмотрю) можно было поставить всего 6 NVME дисков. Это лучше, чем у меня было в 2021 году, тогда на сервере было всего по два слота на панели под NVME, остальные SAS. Или же было всего 4, то есть по 2 на сокет? Не помню.

На новых серверах, скорее всего это будут Supermicro Hyper SuperServer SYS-221H-TN24R, заявлено 24 front hot-swap 2.5" NVMe*/SAS*/SATA* drive bays.  Надо будет еще раз посмотреть и посчитать, стоит ли оно того.

Ирония ситуации в том, что, может быть, нам больше 150-200k IOPS блоком 4k и не надо, а с этим справится и младшая Huawei Dorado 5000 v6, даже не v7. Которых (v7) то даже нам пока не поставляют. Пока писалась статья, может уже и стали поставлять, давно не спрашивал.

2. Огромное число вариантов тестов, комбинаторный взрыв.

Настройки BIOS, варианты прошивок, настройки OS, настройки тестов. Все вместе, порой, вызывает больше вопросов, чем дает ответов.

3. RAID и новый вариант проблемы Read–modify–write

Когда-то давно все диски были с разметкой 512 (иногда 520), и проблемы с тем, что блок меньшего размера пишется в страйп большего размера, были не так значимы. Была проблема с выравнивание разделов, но ее решили (starting offset  - Disk performance may be slower than expected when you use multiple disks)

Зато теперь есть проблема с Write amplification.
Теперь же оптимизация 512-4096-512 плюс файловая система может дать, в кривых руках (например, моих), Raid write penalty не 4, как положено по написанному в середене нулевых калькулятору, а x4x4, то есть x16.

4. Прочие не заданные вопросы.
Почему не Linstor? Потому что Linstor, прежде всего, нужно долго тестировать в разных сценариях поверх дисков. Это на всяких SMM помойках в зоне ру пишут «мы запустили русский HGUI к Linstor, аналоговнет» - но нам работать надо, причем в сценариях, когда отказать может не один диск, и даже не один сервер, а стойка целиком. На метрокластер фирма пока не заработала, хотя уже приценивается. Отсюда обязательные требования по MPIO, причем не с переключением за 2 минуты, и отработка сценариев отказов. Что там у Linstor с MPIO?
FC в топку, Cisco Nesux, особенно с Fabric Extenders  (FEX) – на помойку, глючное под нагрузкой. Juniper у меня и не было.
Arista топ.
Но, посмотрим. Соседний отдел уже полгода мотает от «хотим Linstor» до «SupremeRAID купите позязя». Потом они пойдут смотреть на weka, vastdata (Cosmos), vast.ai.

Выбор ОС.

Разные ОС по разному работают с дисками. Поскольку Broadcom ESXi стал не просто дорого, а очень дорого, то выбор остался между Microsoft Hyper-V (но нужно сразу считать стоимость DC лицензии, плюс лицензии SCOM, SCVMM) и Proxmox. Итогом, понятно, будет гибридная инфраструктура – часть в облаке, часть на Proxmox, часть на Windows. У нас тут без предрассудков.
Почему не чистый, ванильный KVM? Не знаю, как-то не рассматривали этот вариант.

Закончим с теорией, перейдем к практике.

Диски еще раз.

Использовались: Micron 7450 SSD Gen4 pro по 3840 Gb. Спецификация: Micron 7450 SSD Series Technical Product Specification

Заявлено:
- Random 4KB READ: Up to 1,000,000 IOPS
- Random 4KB WRITE: Up to 400,000 IOPS

Точнее данные описаны в таблице 1: Table 1: Drive Performance – PRO

И начинаются фокусы.
Во первых, для разных емкостей и моделей заявлена разная производительность.
Во вторых, для разных тестов использована разная глубина очереди:
• Sequential workloads measured using FIO with a queue depth of 32
• Random READ workloads measured using FIO with a queue depth of 256
• Random WRITE workloads measured using FIO with a queue depth of 128

или:
Latency values measured under the following configuration:
• Random workloads using FIO with 4KB transfers and a queue depth of 1

Особо надо обратить внимание на питание и охлаждение.
3. Power limiting is configured through Set/Get Features Power Management.
4. Power consumption measurements are for reference only; actual workload power consumption will vary

Указано, что в среднем диски выдают до 15 ватт тепла, но в пике указано потребление до 2 ампер по линии 12 вольт, то есть 24 ватта на диск. На 6 дисков это плюс 150 ватт. Проблема не в блоках питания, а в том, что диски стоят спереди, и процессоры «за ними» обдуваются весьма горячим воздухом. В теории у нас на входе +20, а на процессоры приходит воздух уже +30, а то и +35, и на выходе получаем и +70..+80 на самих процессорах, и обдув памяти с ее нагревом. Поэтому не забывайте сразу настроить мониторинг CPU \ RAM temp, через IPMI – iBMC – iDRAC – iLO, или что там у вас.
И, само собой, не забывайте считать пределы отведения по теплу, иначе получите, рано или поздно, что ваше охлаждение из N+1 превратилось в N+0.

Еще немного теории, теперь про DiskSPD.

У DiskSPD есть несколько критичных параметров. Это:
Измененная методика работы в последней версии, цитата:
Previously Diskspd would issue the requested number of I/Os (T0), then receive and record one I/O at a time (T1)

С рекомендацией:
Since these changes can be so dramatic, you should re-baseline your storage performance using the latest version of Diskspd.
To keep pace with the advances in disk speeds and the improvements in Windows Server 2025, we’ve made investments in our storage performance benchmark tool to get you an accurate measure of latency.

Кстати, я там плакал, что нет экспорта в XML? Он есть:
-R[text|xml] Display test results in either text or XML format (default: text).

Никогда не ходил в эту секцию библиотеки, а, видимо, придется: Event Tracing for Windows (ETW) parameters

Всплыли некоторые неочевидные (если не читать) подробности, например, конфликтующие параметры:
-F<count> Total number of threads. Conflicts with -t, the option to set the number of threads per file.
-t<count> Number of threads per target. Conflicts with -F, which specifies the total number of threads.
Поэтому, если вы используете несколько целевых файлов, и ключ –t – как в примере:
diskspd [options] target1 [ target2 [ target3 ...]

То у вас число потоков (тредов, нитей) будет расти с ростом числа файлов. Что надо было бы мне учесть перед тестами, но я, конечно, не учел.

Еще немного теории, уже почти все.

В школе всех учили и учат, что есть один путь решения и одно правильное решение. Поезда встречаются на определенном полустанке, машина из А в Б приедет за 5 часов 55 минут, итд.
В техническом институте учат, что все ваши измерения – фигня полная. Не бывает ровно 28 сантиметров, ровно 22 секунды. Бывает 28 сантиметров плюс минус погрешность инструмента, плюс минус погрешность методики, плюс минус систематическая и так далее, поэтому «примерно 24-29 см» приемлемый результат. Хотите большей точности  – работайте с ошибками и инструментами.
Курса со второго (иногда с первого) учат, что ошибка – это нормально. Лучше, конечно, не делать грубых ошибок, но умеренно ошибаться при опытах и постановке опыта «тоже сойдет». Грубых ошибок делать не надо, ТБ нарушать не надо. Там же учат иногда подгонять ответ под требуемый результат, и оценивать результат с точностью до порядка.
Так что полученные ниже результаты – повод для обсуждения, где именно можно улучшить методику, какие параметры покрутить. Или же все переписать и переделать.

Тесты и результаты.

Windows Server 2019 и 2022: сопоставимые результаты.
Хотя, еще как посмотреть, насколько сопоставимые, и в каких сценариях. Например ResiliencySettingName: Parity в Server 2019 работало с багами, до какого-то очередного фикса.
Тесты существенно округлены в основном в меньшую сторону, то есть 142к > округлено вверх до 150к, 139к округлено куда получится.
Number of threads per target: 10
Number of outstanding I/O requests per-target per-thread: 16
target:1
Кеширование: выключено
Тип пула (New-StoragePool): LogicalSectorSizeDefault: по умолчанию.
Типы дисков: New-Volume ProvisioningType: Thin, Fixed. Результаты сопоставимы для обоих типов дисков (что очень странно для поклонников старой школы), поэтому приводятся без разбивки.
Форматирование: NTFS 4k
ResiliencySettingName: Mirror
Чтение блоком 4к: 600к IOPS
Запись блоком 4к: 250к IOPS

Чтение блоком 64к: 450к IOPS
Запись блоком 64к: 100к IOPS

Number of threads per target: 15
Number of outstanding I/O requests per-target per-thread: 16
Targets:4
ResiliencySettingName: Mirror

Чтение блоком 4к: 2500к IOPS
Запись блоком 4к: 900к IOPS

Чтение блоком 64к: 650к IOPS
Запись блоком 64к: 150к IOPS

Следующий вариант тестов:
Number of threads per target: 15
Number of outstanding I/O requests per-target per-thread: 16
Targets:4
ResiliencySettingName: Parity. Важно: я с этой настройкой не экспериментировал, хотя в 1 и 2 частях написано про важность грамотной настройки именно в этой части. Поэтому производительность в Parity на запись, при настройках по умолчанию, будет отвратительной.

Чтение блоком 4к: 2800к IOPS (внезапно для меня, чтение для Parity работает отлично)
Запись блоком 4к: 45к IOPS. Да, просадка с 900k до 45k. Не в 4 раза, и даже не в 10. Выглядит, как результат все той же проблемы – read-modify-write, когда из страйпа читается один блок, изменяется и перезаписывается.

Чтение блоком 64к: 650к IOPS
Запись блоком 64к: 20к IOPS
Огромная просадка по записи. Просто чудовищная.

При этом, я смотрю на среднее отклонение, и вижу в нем какие-то всплески на 10-20% . Что это было? Меня на повторное проведение лабораторных работ в институте отправляли и за меньшие отклонения и нарушения.
Видимо, придется все переделывать.

Windows Server 2025.
В 2025 сервере обещали улучшить, углубить, итд. Посмотрим
Number of threads per target: 15
Number of outstanding I/O requests per-target per-thread: 16
Targets:4
ResiliencySettingName: Mirror

Чтение блоком 4к: было 2500к IOPS, стало: почти 3000к IOPS
Запись блоком 4к: было 900к IOPS, стало почти 1000 к IOPS. Опять наблюдается разброс в скорости между тонкими и фиксированными дисками, что говорит о том, что надо проводить не 2 теста по 5 минут, а 6 тестов по 10 минут и смотреть среднее, да и на задержки поглядывать.

Чтение блоком 64к: 650к IOPS. Без существенных изменений.
Запись блоком 64к: 150к IOPS. Без существенных изменений.

Следующий вариант тестов:Number of threads per target: 15
Number of outstanding I/O requests per-target per-thread: 16
Targets:4
ResiliencySettingName: Parity. Важно: я с этой настройкой не экспериментировал, хотя в 1 и 2 частях написано про важность грамотной настройки именно в этой части. Поэтому производительность в Parity на запись, при настройках по умолчанию, будет отвратительной.

Чтение блоком 4к: было 2800к IOPS, стало почти 3000к IOPS.
Запись блоком 4к: было 45к IOPS, стало 80к IOPS.

Чтение блоком 64к: было 650к IOPS. Без существенных изменений.
Запись блоком 64к: было 20к IOPS. Стало 30 к IOPS.

Заключение

Тестирование только DiskSPD или FIO показывает некие повторяемые цифры, которые напрямую не конвертируются в ответ «будет ли работать SQL быстрее, и, если да, то насколько».
Подойти ближе к ответу позволяют:
SQLIOSim
SQL Query Stress Tool
HammerDB

И прочие инструменты.
Stay tuned

Список литературы

Windows Server 2025 Storage Performance with Diskspd
Use DISKSPD to test workload storage performance
Getting Started with Diskspd
microsoft/ diskspd Command line and parameters
microsoft/ diskspd Sample command lines
RAID Write Penalty and IOPS Calculation

Understanding RAID Write Penalties: RAID 0, 1, 5, and 6 Explained

SQL Query Stress Tool
ErikEJ/ SqlQueryStress
Microsoft SQL Server Performance monitoring and tuning tools
Microsoft SQL Server Troubleshoot high-CPU-usage issues in SQL Server
Microsoft SQL Server Performance and Activity Monitoring
Microsoft SQL Server Troubleshoot slow-running queries in SQL Server 
Open Activity Monitor in SQL Server Management Studio (SSMS)
Use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem
HammerDB is the most trusted Free and open source database benchmarking application to the global database industry

PS.
Особенно меня радует отсутствие экспертов (ТМ) в комментариях.
Уровень комментаторов и так упал ниже уровня Хабра, хотя, казалось бы, что может быть более днищевым, чем редакция Хабра и активно ими создаваемые аккаунты с активной гражданской позицией из одного комментария.
Комментарии про «СХД OceanStore 2288» умиляют глубиной безграмотности.
Ирония в том, что технике, лишенной духа машины, не скажешь «ну, надо».
3rd: Sentience is the ability to learn the Value of Knowledge.
4th: Intellect is the Understanding of Knowledge.

Показать полностью
[моё] Windows IT Другой мир Программа Microsoft Linux Текст Длиннопост
2
11
Pups.oid
Pups.oid
1 месяц назад
Серия Сисадминство в маленьком городке)

Моя домашняя лаборатория (HomeLab). Часть 1⁠⁠

Всем Ку!

Я Пупсик, и это мой относительно первый длиннопост, 35 годиков, стаж общения с нашей любимой техникой и ПО - 28 лет и хотелось бы поделиться набором ПО и железа для скромной домашней лабы. Везде всё постараюсь описать своими словами.

Очень прошу дать обратную связь в комментариях о чем бы Вы хотели узнать или потестировать!

Давайте поговорим для чего и кому это всё вообще нужно?

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

Собрал для Вас свой "мастхев" и расскажу для чего тот или иной компонент или виртуалка. А так же жду конструктивной критики и интересных вопросов по теме.


  • Железо

Итак, первое и самое важное без чего существование лабы не возможно в принципе. Зимой 22-23 г. в условиях непонятных цен "завтра" на Али прикуплена на всякий случай "китайская" мать QD4 с процессором Xeon 2670v3 (2.3 ГГц 12 ядер - 24 потока) и оперативкой DDR4 16 гб. И кулёк-башенка с шестью трубками. Бюджет около 9000 за всё. Парочка NVMe накопителей были в наличии. Сейчас едет ещё 2 плашки по 32гб, потому что памяти уже не хватает, по приезду для текущих задач будет более чем достаточно. Корпус, 3 HDD по 1 ТБ и хороший блок питания Thermaltake так же были в наличии.


  • Гипервизор

    Т.к. отдавать всё ресурсы на одну ОСь и работать только с ней-более чем глупо. Воспользовался одним из моих любимых гипервизоров ProxMox. Можно долго петь ему деферамбы, но я не буду, знающие люди и без меня прекрасно понимают всю его мощь и прелесть.

    На данный момент запущено и стабильно работают с аптаймом 200+ дней 6 виртуальных машин и 10 LXC контейнеров. Почему именно LXC, а не тот же Докер? Лично для меня некоторые вещи удобнее именно в LXC контейнерах чем в Докере, хоть он так-же присутствует и о нем поговорим чуть дальше. (бекапы, скрипты автоматических установок, перемещения между гипервизорами, токая настройка сети и Vlan'ов, да и принцип +- одинаковый, да и не сильный проигрыш в ресурсах).


  • Программный роутер

Немного о построении домашней сети. Имеется в наличии две квартиры и дача. На всех трёх в качестве "перимитральной защиты" используются Микротики HAP AC Квадрат. Очень любимые мною железки и как по производительности и как по соотношению цена-качество. Все три точки объедены посредством WireGuard (в данный момент один из самых достойных протоколов за скорость работы и простоту настройки) напрямую. Плюс каждая отдельно соединенна "звездой" через VPS в Нидерландах. Думаю в наше время никому не надо объяснять для чего это нужно?)))

В таком случае логично было бы поставить в качестве программного роутера CHR. Но нет))) тут в бой вступает:

Моя домашняя лаборатория (HomeLab). Часть 1 Linux, Microsoft, Сервер, Windows, Компьютерное железо, Длиннопост

Для тех кто не знает, PFSense это очень мощный программный роутер основанный на FreeBSD и имеющий на борту кучу плагинов для работы со всеми существующими сетевыми задачами, а так же много дополнительных пакетов работающих "из коробки", установил-настроил-забыл.

Моё знакомство с ним произошло в 2010 году, использую его везде где возможно до сих пор, очень советую хотя бы "поковырять и посмотреть что под капотом"

Так для чего он в домашней лабе если на "периметре" есть Микрот? всё просто, во всех учебниках по построению сетей и не только сказано: Разделяй и властвуй! Чем больше сеть разбита на сегменты и чем больше настроено правил прохождения трафика между ними чем надёжнее и защищённее вся сеть в целом.

Например те-же китайские и не только IoT устройства (лампочки, пылесосы, умные холодильники и чайники, Алисы и иже с ними, хабы умных домов, в общем всё что подключается в основном по WiFi и каким либо образом управляется) постоянно сканируют сеть в которой они находятся и засылают "статистику" своим хозяевам. Про телевизоры Самсунг вообще молчу, один из главных врагов в домашней сети)))

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


  • DNS

Моя домашняя лаборатория (HomeLab). Часть 1 Linux, Microsoft, Сервер, Windows, Компьютерное железо, Длиннопост

Думаю не для кого не секрет, с чего начинается доступ в интернет домашних устройств и не только. Любому устройству выходящему "наружу" нужно сделать преобразование доменных имён в понятный для устройства IP адрес и установить связь с конечной точкой.

Многие провайдеры после установки ТСПУ начали делать "подмену" ответов DNS серверов для блокировок. Да и вообще, зачем и провайдеру и властям знать какие запросы вы посылаете на общедоступные DNS?

Именно тут в бой вступает ADGuard Home. Главная задача у него "резать рекламу" на всех устройствах которые запрашивают DNS у него. Конкретно у меня это абсолютно все устройства находящиеся в моей домашней сети.

Вторая задача, это шифрование запросов к внешним DNS серверам. В таком случае провайдер и "контора солнышек" (РКН) не смогут узнать запрос имени к какому именно ресурсу осуществляется.

Третья задача, это обращение по локальным "общепонятным" адресам внутри сети, например чтобы не запоминать у кого какие IP адреса, перехожу просто в адресной строке dns.loc и попадаю в интерфейс управления Adguard, удобно и экономит время.


  • Мониторинг

Моя домашняя лаборатория (HomeLab). Часть 1 Linux, Microsoft, Сервер, Windows, Компьютерное железо, Длиннопост

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

Для себя давно выбрал Zabbix как универсальный-надёжный "комбаин" для мониторинга всего и вся вообще. Есть куча шаблонов как для оборудования так и для ПО или ОС. Он всегда оповестит меня если в сети появится новое устройство которого там не должно быть или если на даче отвалилась камера, если честно применения систем мониторинга очень много, и все не обхватить.

Но иногда, когда не охото разворачивать с нуля этого монстра, на помощь приходит маленький-удобный-интуитивно понятный UptimeKuma. Если что-то надо быстро "помониторить" использую его как альтернативу. А в лабе поднято и то и то)))


  • Хранилище (Облачко, файлопомойка, ftp-сервер, хранилище фотографий, хранилище бекапов, медиасервер и тд.)

Моя домашняя лаборатория (HomeLab). Часть 1 Linux, Microsoft, Сервер, Windows, Компьютерное железо, Длиннопост

Один из основных компонентов, ради которого в принципе всё это и начиналось)

Если честно, для хранилок перепробовал много чего, и TrueNAS и FreeNAS и OpenMediaVault, но стоило пару раз поюзать железки NAS Synology как они мне запали в душу)))

В связи с этим, выбор для дома не заставил себя ждать и появилась виртуалка с Xpenology DSM. Это тоже "комбаин" который включает в себя множество отдельных функций.

В том же яндекс-диске у меня почти пол террабайта (когда то давно они потеряли мои данные и начислили много места + выслуга лет ящика), но пользовать их полноценно без оплаты невозможно, ограничение по скорости и размеру файла 1гб на "бесплатных" тарифах иногда просто убивает(((

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

В принципе в заголовке списка написано для чего он используется, отдельно хочу отметить работу с видеонаблюдением, surveillance station заслуживает отдельных похвал!!!


  • Маленький подытог

    Думаю для первой части достаточно. В следующей части разберем всё остальное)

    Спасибо за внимание, чукча не писатель)

Показать полностью 4
[моё] Linux Microsoft Сервер Windows Компьютерное железо Длиннопост
9
6
TECHLiveHACK
TECHLiveHACK
2 месяца назад

Все шпаргалки в одном месте⁠⁠

Все шпаргалки в одном месте Технологии, Telegram (ссылка), Программа, Гайд, Python, Шпаргалка, Программирование, IT, Полезное, Помощь, Компьютер, Приложение, Windows, Linux

Обширная коллекция шпаргалок по различным языкам программирования и библиотекам. Сгруппированы по алфавиту. В наличие даже PDF-файлы шпаргалок. Отличный ресурс для быстрого поиска нужной информации.

Сохраняем ссылку.

Источник

Технологии Telegram (ссылка) Программа Гайд Python Шпаргалка Программирование IT Полезное Помощь Компьютер Приложение Windows Linux
1
i.playful
i.playful
2 месяца назад

Про красивые операционные системы...⁠⁠1

2004 год.

Я недоумевал, помню, почему интерфейсы ОС не используют аппаратное ускорение графики?! Почему в игре – всё плавно, прозрачное меню с блюрами, а в мастдайке такого добиться можно было только с WindowsBlindz – и это было пиздец как ресурсозатратно и даже близко не стояло с качеством и плавностью эффектов в играх...

Не, я понимал, что такое gdi, но я не понимал почему Microsoft не переделает эту хуергу...

я хотел что-то красивое, плавное, прозрачное и снова красивое )))

Linuxы с compiz – ну... Кто знает, тот знает – в то время было криво, косо, но зато свободно 😆 Даже поговорка была в ru.linux:

Linux – это обработка напильником танка до состояния вертолёта 😆

При этом уже вышла MacOs X – где все эти красоты уже были по умолчанию. Я с завистью смотрел на пользователей Mac G3-G4 – настоящая, сертифицированная Unix стстема с человеческим лицом 🥰

И тут хуякс, выходит MacOs X Tiger с поддержкой intel-нищебродов ))))

И наконец первые "загрузчики" и патчи ядра, которые могли запустить это великолепие на наших пентиумах 4 : 2006-07 годы.. Химеры всякие и хамелеоны...

Если смог запустить "хакинтош" с тигром, то ты охуевал насколько всё красиво, плавно, быстро, с "водичкой" на переходах и возможностью запускать через bsd-ports любое *никс приложение...

Я был влюблён ))))

Майкрософт выпустила в последствии, конечно, висту и семёрку с их прозрачностью, но хуй они сосали и по красоте системы и по надёжности и быстродействию.

....

Сейчас ситуация изменилась кардинально. В пользу Linux, внезапно 😆 : MacOs стагнировала давно. Стала тяжелее винды, глючнее и непоннятнее.

Зато Linux развился ) KDE – охуенен, x11 – рулит ( wayland – не моё, я плагины переписывать уже стар 😆).

Показать полностью
Mac Os Linux Windows Красота Мат Текст
22
8
archiguk
archiguk
2 месяца назад
Юмор для всех и каждого
Серия M E M E L O S A U R U S

Активирую линух недорого⁠⁠

Активирую линух недорого Юмор, Мемы, Странный юмор, IT, IT юмор, Программист, Картинка с текстом, Linux, Microsoft, Ожидание и реальность, Ubuntu, Игровой юмор, Windows, Telegram (ссылка)

Ссылка: на источник

Показать полностью 1
Юмор Мемы Странный юмор IT IT юмор Программист Картинка с текстом Linux Microsoft Ожидание и реальность Ubuntu Игровой юмор Windows Telegram (ссылка)
3
Аноним
Аноним
2 месяца назад

Ответы для демо экзамена 1 модуль⁠⁠

1.Настройте имена устройств согласно топологии. Используйте полное доменное имя
hostnamectl hostname host-name.au-team.irpo
, где host-name имя вашего устройства, например (hq-srv, br-rtr, isp).

2. На всех устройствах необходимо сконфигурировать IPv4- nmtui > Изменить подключение > Выбираем нужный интерфейс > Стрелочка вправо > Изменить > Конфигурация IPv4: Изменить с Автоматически на вручную и нажать > Показать > Адреса > Добавить, после чего задаём IP-адрес и при необходимости шлюз и серверы DNS, после чего сохраняем изменения с помощью ОК.
На этом пункте настраиваем все интерфейсы на устройствах – ISP, BR- RTR, BR-SRV. На HQ-RTR настраиваем интерфейс в сторону ISP. Интерфейсы на устройствах HQ-RTR, HQ-SRV и HQ-CLI находящиеся в локальной сети HQ будут настраиваться в пункте №4.
Для применения изменений выходим в командную строку и прописываем команду:
nmcli connection up INTERFACE, где INTERFACE – название вашего интерфейса, настройки которого необходимо обновить (например, ens33).
На маршрутизаторах (ISP/BR-RTR/HQ-RTR) включаем параметр, отвечающий за пересылку пакетов:
echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf
sysctl -p
на BR-RTR

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост
Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост
Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

На HQ-CLI:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

BR-SRV:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

ISP:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

ISP:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

HQ-SRV:

HQ-RTR:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост
Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост
Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост
Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

IP-адрес должен быть из приватного диапазона в случае, если сеть
локальная, согласно RFC1918 (10.0.0.0-10.255.255.255; 172.16.0.0 – 172.32.255.255;192.168.0.0 – 192.168.255.255)
Локальная сеть в сторону HQ-SRV(VLAN100) должна вмещать не более 64 адресов (255.255.255.192 /26)
192.168.100.0/26
Локальная сеть в сторону HQ-CLI(VLAN200) должна вмещать не более 16 адресов (255.255.255.240 /28
192.168.200.0/28
Локальная сеть в сторону BR-SRV должна вмещать не более 32 адресов (255.255.255.224 /27)
172.30.100.0/27
Локальная сеть для управления(VLAN999) должна вмещать не более 8 адресов (255.255.255.248 /29)
192.168.99.0/29
Сведения об адресах  занесите в отчёт, в качестве примера используйте Таблицу 3

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

1.  Настройка ISP

Настройте адресацию на интерфейсах:
Интерфейс,  подключенный  к  магистральному провайдеру, получает адрес по DHCP
Настройте маршруты по умолчанию там, где это необходимо
Интерфейс, к которому подключен HQ-RTR, подключен к сети
172.16.4.0/28
Интерфейс, к которому подключен BR-RTR, подключен к сети
172.16.5.0/28
На ISP настройте динамическую сетевую трансляцию в сторону
HQ-RTRиBR-RTRдля доступа к сети

Интернет НА ISP
dnf install iptables-services -y
systemctl enable --now iptables
iptables -F
iptables -A FORWARD -s 172.16.0.0/16 -j ACCEPT
iptables -A FORWARD -d 172.16.0.0/16 -j ACCEPT
iptables -t nat -A POSTROUTING -o ens33 -s 172.16.0.0/16 -j MASQUERADE
systemctl stop firewalld
systemctl disable firewalld
iptables-save > /etc/sysconfig/iptables
ПРОВЕРЯЕМ ПИНГИ НА 8.8.8.8 С HQ-RTR и BR-RTR

Создание локальных учетных записей на серверах HQ-SRV и BR-SRV
useradd -m -U -s /bin/bash -u 1010 sshuser
passwd sshuser
P@ssw0rd
P@ssw0rd
echo “sshuser ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers

useradd -m -U -s /bin/bash net_admin
passwd net_admin
P@$$w0rd
P@$$w0rd
echo“net_adminALL=(ALL)NOPASSWD:ALL”>>/etc/sudoers

Настройте на интерфейсе HQ-RTR в сторону офиса HQ виртуальный коммутатор:
nmtui > Изменить подключение > Добавить > VLAN и настраиваем VLAN. Данный шаг выполняем на HQ-RTR – ens34, HQ-SRV – ens33, HQ-CLI – ens33.
(Шлюз и Серверы DNS для HQ-CLI и HQ-SRV)

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

Настройка безопасного удаленного доступа на серверах HQ-SRV и BR- SRV:
Создаём баннер
echo “Authorized access only” > /etc/ssh/banner.txt
Настраиваем SSH
nano /etc/ssh/sshd_config
Port 2024
AllowUsers sshuser
MaxAuthTries 2
Banner /etc/ssh/banner.txt
Разрешаем подключение по порту 2024
semanage port -m -t ssh_port_t -p tcp 2024
(либо выключаем SELinux и перезапускаем сервер)
Перезапускаем ssh systemctl restart sshd
Далее с HQ-RTR и BR-RTR проверяем доступ до соответствующих серверов в своей локальной сети:
ssh -l sshuser 172.30.100.10 -p 2024
ssh -l sshuser 192.168.100.10 -p 2024

Между офисами HQ и BR необходимо сконфигурировать ip-туннель
Заходим в nmtui
Стрелочка вправо – добавить Выбираем IP-Туннель
Конфигурируем дальше по скринам, не забыв изменить режим на GRE HQ-RTR:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

BR-RTR:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

ПОСЛЕ ЭТОГО НА ОБОИХ РОУТЕРАХ ПИШЕМ:
nmcli connection modify tun0 ip-tunnel.ttl 64
И  перезапускаем  tunnel  через  nmtui  (выключаем  и  включаем интерфейс)
Проверяем пинги с двух роутеров на 10.10.10.1 и 10.10.10.2

Обеспечьте динамическую маршрутизацию: ресурсы одного офиса должны быть доступны из другого офиса. Для обеспечения динамической маршрутизации используйте link state протокол на ваше усмотрение.

HQ-RTR И BR-RTR
dnf install frr
systemctl enable --now frr
nano /etc/frr/daemons
заменить no на yes в ospfd=yes
systemctl restart frr

vtysh
ДАЛЕЕ РАБОТА КАК В CISCO
conf t
router ospf

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

area 0 authentication
exit
interface tun0
ip ospf authentication
ip ospf authentication-key P@ssw0rd
do wr
exit
exit
exit

Настройка динамической трансляции адресов

НА HQ-RTR И BR-RTR:
systemctl --now enable firewalld
firewall-cmd --set-default-zone=trusted
firewall-cmd --zone=trusted --add-masquerade --permanent
systemctl restart firewalld

Настройка протокола динамической конфигурации хостов HQ-RTR
dnf install dhcp-server
nano /etc/dhcp/dhcpd.conf

Пишем это в файле:
subnet 192.168.200.0 netmask 255.255.255.240 {
range 192.168.200.2 192.168.200.14;
option routers 192.168.200.1;
option broadcast-address 192.168.200.15;
option domain-name-servers 192.168.100.10;
option domain-name “au-team.irpo”;
};

systemctl enable --now dhcpd
dhcpd
Получаем адрес на HQ-CLI путём отключения и включения интерфейса ens33.vlan200.
ПРОВЕРЯЕМ НА HQ-RTR, ЧТО ЕСТЬ ЗАПИСЬ В ФАЙЛЕ, УКАЗЫВАЮЩАЯ НА ПОЛУЧЕНИЕ АДРЕС КЛИЕНТОМ:
cat /var/lib/dhcpd/dhcpd.leases

Настройка DNS для офисов HQ и BR на HQ-SRV

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

dnf install bind
nano /etc/named.conf
Изменить строчки, на которые указывают стрелочки:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

(Вместо 8.8.8.8 ставим 10.39.0.1) И в конец добавить:

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

Далее копируем файл шаблона и заполняем по скринам.
mkdir /opt/dns
cd /opt/dns
cp /var/named/named.empty au-team.irpo
nano au-team.irpo

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

cp /var/named/named.empty 100.168.192.in-addr.arpa
nano 100.168.192.in-addr.arpa

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

cp /var/named/named.empty 200.168.192.in-addr.arpa
nano 200.168.192.in-addr.arpa

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

chmod -R 777 /opt/dns
ПРОВЕРЯЕМ КОНФИГУРАЦИЮ И ИСПРАВЛЯЕМ ОШИБКИ ЕСЛИ ЕСТЬ
named-checkconf -z
systemctl restart named
Далее заходим в nmtui и меняем ДНС HQ-RTR сервер с 8.8.8.8 (10.39.0.1) на 192.168.100.10. Так же указываем домен поиска au-team.irpo.
После  этого  в  nmtui  переходим  на  вкладку  «Активировать подключение». Выключаем и включаем интерфейс, на который ставили ДНС.

Ответы для демо экзамена 1 модуль Windows, Linux, Длиннопост

Нажимаем на кнопку подключений (между сменой языка и уровнем громкости), нажимаем на стрелочку рядом со словом «Проводное» и выбираем настройки подключения. Затем рядом с «Подключено – 1000 Мб/с» нажимаем на шестеренку. В появившемся окне переходим на вкладку IPv4. Выключаем автоматический ДНС и указываем 192.168.100.1
На hq-cli заходим в nmtui и указываем домен поиска au-team.irpo
НА HQ-CLI И ПРОВЕРЯЕМ РАБОТОСПОБНОСТЬ ping br-rtr
ping br-srv
ping hq-rtr
ping hq-srv
ping ya.ru
Далее заходим в nmtui на другие машины и меняем ДНС сервер с 8.8.8.8 на 192.168.100.1. Так же указываем домен поиска au-team.irpo.
После этого в nmtui переходим на вкладку «Активировать подключение». Выключаем и включаем интерфейс, на который ставили ДНС.
С других машин проверяем так же, как и на клиенте.
Настройте часовой пояс на всех устройствах, согласно месту проведения экзамена
timedatectl set-timezone Europe/Moscow
timedatectl (ПРОВЕРИТЬ ЗОНУ, ПО ЗАДАНИЮ ВРЕМЯ МЕНЯТЬ НЕ ПРОСЯТ)

Показать полностью 23
Windows Linux Длиннопост
4
10
Вопрос из ленты «Эксперты»
Noreliks
Noreliks
2 месяца назад
GNU/Linux

Проблема с 4:3 в Counter-Strike 2 на Linux⁠⁠

Я использую Manjaro Linux (ядро 6.12) с окружением KDE Plasma 6.3.5 и видеокартой AMD Radeon RX 6600. Хочу запускать Counter-Strike 2 в разрешении 1280x960 (соотношение сторон 4:3).

В оконном режиме игра работает без проблем, но в полноэкранном режиме или режиме "полный экран в окне" исчезает курсор мыши и не реагирует на нажатия. Проблема сохраняется на Wayland и X11. На X11 также возникают сложности с частотой обновления экрана.

Как можно это исправить или обойти, чтобы играть в полноэкранном режиме с нужным разрешением и соотношением сторон? Буду признателен за любые советы по устранению этой проблемы

UPD: Нашёл решение! Для X11, нужно добавить в параметры запуска игры в Steam: xrandr --output DisplayPort-0 -s 1280x960 -r 239.76 --scale-from 1280x960 --primary; %command% -novid; xrandr --output DisplayPort-0 -s 1920x1080 -r 239.76 --scale-from 1920x1080

Какой у вас видео-выход можно посмотреть через команду xrandr в терминале. А для Wayland к сожалению решение не нашёл.

Linux Counter-strike 2 Manjaro Amd Radeon Компьютерная помощь Операционная система Монитор Windows Видеокарта Wayland Xorg Вопрос Спроси Пикабу Текст
8
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии