How-tos

Deploying a Microservices-Based Solution to Cloud Foundry Enterprise Environment (CFEE)

Share this post:

As a curious developer, I started exploring Cloud Foundry Enterprise Environment (CFEE) with a plan to deploy Logistics Wizard application to CFEE. Through this blog post, I want to share my CFEE journey, explain the answers I found, answer the questions that you may be having when you try CFEE for the first time, and share how to redeploy an existing application to CFEE. Let’s start with WHY.

Why CFEE?

With Cloud Foundry Enterprise Environment (CFEE), you can instantiate multiple, isolated, enterprise-grade Cloud Foundry platforms on demand. Instances of the CFEE service run within your own account in 

IBM Cloud. The environment is deployed on isolated hardware (Kubernetes clusters). You have full control over the environment, including access control, capacity management, change management, monitoring, and services. With deploying Logistics Wizard to CFEE:

  1. I have my app running inside an isolated enterprise environment with additional access control functionality.
  2. I can control what services that users within the org can use, set capacity management, and more. 
  3. I get to leverage the full use of Stratos UI to view application logs, health, usage, configurations, and much more.

Now that you understand why you would want to use CFEE, let’s explore the Logistics Wizard application I deployed to CFEE. Logistics Wizard is a reimagined supply chain operations through cloud-native architecture and services. The Logistics Wizard app is broken down into multiple microservices using many IBM Cloud services.

Deploying apps to CFEE

Before deploying applications to CFEE, you may be wondering about the following questions:

  • How are services handled?
  • Where are they created?
  • How does public Cloud Foundry work with CFEE
  • How do you move apps to CFEE?
  • Can a part of the app run on public Cloud Foundry and another part on CFEE?
  • Is CFEE any different compared to public Cloud Foundry when deploying apps?

Let’s start by looking into the Logistics Wizard architecture diagram, which should answer some of the questions. If you have never seen or used the Logistics Wizard application before, don’t worry. Just focus on the runtimes and services used and see the overall architecture to understand the parts of the application running on IBM Cloud.

How are services handled, and where are they created? The services are created within the IBM Cloud account, under the public Cloud Foundry org, and then they are linked to a CFEE account. To use services like Cloudant or Watson, you would first create the services on public Cloud Foundry and then link that service to your CFEE account to make the service ENV variables available to the app in CFEE. In the Logistics Wizard application example, I have to deploy three runtimes to CFEE, while the services and Cloud Functions are outside CFEE.  How does public Cloud Foundry work with CFEE, and how do you move apps to CFEE? To move apps from public CF to CFEE, you just need to change the target API endpoint from public CF to CFEE API endpoint and re-deploy the app. It’s that easy. Can a part of the app run on public Cloud Foundry and another part on CFEE? Public CF and CFEE work hand-in-hand. You can have a part of the app running on public CF and the rest on CFEE. The choice is yours.

Is CFEE any different compared to public Cloud Foundry when deploying apps?

No, deploying apps to CFEE is just the same as deploying apps to public CF. When deploying apps to CFEE, you just need to target the CFEE API endpoint, and if you are using services like Cloudant and Watson,  you would need to create them in IBM Cloud under a public Cloud Foundry org and then link the service to CFEE.

Deploy the app

Now that you understand CFEE, the next thing to do is to deploy the example Logistics Wizard app CFEE. To do that, we have created a step-by-step guide covering how to deploy Logistics Wizard to CFEE. Deploying Logistics Wizard to CFEE will help you understand how easy it is to deploy enterprise apps to CFEE on IBM Cloud.  

Deploy Logistics Wizard to CFEE  

If you face any issues while deploying Logistics Wizard to CFEE, feel free to open an issue on the Logistics Wizard GitHub repo and we will respond as soon as possible.

 

Full-Stack Software Developer & Developer Advocate at IBM Cloud

More How-tos stories
December 13, 2018

Java Microservices with MicroProfile – API Documentation

To benefit from the reuse and consistency microservice APIs offer, other developers will need guidance to use your APIs correctly. With annotations defined in the MicroProfile OpenAPI specification from Java EE, it's easy to generate clear documentation.

Continue reading

December 13, 2018

Tutorial: Deploying the Jenkins Helm Community Chart on IBM Cloud Kubernetes Service

The IBM Hybrid Cloud Team has authored a tutorial that will guide you through the steps required to set up and install a Jenkins server and deploy a sample Node and React application on IBM Cloud Kubernetes Service.

Continue reading

December 12, 2018

Deploying to IBM Cloud Private 3.1 with IBM Cloud Developer Tools CLI

IBM Cloud Developer Tools CLI version 2.1.12 adds deployment support for IBM Cloud Private 3.1.

Continue reading