This blog post describes a tutorial how to get started with application development and deployment to a local and public Pivotal Cloud Foundry (PCF) environment.
In order to complete the tutorial you need to have the following software installed:
- Spring Tool Suite 3.8 or higher
- Java 7 or higher
- VirtualBox 5 or higher
The overall goal is to set up the local and public cloud configuration and deploy the same sample application to each one.
The blog post will guide you through the process of registering for a public PCF account as well as the setup of a local PCF development (PCF Dev) environment. The PCF Dev is a light-weight implementation of the full PCF setup that can be run locally and is very suitable for implementation and testing.
The application to be deployed is taken from the Pivotal Getting Started samples. The import, build and deployment of the application is done using the Spring Tool Suite (STS). If you already have an existing Eclipse installation you can add the STS as extension instead of installing it from scratch. This tutorial will however not describe these steps and is based on a fresh STS installation.
Installing the Cloud Foundry Command Line interface
Prior to using the public or local Cloud Foundry platform it is required to install the Cloud Foundry Command-Line Interface (CF CLI). The download can be found here: https://console.run.pivotal.io/tools
Download the installer suitable for your Operating System, extract it and run the binary contained in the downloaded file. The installation does not take any parameters.
Registration for a public Pivotal Cloud Foundry account
The base requirement to deploy an application to the public cloud is an account at Pivotal. The registration is free and can be done here.
If you already have an account you can sign in here and proceed to the next step.
On the dialog enter your name, e-mail and password. After the submission of this form an activation link will be sent to your e-mail address.
Confirm the link in your inbox and it will take you to the following web page.
On this page select the Pivotal Web Services. This will take you to a dialog where you need to accept the terms of service. Depending on your preference you can check/uncheck the e-mail notifications and updates from Pivotal.
Select Next: Claim your trial. You need to provide a phone number where you can receive a call or SMS for verification. After this the registration is completed.
If you’re not automatically directed to your Cloud Foundry console, you can always access it via the following link: https://console.run.pivotal.io
The first thing you are asked to do is create an Org. You can label it anything you like as long as the name is not already taken. A so-called space with the name of development is automatically created within this Org.
You will see an overview of your deployments and services. If you just created your space you will have no apps or services running.
You can log out for now.
Configuration of the Pivotal Cloud Foundry development (PCF Dev) environment
In order to host a Cloud Foundry platform locally the fastest way is to download and run the PCF Dev environment. You can access the download at: https://network.pivotal.io/products/pcfdev
Pick the download suitable for your Operating System. (This tutorial was written using pcfdev-v0.17.0 on Windows). The download is fairly small in size (~4MB). Extract the content to a certain directory (e.g. pcfdev) and open a command shell in this directory. Execute the executable within this directory.
It will tell you once the plugin is successfully upgraded. After that run “cf dev help” to get the following output screen.
Run “cf dev start -s scs” to kick-off the download and deployment of the VM.
Upon the first start it will ask you to retrieve an API token from your Pivotal profile. Log in to get it here: https://network.pivotal.io/users/dashboard/edit-profile
Copy & paste it into the CLI prompt to continue.
Note: This will download a VM with hard disk size of multiple GBs. It is recommended to do this step using a fast Internet connection.
After completion the VM will automatically be started.
In your VirtualBox Manager you will see a new running VM.
Verification of local and public account (Optional step)
Use the CF CLI to login to both public and local Cloud Foundry platform.
For the local platform type:
“cf login -a https://api.local.pcfdev.io –skip-ssl-validation”
Enter username user and password pass to continue.
Type cf version to show the implementation version of cf app and to list the installed apps (there won’t be any in a new installation).
The PCF Dev environment also provides a web console: https://console.local.pcfdev.io/2
As the CF CLI can only be logged in to one Cloud Foundry platform at a time you need to disconnect typing “cf logout“.
Now login to the public platform using:
“cf login -a api.run.pivotal.io”
Enter the email and password you selected when you created the Pivotal account.
The login dialog should look similar to this:
To verify also run the commands “cf version” and “cf app” and logout again.
Creating the server connections in Spring Tool Suite
Open the Spring Tools Suite
Select File -> New -> Other, Expand Server, select Server and click Next >
Expand Cloud Foundry and select Cloud Foundry
Label the Server name: CF public
Select Next >
Edit Email and password and Select Manage Cloud …
Click Add …
Enter a name (e.g. CF public) and the URL: https://api.run.pivotal.io
Your dialog should look similar to this one now (showing your own credentials) :
After successful validation the Finish button gets enabled. Press it to complete.
Repeat the previous steps to create the server definition for the CF local server. Use the following specs:
- Name: CF public
- Email: user
- Password: pass
- Select Trust self-signed certificate
After completion your Servers dashboard should contain 3 entries:
The server connections configuration is now completed.
Import and test run of a sample application
Within the Spring Tool Suite import a sample application.
Select File -> New-> Import Spring Getting Started content.
Select “Messaging Stomp Websocket” (You can basically use any simple type application, but the tutorial was tested with this one).
Uncheck Code Sets initial.
Right-click on the application in the package explorer, select Refactor and Rename. (or press Alt-Shift-R)
Rename the app to something personal. In my example I used “mhs-messaging”.
Right-click the application again and select Run As -> Spring Boot App
In the console you should be able to see the deployment. Wait until it shows a line with the content
Open a web browser and point it to the URL: http://localhost:8080/
The app should be displayed. Click connect, enter a name and press Send.
If you see the previous screen the app has been compiled and deployed successfully. It is now running on a Tomcat server locally on your Operating System.
Run the sample application on the CloudFoundry instances
Now that you have set up an application in your development environment and configured two cloud instances you can move forward to deploy the same application to them.
Right-click the application within the Spring Tool Suite again.
This time select Run As -> Run on Server.
You will see the local and public instances of Cloud Foundry, which you have configured before:
Select CF local and click Finish.
On the application details dialog select Next >
On the Launch deployment dialog copy the Deployed URL information to your clipboard.
In the console you can trace the deployment again. The log output will be different this time in a way that the application and the Tomcat server will not be deployed locally to your OS, but to the running VM that hosts the Cloud Foundry runtime.
Once the application is running open a new browser and point it to the link you saved in your clipboard. In case you did not save, it is: http://<name_of_your_app>.local.pcfdev.io. In my case this is http://mhs-messaging.local.pcfdev.io
The browser should look identical to the local test of the previous example. However the application is hosted within Cloud Foundry (PCF Dev) this time.
As a final step, deploy the application to the public Cloud Foundry platform.
Repeat the steps from above. As this deployment will be publicly available on the Internet, the URL must be unique. If your name is already in use, the deployment will be rejected and you need to use a unique name in the URL.
After completing the dialogs, you will see the deployment steps in the console again. After that your application is running in the public Cloud and accessible via: http://<name_of_your_app>.cfapps.io. In my case this is http://mhs-messaging.cfapps.io
With this tutorial you have seen 3 different ways to deploy an application. A “non-Cloud” local deployment and 2 Cloud deployments – to a local development environment and to the public cloud. To the end-user the access is almost transparent, it basically differs by URL only. However, the underlying runtime is significantly different in terms of location and flexibility.
For further validation you can now log in again to the Cloud Foundry Web Services page (public and/or local) where you see your running app:
Alternatively you can use the CF CLI to control via command line.
The tutorial completes with this step. Thanks for reading!
Cloud Native Platform: Link
Getting Started with Pivotal Cloud Foundry: Link
Spring general: Link
Spring Cloud: Link
NovaTec Blog Post by Johannes Dilli: Service discovery with Eureka in Cloud Foundry