Пять основных тенденций в разработке программного обеспечения 2018 года - Игорь Лебедев, технический директор SONM
Опубликовано: 2021-08-09Пока что 2018 год был годом преобразований для разработчиков. Разработка программного обеспечения превзошла себя новыми версиями и более качественными решениями, которые делают компьютеризированные задачи проще и эффективнее, чем когда-либо прежде. Базы данных теперь способны количественно оценивать большие пулы информации без сбоев, серверы продаются сериями, а не отдельными единицами, а блокчейн открыл двери с помощью децентрализованной системы. Вот пять основных тенденций в разработке программного обеспечения, которые в этом году покоряют мир технологий:
Большие данные
Постоянный рост корпоративных и общедоступных данных приводит к тому, что традиционные базы данных и инструменты хранения больше не могут использовать и управлять объемом данных. Старые подходы больше не работают, поскольку мы воочию убедились, что СУБД (системы управления реляционными базами данных) больше не способны удерживать все. Это приводит к появлению новых инструментов и подходов, но, что более важно, к концу доминирования традиционных монолитных баз данных. Новый подход заключается в хранении данных, совместно используемых несколькими узлами. Основные данные по-прежнему хранятся в традиционных централизованных базах данных, но больший объем данных хранится отдельно, а доля монолитных баз данных сокращается. Проблема больших данных в 2018 году заключается в том, что они требуют от вас переписывания обычных приложений по-новому, чтобы они могли обрабатывать большие пулы данных.
Горизонтальная масштабируемость
Традиционным решением для масштабирования всегда было приобретение нового и большего сервера. Этот новый сервер будет иметь больше ядер, режим кеширования, более высокие частоты, большие банки памяти, более быстрые шины и больше дисков. Однако это решение масштабирования имеет ограничения, и эти ограничения уже достигнуты. Обычное серверное шасси может иметь не более 2 или 4 ЦП, и вы не можете добавлять ЦП без ограничений, так как вы не можете повышать частоты. В какой-то момент вертикальное масштабирование достигает своих пределов. Следующий шаг - горизонтальное масштабирование. Это означает, что вместо того, чтобы покупать более крупный сервер для замены старого, вы покупаете один или несколько дополнительных серверов того же типа для добавления в существующий пул. Этот подход кажется более гибким, но требует другой архитектуры программного обеспечения и, опять же, требует переписывания программного обеспечения. Если вы сделаете это, вы получите преимущества лучшего управления ресурсами с возможностью совместного использования ресурсов. Здесь мы видим микросервисы, выполнение без сохранения состояния и Kubernetes как тенденции.
Децентрализация
Изменения, которые мы видим в мире, порождают новые вызовы. Они могут быть связаны с политикой, расходами на доставку, доверием или рыночными ситуациями, но сохраняется тенденция к тому, что компании стремятся децентрализовать свои услуги и программное обеспечение. Сети доставки контента развертывают серверы у вашего интернет-провайдера, поставщики SaaS открывают DC в вашей стране, а компании думают о восстановлении после катастроф. Это приводит к тому, что предприятия больше не имеют одного главного центра обработки данных, а имеют два или более, а их инженерам приходится думать об изменении некоторых аспектов архитектуры своих приложений.
Обработка тумана
Использование обработки данных увеличивается с каждым днем. Интернет вещей генерирует все больше и больше данных на границе сети. Эти данные традиционно обрабатываются в контроллерах домена или в облаке. Однако с учетом того факта, что современные оптические линии быстро развиваются, а пропускная способность сети увеличивается из года в год, объем данных растет на несколько порядков быстрее. Сети были и всегда были «узким местом» глобальной обработки информации. Если не технически (по пропускной способности и задержке), то экономически (по цене за передачу). В настоящее время самый быстрый и дешевый способ перенести ваше хранилище данных в другой DC - это вызвать грузовой автомобиль и буквально перенести жесткие диски в новое место. Нет, это не шутка.

Это приводит к основополагающей в отрасли идее обработки Edge и Fog, означающей, что как можно больше данных должно обрабатываться локально. Ведущие ИТ-компании работают над решениями для обработки и обслуживания данных рядом с устройствами. Этот вид обработки - туман. В этом есть трудности. Вы не можете просто скопировать код из облака и надеяться, что он работает, потому что в облаке все данные доступны локально, а в тумане ни один узел не имеет всех данных и должен запрашивать необходимую информацию у других узлов. От разработчиков приложений требуется адаптировать свою архитектуру и переписать код, чтобы задачи можно было решать в стиле MPP (массовая параллельная обработка). Это дает еще одну причину переписать код и децентрализовать IaaS; пока он не станет привлекательной платформой для размещения вашего новорожденного приложения.
Отказоустойчивость
Мы живем в эпоху, когда что-то продать труднее, чем произвести. Конкуренция на рынке растет, и компании, занимающиеся разработкой программного обеспечения, думают о лучшем SLA, чтобы иметь преимущество и завоевать доверие пользователей. С учетом вышеупомянутых моментов вероятность отказа отдельного компонента системы резко возрастает. Нельзя полагаться на способность кластера баз данных Oracle справиться с аварией, потому что большая часть данных находится вне его. Вместо пары сверхнадежных серверов с двойным источником питания теперь может быть 10 или даже 100 серверов, а математическое ожидание отказа одного узла приближается к 1 (один, 100%). Что-то, вероятно, выйдет из строя, и компании должны быть готовы к этому снова, взглянув на архитектуру своих приложений. Мир, и ИТ в частности, постоянно меняется и движется невероятно быстрыми темпами. Старые подходы не работают. Компании переписывают свое программное обеспечение с учетом больших данных, горизонтальной масштабируемости, децентрализации и обработки тумана. Инженеры постоянно учитывают отказоустойчивость приложений.
Эти тенденции в разработке программного обеспечения привели к появлению новых требований к оборудованию и его доступности, что менее важно для отказа одного узла, и с большим количеством вариантов горизонтального масштабирования. Заглядывая в будущее, мы ожидаем появления избытка новых тенденций, которые, как мы надеемся, будут идти в ногу с нашими развивающимися технологиями и потребностью в большей аппаратной поддержке.
Об Игоре Лебедеве:
Игорь Лебедев - специалист в области информатики с более чем 15-летним опытом работы в сфере информационных технологий. Его опыт заключается в классических системных архитектурах, системных классах, базах данных, туманных вычислениях, автоматизированных торговых системах, смарт-контрактах и микроэлектронике. В настоящее время Игорь является техническим директором и руководителем группы разработки SONM с июля 2017 года. В качестве технического директора Игорь вносит свой ценный вклад в видение продукта и общий процесс разработки, постоянно создавая команду разработчиков, которые создают туманные вычисления, проект SONM. .