Сегодня 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:
- Установите клиент командной строки heroku на Linux , Mac или Windows .
- Установите git и настройте ваш ключ ssh
- Установить Maven
- Войдите в Heroku из командной строки:
heroku auth:login
- Создайте новый каталог проекта и перейдите в него:
mkdir helloherokujava
cd helloherokujava - Создайте файл сборки 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> - Создайте исходный каталог Java:
mkdir -p src/main/java
- Создайте новый класс Java в каталоге src / main / java с именем Hello.java, содержащий:
public class Hello
{
public static void main(String[] args)
{
System.out.println("hello, world");
}
} - Скомпилируйте класс:
mvn compile
- Запустите класс локально:
java -cp target/classes Hello
- Создайте локальное репозиторий git, добавьте файл pom.xml & src dir и зафиксируйте файлы:
git init
git add pom.xml src
git commit -m init - Создайте новое приложение на Heroku, используя стек Cedar:
heroku create -s cedar
- Загрузите свое приложение в Heroku:
git push heroku master
Heroku создаст слаг для вашего приложения.
- Запустите приложение на 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