DevOps deploy Arcadia Application - Main app

In this module, we will deploy the 2 main containers for Arcadia Bank application and we will publish them.

Note

At the end of this module, Arcadia Bank application will look like this.

../../_images/MainApp2.png

Note

As a DevOps, you will deploy Arcadia Application (main and back end pods) with an automation tool set

Step 1 - Deploy Arcadia Main app with a CI/CD pipeline like a DevOps

Connect to Jumhost RDP and Login as user / user

  1. Open Chrome, you can notice Chrome opens all the tabs for you

  2. Login to all tools

    1. Controller : admin@nginx-udf.internal / admin123!

    2. Jenkins : admin / admin

    3. GitLab : root / F5twister$

      Warning

      If GitLab does not start, restart the docker in the GitLab VM (WebSSH > docker restart gitlab). Wait 5 minutes.

    4. Kubernetes : click on skip

    5. BIG-IP : admin / admin

  3. In Gitlab, click on Administrator / Arcadia-MainApp

    1. Click on file deploy

    2. Click edit and make a modification, like YES !!!!!

    3. Click Commit changes

Note

At this moment, you simulate a commit like a DevOps. This commit will trigger a webhook to Jenkins, so that Jenkins executes a pipeline.

  1. In Jenkins, click on DeployMainApp pipeline

  2. A pipeline is running, click on it

  3. You can follow the steps

../../_images/pipeline_mainapp.png

Note

At this stage, Arcadia Main app and Back End app are deployed un K8S. But you need to publish them with NGINX+ via the controller.


Step 2 - Publish Arcadia application with NGINX+ and Controller

The Jenkins pipeline did several things

  1. Deployed Arcadia application (main and back end pods) in Kubernetes

    1. Connect to Kubernetes and check that.

    2. You can see 2 deployments (main and back) with nodeports services

  2. Started 3 NGINX+ instances in a docker

    1. WebSSH to CICD and DOCKER (NGINX API gw, Dev Portal)

    2. Run a docker ps

    ubuntu@ip-10-1-1-9:~$ docker ps
    CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                                              NAMES
    bf86e23a9807        nginx-plus:36v1                  "sh /entrypoint.sh"      33 seconds ago      Up 31 seconds       10.1.20.9:8080->80/tcp, 10.1.20.9:8443->443/tcp                    NginxPlusAPI
    74d679bdf5fb        nginx-plus:36v1                  "sh /entrypoint.sh"      33 seconds ago      Up 31 seconds       80/tcp, 10.1.20.12:8090->8090/tcp                                  NginxPlusDevPortal
    ac12c0f3148a        nginx-plus:36v1                  "sh /entrypoint.sh"      33 seconds ago      Up 32 seconds       10.1.20.10:8080->80/tcp, 10.1.20.10:8443->443/tcp                  NginxPlusWebApp
    ab75d7bd60bb        nginx                            "nginx -g 'daemon of…"   7 months ago        Up 13 hours         0.0.0.0:80->80/tcp                                                 lab-nginx
    35ddc5adc34d        sameersbn/bind:9.11.3-20190706   "/sbin/entrypoint.sh…"   9 months ago        Up 13 hours         0.0.0.0:53->53/tcp, 0.0.0.0:10000->10000/tcp, 0.0.0.0:53->53/udp   bind
    
  3. Check if NGINX+ instances appears in the controller

    1. In the controller GUI, click top left corner icon, and infrastructure

    2. You can see 3 instances running

    ../../_images/instances.png
  4. Deployed an AS3 declaration into the BIG-IP in order to publish the NGINX+ instance externally

Note

It is time to configure the NGINX+ instances in order to publish Arcadia application (main and back services)


Configure the Controller

Warning

For all the commands below, there are CASE SENSITIVE

  1. Connect to the controller (admin@nginx-udf.internal / admin123!)

  2. Click on top left corner icon and Services

  3. Click on Apps and create app

    1. Application name : app_webapp

    2. Display name : Web Application Arcadia

    3. Environment : Production Environment

  4. Click submit

    ../../_images/create_app_main.png
  5. Click on Create Component

    1. Configure the component as below

    ../../_images/cp_main_1.png

../../_images/cp_main_2.png

../../_images/cp_main_3.png

Warning

Don’t forget to click on done


../../_images/cp_main_4.png

../../_images/cp_main_5.png

Warning

Don’t forget to click on done twice

Note

Click submit


  1. Get back to Web App and add a new Component

  2. Do the same, but for the back end service

    ../../_images/cp_back_1.png

../../_images/cp_back_2.png

../../_images/cp_back_3.png

Warning

Don’t forget to click on done


../../_images/cp_back_4.png

../../_images/cp_back_5.png

Warning

Don’t forget to click on done twice

Note

Click submit


Step 3 - Test your Controller deployment

  1. Open Chrome and click on the bookmark Arcadia Finance

  2. Click on Login

  3. Login as matt / ilovef5

  4. You should see the main app wihtout App2 nor App3

Warning

Congratulations, you have deployed your first modern app with NGINX+ and the NGINX Controller