Продолжаем наш цикл материалов о применении Java в наиболее “горячих” и трендовых нишах ИТ-рынка. В прошлых статьях мы уже поговорили о причинах популярности Java в сфере Интернета вещей (IoT) и разобрали, почему без него не обходится ни один полноценный Big Data проект. На очереди следующая мегатрендовая ниша — облака и облачные сервисы. Java в облаках. Как облачные приложения завоевывают мир и зачем им Java - 1“Если меня спрашивают о том, что такое облачные вычисления и облачные сервисы, я стараюсь не заходить в дебри сложных определений, а просто говорю, что облака — это способ лучше управлять вашим бизнесом.” Марк Бениофф, исполнительный директор и председатель совета директоров компании Salesforce.Java в облаках. Как облачные приложения завоевывают мир и зачем им Java - 2

Cloud computing. Почему “витать в облаках” — это круто

Для начала надо сказать, что сейчас облачные сервисы, по крайней мере на Западе и в развитых странах, — это уже не модный ИТ-тренд, как, например, Интернет вещей или искусственный интеллект (ИИ). Модным трендом “облака” были лет эдак десять назад. Сейчас же облачные сервисы — это наша суровая (ну или не очень) айтишная реальность и неотъемлемая часть большинства бизнес-процессов. Но от этого “облачные” технологии, конечно, не становятся менее крутыми. И программисту, которому хотелось бы работать в крупных компаниях и над серьезными проектами, без знания облаков обойтись будет сложно. Сегодня многие из нас пользуются облачными сервисами постоянно, даже не задумываясь об этом — например, бронируя гостиницы онлайн, заказывая и оплачивая доставку еды из ресторанов или просто просматривая ленту новостей в Facebook. Компании по всему миру активно переходят на облачные сервисы, потому что это более удобно и позволяет улучшить продуктивность наряду с упрощением многих бизнес-процессов. Какие конкретно преимущества внедрение cloud сервисов дает компаниям и почему бизнес уже не первый год все активнее “улетает в облака”? Кратко пройдемся по основным пунктам.
  • Сокращение затрат и экономия средств

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

  • Надежность и высокий аптайм

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

  • Доступность и быстрая масштабируемость

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

“Облачные вычисления грандиозно расширяют возможности. Теперь кто угодно с доступом к интернету и кредитной картой может запускать приложения и управлять ими, используя ресурсы современных дата-центров. Благодаря облакам инновации ускоряются и становятся все дешевле.” Джамал Мазар (Jamal Mazhar), основатель и исполнительный директор компании Kaavo. Java в облаках. Как облачные приложения завоевывают мир и зачем им Java - 3

Как Java применяется в облачных вычислениях?

По данным опроса более чем 600 ИТ-профессионалов по всему миру от некоммерческой организации Cloud Foundry Foundation, Java является самым популярным языком для разработки корпоративных облачных приложений. Его выбрали 57% экспертов, которые в своей работе применяют облачные вычисления. Если говорить о том, почему Java популярен в том числе и в облачной среде (помимо других трендовых ниш), причины такой популярности будут все те же, что и в случае с другими сферами, а именно, — простота, адаптивность, платформонезависимость и надежность Java. Возможность запуска одной и той же программы на различных системах и широчайший выбор библиотек обеспечивают большую популярность и востребованность Java в облачной сфере. “Облака уравнивают компании разных размеров в возможностях. Облака — они для всех. Облака — это демократия.” Марк Бениофф, исполнительный директор и председатель совета директоров компании Salesforce.
Java в облаках. Как облачные приложения завоевывают мир и зачем им Java - 4

Популярные Java-инструменты для разработки в облаке

