Рубрики
Без рубрики

Развертывание приложения для весенней загрузки в облачном лименом бизнесе

Узнайте о шагах, необходимых для вовсяства приложения на Облачном литейное оборудование

Автор оригинала: Corneil du Plessis.

1. Обзор

Развертывание приложения Spring Boot в Cloud Foundry является простым упражнением. В этом учебнике мы покажем вам, как это сделать.

2. Весенние облачные зависимости

Поскольку этот проект потребует новых зависимостей для проекта Spring Cloud, мы добавим БОМ зависимостей весеннего облака:


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

Мы можем найти последнюю версию весенне-облачные зависимости библиотека на Мавен Центральный .

Теперь мы хотим сохранить отдельную сборку для Cloud Foundry, поэтому мы создадим профиль под названием облачность в мавене пом.xml.

Мы также добавим исключения компиляторов и плагин Spring Boot для настройки названия пакета:


    
        
            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
                
            
        
    

Мы также хотим исключить облачные файлы из обычной сборки, поэтому добавляем глобальное исключение профиля в плагин компилятора Maven:


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

Затем нам необходимо добавить библиотеки Spring Cloud Starter и Spring Cloud Connectors, которые обеспечивают поддержку Облачного лимемии:


    org.springframework.cloud
    spring-cloud-starter


    org.springframework.boot
    spring-boot-starter-cloud-connectors

3. Конфигурация облачных лиохих

Чтобы пройти через этот учебник, мы должны зарегистрироваться для пробного здесь или скачать предварительно настроенную среду разработки для Родной Linux или Виртуальная коробка .

Кроме того, необходимо установить облачный литейный КЛИ. Инструкции здесь .

После регистрации у поставщика облачных литейных работ будет доступен URL-адрес API (вы можете вернуться к нему, следуя Инструменты вариант на левой стороне).

Контейнер приложения позволяет связывать службы с приложениями. Далее давайте войдите в среду Cloud Foundry:

cf login -a 

Облачный литейный рынок – это каталог услуг как базы данных, сообщения электронной почты, мониторинг, журналы и многое другое. Большинство услуг предоставляют бесплатный или пробный план.

Давайте искать marketplace для “MyS’L” и создать сервис для нашего приложения:

cf marketplace | grep MySQL
>
cleardb     spark, boost*, amp*, shock*         Highly available MySQL for your Apps.

В описании указаны услуги с “MyS’L”. На PCF услуга MyS’L называется cleardb и несвободные планы отмечены звездочкой.

Далее мы перечислим детали службы, используя:

cf marketplace -s cleardb
>
service plan description                                                                 free or paid
spark        Great for getting started and developing your apps                             free
boost        Best for light production or staging your applications                         paid
amp          For apps with moderate data requirements                                       paid
shock        Designed for apps where you need real MySQL reliability, power and throughput  paid

Теперь мы создаем бесплатный экземпляр сервиса MyS’L под названием весна-загрузка-db :

cf create-service cleardb spark spring-bootstrap-db

4. Конфигурация приложения

Далее мы добавим @Configuration аннотированный класс, который АннотацияКлаудКонфиг создать ДанныеИсточник в пакете под названием org.baeldung.cloud.config :

@Configuration
@Profile("cloud")
public class CloudDataSourceConfig extends AbstractCloudConfig {
 
    @Bean
    public DataSource dataSource() {
        return connectionFactory().dataSource();
    }
}

Добавление @Profile (“облако”) гарантирует, что Облачный разъем не активен, когда мы делаем локальное тестирование. Мы также добавляем @ActiveProfiles (профили и “местные”) к интеграционным тестам.

Затем создайте приложение с помощью:

mvn clean install spring-boot:repackage -P cloudfoundry

Кроме того, мы должны обеспечить manifest.yml файл, чтобы привязать службу к приложению.

Мы обычно разагом manifest.yml файл в папке проекта, но в этом случае мы создадим облачность папку, так как мы собираемся продемонстрировать развертывание нескольким поставщикам облачных услуг:

---
applications:
- name: spring-boot-bootstrap
  memory: 768M
  random-route: true
  path: ../target/spring-boot-bootstrap-cf.jar
  env:
    SPRING_PROFILES_ACTIVE: cloud,mysql
  services:
  - spring-bootstrap-db

5. Развертывание

Развертывание приложения теперь так же просто, как:

cd cloudfoundry
cf push

Cloud Foundry будет использовать Java buildpack для развертывания приложения и создания случайного маршрута к приложению.

Мы можем просмотреть последние несколько записей в файле журнала с помощью:

cf logs spring-boot-bootstrap --recent

Или мы можем следить за файлом журнала:

cf logs spring-boot-bootstrap

Наконец, нам нужно название маршрута для тестирования приложения:

cf app spring-boot-bootstrap
>
name:              spring-boot-bootstrap
requested state:   started
routes:            spring-boot-bootstrap-delightful-chimpanzee.cfapps.io
last uploaded:     Thu 23 Aug 08:57:20 SAST 2018
stack:             cflinuxfs2
buildpacks:        java-buildpack=v4.15-offline-...

type:           web
instances:      1/1
memory usage:   768M
     state     since                  cpu    memory           disk
#0   running   2018-08-23T06:57:57Z   0.5%   290.9M of 768M   164.7M of 1G

Выполнение следующей команды добавит новую книгу:

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

И эта команда перечислит все книги:

curl -i https:///api/books 
#OR 
http https:///api/books
>
HTTP/1.1 200 OK

[
    {
        "author": "Iain M. Banks",
        "id": 1,
        "title": "Player of Games"
    },
    {
        "author": "J.R.R. Tolkien",
        "id": 2,
        "title": "The Hobbit"
    }
]

6. Масштабирование приложения

Наконец, масштабирование приложения на Cloud Foundry так же просто, как и использование масштаб команда:

cf scale spring-cloud-bootstrap-cloudfoundry 
Options:
-i 
-m  # Like 512M or 1G
-k  # Like 1G or 2G
-f # Force restart without prompt

Не забудьте удалить приложение, когда оно нам больше не нужно:

cf delete spring-cloud-bootstrap-cloudfoundry

7. Заключение

В этой статье мы рассмотрели библиотеки Spring Cloud, которые упрощают разработку облачного приложения с использованием Spring Boot. Развертывание с облачным литейным CLI хорошо документировано здесь .

Дополнительные плагины для CLI доступны в репозиторий плагинов .

Полный исходный код наших примеров здесь, как всегда, более на GitHub .