in

Топ 10 технологий, которые готовы выстрелить в 2018 году

Как блокчейн, NLP, ИИ, машинное обучение, бессерверные вычисления и другие инновационные технологии изменят жизнь разработчиков в 2018 году?

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

1. Технологии блокчейн всё чаще будут использоваться в бизнесе

Всё больше компаний начали понимать, что, используя блокчейн-транзакции в своих системах, можно достичь гораздо большей надёжности и эффективности. В следующем году разработчики будут внедрять множество вариантов использования blockchain в отношении финансовых услуг и производств. Blockchain — это технология, которая обеспечивает эффективные и безопасные транзакции между организациями. Она отлично подходит для бизнеса, так как помогает исключить посредников на уровне денежных переводов.

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

2. Чат-боты будут беседовать с клиентами и сотрудниками на постоянной основе

Люди устали от необходимости использовать несколько мобильных приложений для выполнения одной и той же работы. Например, три разных приложения разных авиакомпаний, и в каждом из них свой способ регистрации и получения билета. Лучше всего обеспечить ту же функциональность, но через самое популярное приложение на вашем телефоне — мессенджер. Для его использования не требуется никакой подготовки. Благодаря достижениям в области искусственного интеллекта и обработки естественного языка люди будут использовать Facebook Messenger, Slack, WeChat, WhatsApp или голосовой помощник (например, Amazon Alexa или Google Home), чтобы задавать вопросы и получать ответы от чат-ботов.

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

3. Кнопки исчезнут. Искусственный интеллект заменит ваш интерфейс

Искусственный интеллект станет пользовательским интерфейсом. Это означает, что синхронная модель запроса-ответа приложений и сервисов постепенно исчезнет. У смартфонов по-прежнему «низкий IQ», потому что вам нужно сначала взять смартфон, запустить приложение, попросить его что-то сделать и только после этого получить ответ. Приложения нового поколения будут инициировать взаимодействие посредством push-уведомлений. Мы можем шагнуть еще дальше и представить, что приложение, бот или виртуальный личный помощник, использующий искусственный интеллект, будут знать, что делать, когда и как. И просто будут делать это. Например:

Приложение, которое следит за вашим расходами наблюдает за тем, какие транзакции вы подтверждаете. Затем начинает автоматически подтверждать 99% ваших транзакций, только изредка сообщая вам о тех, которые кажутся подозрительными

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

4. Машинное обучение станет более узконаправленным

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

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

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

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

5. DevOps превратится в NoOps

Проблема DevOps заключается в том, что разработчики тратят 60% своего времени на ops-сторону вопроса, тем самым сокращая время на саму разработку. Им также необходимо все время интегрировать в свои проекты инструменты, заниматься их поддержкой и обновлять по мере того, как появляются новые решения. Практически каждый разработчик занимается непрерывной интеграцией (CI), и лишь немногие непрерывной поставкой (CD). Поэтому разработчики будут настаивать на использовании облачных сервисов, что поможет им в 2018 уделять больше времени непосредственной разработке. Это потребует еще больше автоматизации со стороны настоящих CICD.

Сервис Docker предоставляет кроссплатформенность и множество инструментов для гибкой разработки. Если вы используете в своем проекте контейнеры, то в момент, когда вы закоммитите изменения в Git, сборка по умолчанию будет образом Docker’a с уже интегрированным новым кодом. Кроме того этот образ автоматически пушится в регистр Docker’a, а контейнер разворачивается из образа в среду тестирования (dev-test). От разработчиков требуют, чтобы они поставляли нововведения быстрее и чаще. И DevOps  в скором позволит освободить больше времени на разработку.

6. Open source и развитие облачных сервисов

Open source остается одним из лучших двигателей инноваций, но их реализация и поддержка часто вызывает определенные трудности. Например:

  • Вы хотите создать платформу, управляющую потоками данных информации или событий (streaming data/event management platform), и вы обращаетесь к Kafka. Как только вы начинаете использовать масштабировать Kafk’у, вам необходимо настраивать дополнительные узлы и поддерживать баланс нагрузки на большие кластеры Kafk’и, обновлять их по мере выхода новых обновлений для Kafka и интегрировать эти нововведения в свой проект.
  • Вы хотите использовать Kubernetes для оркестровки контейнеров. Но вместо того, чтобы вы заботились об обновлениях, backup’ах, восстановлениях и патчах для  ваших Kubernetes кластеров, платформа должна брать на себя эти задачи. Обновления для Kubernetes выходят каждые шесть недель, так что ваша платформа должна удовлетворять стратегии rolling deployment и самовосстановления.
  • Вы хотите использовать Cassandra для NoSQL баз данных. Тогда вам нужно, чтобы ваша платформа поддерживала backup (инкрементальный или полный для каждой схемы), систему патчей и кластеров, масштабирование и наконец высокую доступность кластеров Cassandra.

