Nasadenie aplikácie Spring Boot do Cloud Foundry

1. Prehľad

Nasadenie aplikácie Spring Boot do Cloud Foundry je jednoduché cvičenie. V tejto príručke vám ukážeme, ako na to.

2. Jarné závislosti na oblakoch

Pretože tento projekt bude vyžadovať nové závislosti pre projekt Spring Cloud, pridáme kusovník Spring Cloud Dependencies:

   org.springframework.cloud spring-cloud-dependencies Greenwhich.RELEASE pom import 

Môžeme nájsť najnovšiu verziu závislosti jar-oblak knižnica na Maven Central.

Teraz chceme zachovať samostatné zostavenie pre Cloud Foundry, takže vytvoríme profil s názvom cloudfoundry v Maven pom.xml.

Pridáme tiež vylúčenia kompilátora a doplnok Spring Boot na konfiguráciu názvu balíka:

   src / main / resources ** / logback.xml org.springframework.boot spring-boot-maven-plugin $ {project.name} -cf org.apache.maven.plugins maven-compiler-plugin ** / cloud / config / * .java 

Chceme tiež vylúčiť súbory špecifické pre cloud z normálneho zostavenia, takže do pluginu kompilátora Maven pridáme globálne vylúčenie profilu:

   org.apache.maven.plugins maven-compiler-plugin ** / cloud / *. java 

Potom musíme pridať knižnice Spring Cloud Starter a Spring Cloud Connectors, ktoré poskytujú podporu pre Cloud Foundry:

 org.springframework.cloud Spring-Cloud-Starter org.springframework.boot Spring-Boot-Starter-Cloud-konektory 

3. Konfigurácia cloudovej zlievarne

Aby sme prešli týmto tutoriálom, musíme sa tu zaregistrovať na vyskúšanie alebo si stiahnuť predkonfigurované vývojové prostredie pre natívny Linux alebo Virtual Box.

Ďalej je potrebné nainštalovať Cloud Foundry CLI. Pokyny nájdete tu.

Po registrácii u poskytovateľa služby Cloud Foundry bude sprístupnená adresa URL API (môžete sa k nej vrátiť podľa postupu v časti) Náradie možnosť na ľavej strane).

Kontajner aplikácií nám umožňuje viazať služby na aplikácie. Ďalej sa prihlásime do prostredia Cloud Foundry:

cf login -a 

Cloud Foundry Marketplace je katalóg služieb ako sú databázy, správy, e-maily, monitorovanie, protokolovanie a oveľa viac. Väčšina služieb poskytuje bezplatný alebo skúšobný plán.

Poďme na Marketplace vyhľadať „MySQL“ a vytvorme službu pre našu aplikáciu:

porovnaj trhovisko | grep MySQL
> cleardb spark, boost *, amp *, shock * Vysoko dostupná MySQL pre vaše aplikácie. 

Na výstupe sú v popise uvedené služby s výrazom „MySQL“. Na PCF je služba MySQL pomenovaná cleardb a neslobodné plány sú označené hviezdičkou.

Ďalej uvádzame podrobnosti služby pomocou:

cf marketplace -s cleardb
> popis plánu služby bezplatná alebo platená iskra Skvelé pre začatie a vývoj vašich aplikácií bezplatná podpora Najlepšie pre ľahkú výrobu alebo prípravu vašich aplikácií platený zosilňovač Pre aplikácie so strednými požiadavkami na dáta platený šok Navrhnuté pre aplikácie, kde potrebujete skutočnú spoľahlivosť MySQL, platený výkon a priepustnosť

Teraz vytvoríme bezplatnú inštanciu služby MySQL s názvom spring-bootstrap-db:

cf create-service cleardb spark spark-bootstrap-db

4. Konfigurácia aplikácie

Ďalej pridáme a @ Konfigurácia komentovaná trieda, ktorá sa rozširuje AbstractCloudConfig vytvoriť Dátový zdroj v balíku s názvom org.baeldung.cloud.config:

