Application as a Service
Welcome to the Application-as-a-Service Lab
Through the lab, you will learn how to configure App Launchpad (ALP), publish catalogs and deploy applications from Bitnami and VMware Cloud Marketplace.
Topics to be Covered:
- Configure App Launchpad with VCD (alp connect command)
- Follow the App Launchpad wizard in VCD to finalize the configuration
- Show the integration with VMware Marketplace
- Create a catalog with Helm Charts
- Publish the Catalog
- Deploy containerised application from App Launchpad
- Configure and connect to deployed application
- Browse the application
Configure App Launchpad with VCD
The first step would be to connect to the App Launchpad that has been pre configured for this lab.
It is a virtual machine with CentOS 7 and the App Launchpad package already installed.
- Click on PuTTY on the taskbar as indicated in the above image.
Connect to the ALP server
- Scroll down
- Select vcd-alp.corp.local.
- Click the Open button
If needed, username: root and password: VMware1!
Connect App Launchpad to VCD
Once you're logged in, enter the following alp connect command:
alp connect --sa-user svc_alp --sa-pass VMware1! --url https://vcd-01a.corp.local --admin-user admin@system --admin-pass VMware1! --mqtt
alp connect --sa-user svc_alp --sa-pass <service account password> --url <Cloud Director URL> --admin-user <admin@system> --admin-pass <admin password> --mqtt
Do take note that you need to set your own:
- Service Account Password
- Cloud Director URL
- administrator system username
- admin password
When you install into your own environment.
Answer the questions
- [not shown] Enter accept and press return to accept the EULA
- Enter yes to accept VCD certificate
Check installation is successful
After entering the command, the installer will return the information of the vcd you're connecting with.
Enter 'yes' to agree.
You'll receive the confirmed settings for App Launchpad on Cloud Director as shown above.
Start App Launchpad Service
- Enter the following command to start the service
systemctl start alp
- Enter the following command to check its status
systemctl status alp
- Enter the following command to restart the service to ensure the service is working correctly
systemctl restart alp
Finalize App Launchpad Configuration via VCD UI
- Open or reopen Google Chrome
- Go to the Bookmarks bar and click 'vCD-Provider'
- Log into VMware Cloud Director with these credentials:
- Click the SIGN IN button
Set up App Launchpad in VCD
Once you're in the App Launchpad, we need to finalize configuration and integration with VCD.
- Click on 'Launch Setup'
- Select the PVDC nextgen-resources
- Set the Disk Size to 30 GB.
- Click 'Next'.
It might take a bit of time as it will create:
- An organization called "AppLaunchpad". This organization will store all the data related to App Launchpad.
- A Pay-As-You-Go Org VDC with the storage policy and disk size selected.
- A global service role called "App-Launchpad-Service".
- A pre-defined service account will be assigned with this service role.
Setup Sizing Templates
- Set the default template as Small with the following parameters
- Name: Small
- vCPU Count: 1
- Memory Size: 2 GB
- Disk Size: 10 GB
- Click 'Finish'.
Additionnal sizing template can be created later on as well
Integration with VMware Cloud Marketplace
Starting with App Launchpad 2.0, tenant users can deploy container applications to a Kubernetes cluster. A supported source of container applications is a Helm Chart repository.
In this lab, we will be using helm charts from VMware Cloud Marketplace.
- Click on the 'Settings' section.
- Under 'Administration', click on 'Marketplace Connection'.
- Check with your instructor to get the TOKEN ID
- Click 'Save'.
You have set up the connection between App Launchpad and VMware Cloud Marketplace.
Create an Application Catalog
- Head over to the Applications section.
In this section, we will be creating a catalog with helm charts from VMware Cloud Marketplace before assigning them to an organization. This gives you a form of access control for each organization as to what applications they can deploy.
- Click the ADD NEW button
Since this lab focuses on the new feature of generating containerized applications,
- Select Container for the Type of Applications
- Click the filter button
- Enter nginx, wait for the list to refresh
- Select NGINX Open Source Helm Chart
- Click NEXT
The guide will be using NGINX Open Source Helm Chart as the example,
Publish the Catalog
- Select Access Management tab
- Click on 'Publish Catalog'.
Choose a Catalog
Choose the catalog 'SEAK Bootcamp 2020' which you've created previously. Click 'Next'.
Deploy Containerised Application via App Launchpad
In this section, we will be deploying a containerised application from a tenant's perspective. We'll be using the pied-piper organization.
- Once logged out, head over to your bookmarks bar and click on vCD - Pied Piper
- Log in with the following credentials:
- Click the SIGN IN button
Open App Launchpad Tab
- Head over to 'More' from the header bar
- Click on 'App Launchpad'
- Click the LAUNCH button.
Launch an application
- Enter Name of the Application: demo-nginx01
Leave everything as default.
- Click "Launch Application".
Connect and Browse Your Application
Two ways to browse your application via external IP:
- Directly from app launchpad (requires some time to display after deployment)
- via CLI with kubectl
Simply wait for a moment after deployment, your deployed application will display the External IP as shown in the image.
Copy Paste Instructions in PowerShell
At this point, we will be using PowerShell and requires quite a bit of copying and pasting. These are just basic instructions for you to know how to copy paste within the terminal.
Right click within the terminal and select 'Mark'.
Double-click on the line you want to copy. Then right-click on it.
Now, right-click on your terminal line. Click 'Paste'.
Now, you know how to copy paste into PowerShell
Finding your pods of your deployed applications
To find out where your nginx pods are residing. Enter the following command
kubectl get pods --all-namespaces
The command will return a list of pods and its corresponding namespaces.
In the guide, the nginx pods are residing in namespace "9be29ae1-d8d4-4172-9701-230a29ea5636".
Finding the external IP of your applications
- Open the start windows menu at the bottom left corner of your desktop
- Click on "Windows PowerShell"
Enter the following command
Kubectl get namespaces
The command will return all the namespaces in your cluster. Find the namespace where your deployed application is.
Enter the command
kubectl get all -n <namespace>
- Search for service/<your app name>-nginx-ingress-controller
- scroll to the right and find its corresponding external IP.
- Copy the external IP
Go back to your browser and paste it in the url.
You will be directed to your deploy application webpage.
We have come to the end of the Bitnami and App Launchpad lab.