Поэтому разработчики все больше будут искать помощи у облачных сервисов, которые смогут взять на себя все проблемы, связанные возникающие с быстрым развитием open source решений. А сами в то время они смогут уделять больше внимания эксплуатационным и управленческим аспектаом данных технологий.

7. Развитие бессерверных архитектурБессерверные архитектуры достигают огромных успехов в продакшене

То, к чему призывают нас бессерверные архитектуры, очевидно: «Когда возникает потребность в том, чтобы мой код выполнялся на основе определенного события, создается инфраструктура, мой код развертывается и выполняется, и я плачу только за время выполнения моего кода».

Предположим, вы хотите построить функцию бронирования поездок, чтобы забронировать / отменить рейсы, отели и прокат автомобилей. Каждое из этих действий может быть создано как серверная функция, написанная на разных языках, таких как Java, Ruby, JavaScript и Python. У меня нет сервера приложения, который запускается с моим кодом:; скорее, функции создаются и выполняются только тогда, когда это необходимо.

Для разработчиков написание бессерверных функций вместе для выполнения сложных транзакций создает новые проблемы: описание того, как эти функции должны быть соединены, отлаживать распределенные транзакции и определять, как при отказе одной функции в цепочке создавать компенсирующие транзакции для отмены не соответствующих изменений. Ищите облачные сервисы и инструменты с открытым исходным кодом, такие как проект FN, чтобы процветать, помогая разработчикам легко управлять программированием, составлением, отладкой и управлением жизненным циклом бессерверных функций. А также развертывать и тестировать их на ноутбуке,  или на предварительном сервере, или в любом облаке. Ключевым является сбор бессерверной платформы, обеспечивающей максимальную портативность.

8. Единственный оставшийся вопрос о контейнерах — «Почему бы и нет?»

Контейнеры станут стандартом для работы dev/test и обычным для производственных приложений. Ожидайте дальнейшего улучшения безопасности, управляемости, оркестровки, мониторинга и отладки, благодаря open source инновациям и отраслевым стандартам. Контейнеры обеспечивают строительные блоки для многих тенденций, ведущих современную разработку, включая архитектуры микросервисов, облачные приложения, бессерверные функции и декомплексы.

Контейнеры не будут нужны везде — например, когда вам нужна более нормативная облачная платформа, такая как интеграция PaaS или мобильный PaaS. Но эти облачные сервисы более высокого уровня сами будут работать на контейнерах и будут исключениями.

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

9. Программное обеспечение и системы становятся самовосстанавливающимися, самонастраивающимися и самоуправляющимися

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

Объединив большие объемы этих данных в один репозиторий (например, между журналами, метриками производительности, пользовательским интерфейсом и конфигурацией) и применяя множество вычислительных возможностей, машинное обучение и целевые алгоритмы, службы управления облачными системами будут значительно упрощать мониторинг производительности / журнала / конфигурации. Эти облачные сервисы будут устанавливать базовые уровни для пороговых значений. А также наблюдать за транзакциями (избавляя операционную команду от необходимости управлять порогами) и автоматически понимая топологию сервера, связанную с транзакциями. Используя обнаружение аномалий по отношению к этим базовым линиям, службы системного управления автоматически смогут сообщать разработчикам, когда происходит сбой, и будут иметь возможность показать основную причину проблем для конкретной транзакции.

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

10. Высокоавтоматизированные решения по обеспечению безопасности и соответствия требованиям стали новым союзником разработчиков

В то время как разработчики часто думают о безопасности и соответствии неким требованиям, как о «чужой работе» или «узких местах для доставки кода», появление всеобъемлющих режимов безопасности и соблюдения, основанных на компьютерном обучении и поставляемых в качестве SaaS, поможет согласовать эти усилия с быстрыми темпами развития. В частности, высоко автоматизированная киберзащита будет развернута как «upstream» для выявления и устранения потенциальных рисков безопасности в процессе разработки, так и «downstream», чтобы автоматически адаптировать профиль безопасности компании к текущим изменениям приложений и окружающей среды (выявление атак, устранение уязвимостей и оценка непрерывного соответствия ) в производстве.

В некоторых случаях такие меры защиты потребуются, поскольку постоянная оценка соответствия является отличительной чертой ВВП и аналогичных мандатов. Разработчики, специалисты в области безопасности и конечные пользователи будут пользоваться более строгим автоматизированным подходом к обеспечению безопасности на протяжении всего жизненного цикла DevOps.

Перевод статьи » 10 software development predictions for 2018 «

Как вы оцените нашу статью?

0 рейтинг
Upvote Downvote

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

2018

Путь веб-разработчика в 2018 году

нейронные сети

Импульсные нейронные сети: современное состояние и перспективы