@Configuration @Profile („cloud“) verejná trieda CloudDataSourceConfig rozširuje AbstractCloudConfig {@Bean public DataSource dataSource () {return connectionFactory (). DataSource (); }}

Pridávanie @Profile („cloud“) zaisťuje, že cloudový konektor nie je aktívny, keď robíme lokálne testovanie. Tiež pridáme @ActiveProfiles (profily = {„miestne“}) k integračným testom.

Potom vytvorte aplikáciu pomocou:

mvn clean install spring-boot: prebaliť -P cloudfoundry

Musíme tiež poskytnúť a manifest.yml súbor, aby sa služba spojila s aplikáciou.

Zvyčajne umiestňujeme manifest.yml súbor v priečinku projektu, ale v tomto prípade vytvoríme a cloudfoundry priečinok, pretože budeme demonštrovať nasadenie u viacerých poskytovateľov natívnych pre cloud:

--- aplikácie: - názov: spring-boot-bootstrap pamäť: 768M náhodná trasa: skutočná cesta: ../target/spring-boot-bootstrap-cf.jar env: SPRING_PROFILES_ACTIVE: cloud, služby mysql: - spring-bootstrap -db

5. Nasadenie

Nasadenie aplikácie je teraz také ľahké ako:

cd cloudfoundry cf tlačiť

Cloud Foundry použije Java buildpack na nasadenie aplikácie a vytvorenie náhodnej trasy k aplikácii.

Posledných niekoľko položiek v protokolovom súbore môžeme zobraziť pomocou:

cf logs spring-boot-bootstrap --recent

Alebo môžeme sledovať súbor protokolu:

cf prihlási jar-boot-bootstrap

Na záver potrebujeme na otestovanie aplikácie názov trasy:

cf app spring-boot-bootstrap
> názov: spring-boot-bootstrap požadovaný stav: začaté trasy: spring-boot-bootstrap-delightful-chimpanzee.cfapps.io naposledy nahrané: št 23. augusta 08:57:20 SAST 2018 zásobník: cflinuxfs2 buildpacks: java-buildpack = v4 .15-offline -... typ: webové inštancie: využitie pamäte 1/1: stav 768 M od spustenia pamäťového disku CPU č. 2018-08-23T06: 57: 57Z 0,5% 290,9 M z 768 M 164,7 M z 1G 

Vykonaním nasledujúceho príkazu pridáte novú knihu:

curl -i --request POST \ --header "Content-Type: application / json" \ --data '{"title": "The Player of Games", "autor": "Iain M. Banks"}' \ /// api / books #OR http POST /// api / books author = "Iain M. Banks" 

A tento príkaz zobrazí zoznam všetkých kníh:

zvlnenie -i /// api / knihy #OR http /// api / knihy
> HTTP / 1.1 200 OK [{"autor": "Iain M. Banks", "id": 1, "title": "Player of Games"}, {"autor": "JRR Tolkien", "id": 2, "title": "The Hobbit"}] 

6. Mierka aplikácie

A nakoniec, zmena mierky aplikácie v Cloud Foundry je rovnako jednoduchá ako použitie mierka príkaz:

cf scale spring-cloud-bootstrap-cloudfoundry Možnosti: -i -m # Ako 512M alebo 1G -k # Ako 1G alebo 2G -f # Vynútiť reštart bez výzvy

Nezabudnite aplikáciu vymazať, keď ju už nepotrebujeme:

cf zmazať spring-cloud-bootstrap-cloudfoundry

7. Záver

V tomto článku sme sa venovali knižniciam Spring Cloud, ktoré zjednodušujú vývoj natívnej cloudovej aplikácie pomocou Spring Boot. Nasadenie pomocou rozhrania CLI Cloud Foundry je tu dobre zdokumentované.

Dodatočné doplnky pre CLI sú k dispozícii v úložisku doplnkov.

Celý zdrojový kód našich príkladov je tu ako vždy na GitHubu.