Статьи

Heroku добавляет поддержку Java

Сегодня Heroku объявил, что Java теперь поддерживается на платформе облачных приложений Heroku! Это невероятно интересные новости, и мне очень повезло стать евангелистом Heroku для Java Developer!

Присоединение к salesforce.com и проникновение в пространство Java Cloud вызывает у меня некоторую ностальгию. Когда я начал использовать Java в 1997 году, я работал в интернет-провайдере в Денвере. Мы занимались обычным веб-хостингом, но когда появились первые движки Java Servlet (например, Java Web Server 1.0), я создал хостинг-сервис wantjava.com. Сначала все было очень неприятно. Мы могли запустить только один экземпляр JWS на сервере, поэтому я нашел очень плохой способ «многопользовательского режима». Я настроил задание cron для rsync файлов клиентов .class в веб-приложение сервера, а затем перезапустил сервер. Клиенты должны были написать мне по электронной почте, чтобы добавить сервлет в файл web.xml. Uggg … Я чувствую, что мне нужно пойти на исповедь для этого. Но это сработало, и по мере улучшения контейнеров Servlet мы быстро перешли на более устойчивую модель.

Тринадцать лет спустя я имею честь снова стать частью Java на облаке. Но на этот раз все намного проще, лучше и сексуальнее! Heroku является лидером в развертывании приложений нового поколения, которое значительно облегчает работу разработчиков Java.

Что такое Героку?

Вскоре я расскажу, как можно запустить Java на Heroku, но сначала, что такое Heroku? С моей точки зрения, Heroku — это облачная прикладная платформа Polyglot . Heroku предоставляет нам способ запуска приложений Ruby, Node.js, Clojure и Java в управляемой, масштабируемой и мультитенантной системе. Heroku также предоставляет многочисленные дополнения, которые помогают нам перейти от монолитного промежуточного программного обеспечения к облачным компонентам . Еще один способ сказать это:

Heroku = Polyglot + Platform as a Service (PaaS) + Cloud Components

 

Очень интересно видеть, как эти три вещи собираются вместе! С Polyglot я могу выбрать правильный инструмент для работы. С PaaS мне не нужно думать об управлении операционными системами, масштабируемости, отказоустойчивости и т. Д. А благодаря облачной архитектуре компонентов я могу сохранять тонкость своего приложения и сосредоточиться на том, что уникально для проблемы, которую необходимо решить. Heroku объединяет эти модели в качестве платформы облачных приложений.

Запуск приложений Java на Heroku

Heroku может запускать любое приложение Java, которое работает в OpenJDK 6. Сегодня Heroku использует Maven для создания « слага » для приложений Java. Этот слаг может быть загружен на одну или несколько « динамов ». Вы можете указать dyno выполнить / запустить приложение Java из командной строки, а также можете использовать « Procfile » для предоставления команды, которая будет автоматически запускаться для каждого экземпляра определенного типа dyno. Веб-dyno могут прослушивать порт и получать HTTP-трафик через балансировщик нагрузки, который автоматически настраивается для каждого приложения. Имея эти базовые знания, давайте погрузимся в код!

Для Dreamforce 2011 я (с помощью нескольких коллег) собрал книгу Heroku для Java . Рабочая книга содержит подробные инструкции о том, как создавать веб-приложения, подключаться к базе данных, настраивать рабочие процессы, использовать надстройку Redis to Go Heroku и использовать Spring Roo на Heroku. Но если вам не терпится начать и вам не нужно много рук, вот быстрый и очень простой способ узнать, как запустить Java на Heroku:

  1. Установите клиент командной строки heroku на Linux , Mac или Windows .
  2. Установите git и настройте ваш ключ ssh
  3. Установить Maven
  4. Войдите в Heroku из командной строки:
    heroku auth:login
  5. Создайте новый каталог проекта и перейдите в него:
    mkdir helloherokujava
    cd helloherokujava
  6. Создайте файл сборки Maven с именем pom.xml, содержащий:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>foo</groupId>
    <version>1.0-SNAPSHOT</version>
    <name>helloherokujava</name>
    <artifactId>helloherokujava</artifactId>
    </project>
  7. Создайте исходный каталог Java:
    mkdir -p src/main/java
  8. Создайте новый класс Java в каталоге src / main / java с именем Hello.java, содержащий:
    public class Hello
    {
    public static void main(String[] args)
    {
    System.out.println("hello, world");
    }
    }
  9. Скомпилируйте класс:
    mvn compile
  10. Запустите класс локально:
    java -cp target/classes Hello
  11. Создайте локальное репозиторий git, добавьте файл pom.xml & src dir и зафиксируйте файлы:
    git init
    git add pom.xml src
    git commit -m init
  12. Создайте новое приложение на Heroku, используя стек Cedar:
    heroku create -s cedar
  13. Загрузите свое приложение в Heroku:
    git push heroku master

    Heroku создаст слаг для вашего приложения.

  14. Запустите приложение на Heroku:
    heroku run "java -cp target/classes Hello"

    Heroku запустит новый динамо с вашим слагом и затем выполнит указанную команду.

Вы только что запустили Java в облаке! Очевидно, это очень простой пример. Но мне нравится начинать новые вещи с самой простой вещи, которая могла бы работать. Теперь, когда у вас есть такая работа, вам нужно больше учиться и гораздо больше сил!

Следующие шаги

  • Пройдите через Heroku для Java Workbook
  • Просмотрите статьи в Центре разработки Heroku.
  • Задавайте вопросы о Heroku на StackOverflow
  • Продолжайте смотреть здесь для многих других блогов о Java на Heroku

Веселитесь и, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы о Heroku.

 

С http://www.jamesward.com/2011/08/25/heroku-adds-java-support