[JAVA] Versuchen Sie, eine mit Quarkus erstellte App auf Heroku auszuführen

Einführung

Sie verwenden Heroku, um Webanwendungen kostenlos auszuführen, oder? Wenn Sie es jedoch kostenlos verwenden und die Anwendung länger als 30 Minuten verlassen (keine Anforderung), wird der Server in den Energiesparmodus versetzt.

Wenn Sie nach dem Ruhezustand auf die Anwendung zugreifen, dauert es einige Zeit, bis die Antwort zurückkommt. Um die Startzeit zu verkürzen, habe ich versucht, GraalVM zu verwenden, das in letzter Zeit Aufmerksamkeit erregt hat, und Quarkus, das Java-Webanwendungen auf GraalVM ausführen kann.

Dieses Mal möchte ich vergleichen, wie Quarkus mit Heroku und die Startzeit mit Spring Boot ausgeführt werden.

Voraussetzungen

Vorbereiten der Quarkus-Anwendung

Eine Anwendung erstellen

Weitere Informationen zum Erstellen einer Anwendung finden Sie im folgenden Artikel.

Ich habe das Java-Framework "Quarkus" ausprobiert

Docker-Dateierstellung

Dieses Mal werden wir Herokus Container-Registrierung für die Docker-Registrierung verwenden.

Erstellen Sie die folgende Datei.

src/main/docker/Dockerfile.web


FROM registry.fedoraproject.org/fedora-minimal
WORKDIR /work/
COPY *-runner /work/application
RUN chmod 775 /work
EXPOSE 8080
CMD ["./application", "-Dquarkus.http.host=0.0.0.0", "-Dquarkus.http.port=${PORT}"]

-Dquarkus.http.port=${PORT}Wird benötigt, um an dem von Heroku angegebenen Port zu booten. Ohne dies kann es nicht gestartet werden.


 Übrigens können Sie den Startport der Quarkus-App ändern, indem Sie den Teil $ {PORT} ändern.

## Melden Sie sich beim Heroku-Container an

```console
heroku container:login

Erstellen Sie eine Anwendung auf Heroku

heroku create <Anwendungsname>

Danach gehen Sie bitte mit dem Projektstamm.

Zur Docker-Registrierung verschieben

heroku container:push -R -a <Anwendungsname>

Starten Sie Docker

heroku container:release web -a <Anwendungsname>

Funktionsprüfung

curl https://<Anwendungsname>.herokuapp.com/hello

Bestätigen Sie, dass Hallo ausgegeben wird.

Vorbereiten der Spring Boot-Anwendung

Eine Anwendung erstellen

RestController


@SpringBootApplication
@RestController
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@RequestMapping("hello")
	public String home() {
		return "hello";
	}
}

Erstellen einer Docker-Datei

Dockerfile


FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/app.jar app.jar
CMD ["java","-jar","app.jar","--server.port=${PORT}"]

** Die folgenden Schritte sind mit Quarkus identisch, daher werden sie weggelassen. ** ** **

Messen Sie die Startzeit nach dem Schlafengehen

Warten Sie, bis sich der Heroku-Server im folgenden Zustand befindet. スクリーンショット_2019-04-10_12_35_14.png

Führen Sie den folgenden Befehl zum Messen aus.

Messung der Quarkus-Anwendung

curl https://<Name der Quarkus-Anwendung>.herokuapp.com/hello -o /dev/null -w  "%{time_starttransfer}\n" -s
7.038011

Messung der Spring Boot-Anwendung

curl https://<Name der Spring Boot-Anwendung>.herokuapp.com/hello -o /dev/null -w  "%{time_starttransfer}\n" -s
15.208555

** Quarkus bootet jetzt in der Hälfte der Zeit von Spring Boot **

Recommended Posts

Versuchen Sie, eine mit Quarkus erstellte App auf Heroku auszuführen
Versuchen Sie, SlackBot mit Ruby x Sinatra auf AWS Lambda auszuführen
Veröffentlichen Sie die mit Ruby on Rails erstellte App
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Kann ich alle Kombinationen mit einer App mit 20 Kontrollkästchen ausprobieren?
Erstellen Sie eine App mit Spring Boot 2
Versuchen Sie, den Cloudera Manager mit Docker auszuführen
Probieren Sie Quarkus mit IBM Cloud Shell aus
Erstellen Sie eine App mit Spring Boot
Versuchen Sie, Spring Boot auf Kubernetes auszuführen
DB-Fehler bei der Bereitstellung mit Heroku
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
Erstellen einer App und erstmaliges Bereitstellen mit heroku
Versuchen Sie, MySql und Blazor mit Docker-Compose auszuführen
Versuchen Sie, die Rails-App für EC2-Teil 1 bereitzustellen.
Schritte zum Veröffentlichen einer Anwendung auf Heroku
Ich habe einen Öko-Server mit Scala gemacht
Versuchen Sie Health Check für Azure App Service.
Ich habe eine Janken App mit Kotlin gemacht
Stellen Sie eine Java-Web-App für Heroku bereit
Ich habe eine Taschenrechner-App für Android erstellt
Erstellen Sie eine Umgebung mit Docker unter AWS
Versuchen Sie es mit der Ressourcenanweisung in der Web-App
Ich habe eine Janken App mit Android gemacht
Hello World, eine plattformübergreifende GUI-App mit Groovy, die auf der Java-Plattform ausgeführt wird
Versuchen Sie, ScalarDB unter WSL Ubuntu (Environment Construction) auszuführen.
Downgrade einer vorhandenen App, die mit Rails 5.2.4 erstellt wurde, auf 5.1.6
Ich habe selbst eine App gemacht! (Leseverwaltungs-App)
Ich habe eine Android-App für den MiRm-Dienst erstellt
SSH-Login beim App-Server mit Heroku
Ich habe einen LINE Bot mit Rails + Heroku gemacht
Ich habe mit Ruby On Rails ein Portfolio erstellt
Ich habe versucht, mit Gradle auf Heroku zu beginnen