Дизайн решения, оптимизация кода и локализации исполнения решения являются крайне важным при создании программ и технических решений для бизнеса. Только грамотный анализ возможных решений с сопоставлением всех преимуществ и недостатков с учетом будущих потребностей может позволить принять эффективное, результативное и экономически обоснованное решение. Сегодня мы рассмотрим некоторые отдельные стратегии повышения производительности и масштабируемости программных решений.
Такие стратегии заключаются в использовании определенных методов, а именно:
1) Облачные вычисления
— IaaS (Инфраструктура как услуга). Все ресурсы и программы устанавливаются и управляются клиентом самостоятельно.
— PaaS (Платформа как услуга). Как правило представляет из себя определенный набор для решения определенных задач пользователя. Требует настройки и конфигурирования.
— SaaS (Программное обеспечение как услуга). Пользователь использует готовый набор программ для решения своих задач.
— AWS (Amazonwebservices), Azure, Googleявляются основными поставщиками таких услуг
— Готовые решения в коробке: BlackBoxAI, LowCode, Nocode
2) Вычисления и аналитика внутри базы данных:
— Перемещаем не данные к коду, а код к данным
— Выполнение кода (R, Python...) вместе с SQL-запросом
— Интеграция решения в базу данных
3) Перенос вычислений с клиента на сервер — Microsoft ML Server — RevoScaler — R-Studio Server
4) Потоковые вычисления — Данные по возможности держать в памяти, а не читать с диска — Обрабатывать (предварительно) данные до попадания в хранилище — StreamingEventProcessing(Обработка потоков событий — набор технологий, предназначенных для построения информационных систем обработки)
5) БИГДАТА — Хранитьраспределённо — Вычислять (обрабатывать) локально — Hadoop, HDFS, Map-Reduce (системы разработки и выполнения распределённых программ) — HIVE, PIG (Система управления базами данных в т.ч. неструктурированными данными) — MPP-системы (Массово-параллельная архитектура — класс архитектур параллельных вычислительных систем)