А теперь кратко пройдемся на наиболее популярным инструментам для разработки Java-приложений в облаке.
  1. Google App Engine

    Google App Engine позволяет легко развертывать и запускать стандартные веб-приложения Java с использованием Servlet (Servlet является интерфейсом Java, реализация которого расширяет функциональные возможности сервера). Приложения App Engine автоматически масштабируются на основе входящего трафика. Также Google App Engine поддерживает огромное количество разных фич, среди которых балансировка нагрузки, микросервисы, авторизация, реляционные и нереляционные базы данных для разных задач и объемов информации, memcache, разделение трафика, ведение журнала, поиск, управление версиями, развертывание и откат, а также сканирование безопасности.

  2. Cloud Foundry

    Cloud Foundry — это платформа облачных вычислений с открытым исходным кодом, предлагаемая в виде услуги (PaaS модель, платформа как сервис). Она управляется организацией Cloud Foundry Foundation. Первоначально Cloud Foundry была разработана компанией VMware, потом перешла к Pivotal Software, но в конце 2019 года вернулась в VMware после того, как та приобрела Pivotal.

    Cloud Foundry поддерживает полный жизненный цикл разработки, от начальных этапов до всех стадий тестирования и развертывания продукта. Таким образом, Cloud Foundry хорошо подходит для стратегии непрерывной доставки. У пользователей есть доступ к одному или нескольким пространствам, которые обычно соответствуют этапам жизненного цикла разработки. Например, приложение, которое готово к QA тестированию, можно развернуть в QA пространстве этого проекта. При этом, у разных пользователей могут быть разные права доступа к различным пространствам в рамках одного и того же проекта.

  3. Oracle Java Cloud Service

    Oracle Java Cloud Service (JCS) является частью корпоративной облачной среды для бизнеса Oracle Cloud, которая предлагает бизнес-приложения самообслуживания, поставляемые в интегрированной разработке и платформе внедрения со средствами для быстрого расширения и создания новых услуг.

    Oracle Java Cloud Service позволяет пользователям быстро создавать и настраивать домен Oracle WebLogic Server и настраивать среду приложения Java EE, не беспокоясь о настройке инфраструктуры или деталей платформы самостоятельно.

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

  4. AWS SDK для Java

    Amazon предоставляет полный набор инструментов, документацию и примеры кода, которые необходимы для разработки безопасных, надежных и масштабируемых Java-приложений в облаке AWS.

    Пользователи Eclipse Java IDE могут начать работу с SDK, используя AWS Toolkit для Eclipse и IDEA. AWS Toolkit для Eclipse — это подключаемый модуль для Eclipse Java IDE, который облегчает создание, развертывание и отладку приложений Java с помощью Amazon Web Services.

    Amazon также предоставляет специальный набор API для многих сервисов AWS, включая Amazon S3, Amazon EC2, DynamoDB и другие. Единственный загружаемый пакет включает библиотеку Java AWS, примеры кода и документацию.

  5. Jelastic

    Jelastic (сокращение от Java Elastic) — это хостинговая платформа для Java и PHP (а также Node, Ruby, Python и Go) с возможностью запуска и масштабирования приложений на Java и PHP без предварительной подготовки сервера вручную.

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

    Сегодня платформа Jelastic быстро становится стандартом для поставщиков облачных услуг по всему миру и завоевывает популярность на корпоративном рынке, предоставляя превосходную облачную среду “под ключ” заметно дешевле существующих решений для виртуализации.

  6. Heroku Java

    Heroku — это облачная PaaS (Platform-as-a-Service) платформа, основанная на управляемой контейнерной модели, с интегрированными службами данных и мощной экосистемой для развертывания и запуска современных приложений.

    Heroku поддерживает целый ряд языков программирования, среди которых Java, Node.js, Scala, Clojure, Python, PHP, Ruby и Go. Сервис упрощает развертывание и масштабирование приложений Java в облаке.

  7. Spring Cloud

    Spring Cloud — это набор инструментов от компании Pivotal, который предоставляет решения для создания надежных облачных приложений. Этот фреймворк облегчает разработку приложений, предоставляя решения многих распространенных проблем, возникающих при переходе в распределенную среду.

    “Благодаря облакам частные лица и небольшие компании могут создавать сервисы высокого корпоративного класса с минимум затрат, просто щелкнув пальцами.”

    Рой Стефан (Roy Stephan), основатель и CEO компании PierceMatrix.

Эпилог

Как мы видим, облачные вычисления — это еще одна область ИТ-рынка, за которой будущее и где Java не просто применяется, а зачастую является основным языком. Без нашего любимого Java многим компаниям будет сложновато представить организацию технологических процессов. А с быстрым переходом бизнесов и организаций в облака увеличивается и спрос на Java программистов, не только владеющих этим ЯП, но и умеющих применять облачные инструменты и технологии.
Что почитать еще: