Create a Beacon Application

In this section we will create the logical application within the F5 Beacon Portal and API.

Before we begin, lets review the Application that we will be creating.

The Application

Below we have modeled an application named Mobile_App with a nested set of components that it depends on (DNS, CDN, WAF, Services, etc). These components can be made up of any services, devices, health checks, or objects within your infrastructure and this example is in no way all-encompassing. F5 Beacon solves the problem of having distributed monitoring and analytics of these objects and groups them into a single Application entity. We will go into more detail of the individual components within the guide in future steps as we ingest health data and metrics into Beacon to associate with them. The more health sources used to populate your Application data, the more accurate that Application definition is.

mobile_app

Creation Steps

  1. Login to the F5 Beacon Portal at https://beacon.f5.com

  2. Navigate to the Beacon Icon in the left side menu.

    beacon_menu

  3. From the drop down menu select Application Landscape and then select the Create button on the right side.

    app_landscape

  4. You are now presented with a form which when filled it will represent the top level object of your Application definition. Fill in the following values and then select Save:

    • Name: Mobile_App
    • Description: Top Level of my Application
    • Tags
      • Key: Environment
      • Value: Lab
    • Component Health Setting: (These will be filled in later in the guide)

    create_app_gui

    The top level object is now displayed on the Application Map in the browser.

  5. We are now going to add a DNS object as a dependency for our Mobile_App. Select the icon representing Mobile_App and then select the +Add Component button. This time we will only fill in top Name in the form and select Save.

    • Name: DNS

    add_node

    At this point the DNS app component is nested below the top level Mobile_App.

    dns_node

    Note

    While it would be possible to build out the rest of the Mobile_App manually, we are going to use the JSON Editor built into the portal to mimic how we could create this app using Beacons declarative API. This would more closely align with a production process which builds out and updates Applications in F5 Beacon as part of a pipeline or workflow.

  6. Select the JSON Configuration tab near the top of the editor. This page allows you to model the application using the same format that the API uses. If you look at the current payload, it contains the top level object, Mobile_App, as well as its child object, DNS, that we created using the manual process.

    json_config

    Replace what is currently in the portal with the JSON payload below. Please use the copy button on the top right of code snippet below to ensure you copy entire thing.

    {
        "action": "deploy",
        "declaration": [
            {
                "metadata": {
                    "version": "v1"
                },
                "application": {
                    "name": "Mobile_App",
                    "description": "Top Level of my Application",
                    "labels": {
                        "Environment": "Lab"
                    },
                    "dependencies": [
                        {
                            "name": "Static_Resources",
                            "dependencies": [
                                {
                                    "name": "CDN"
                                }
                            ]
                        },
                        {
                            "name": "DNS"
                        },
                        {
                            "name": "Release_Process",
                            "dependencies": [
                                {
                                    "name": "SCM"
                                }
                            ]
                        },
                        {
                            "name": "WAF",
                            "dependencies": [
                                {
                                    "name": "Gateway",
                                    "dependencies": [
                                        {
                                            "name": "Data_Service",
                                            "dependencies": [
                                                {
                                                    "name": "Data"
                                                }
                                            ]
                                        },
                                        {
                                            "name": "Middleware_Service",
                                            "dependencies": [
                                                {
                                                    "name": "In_App_Purchase"
                                                },
                                                {
                                                    "name": "Payments"
                                                }
                                            ]
                                        },
                                        {
                                            "name": "Worker_Service",
                                            "dependencies": [
                                                {
                                                    "name": "Reporting"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        ]
    }
    

    After you have pasted the application body into the Portal, navigate back to the Application Map tab and you will be able to see your entire modeled application.

    app_map_model

    Select Save & Close in the top right corner.

    save_close

  7. At this point we have modeled the entire application and its dependencies within Beacon. Click on the Health Status of the Mobile_App that we just created. You will see the a slide out summary that contains the Application Map fully populated along with sections below it for Health History, related Events, Insights and more. In the upcoming sections we will cover ingesting data into F5 Beacon to populate these fields for our Mobile_App.

    app_inv_created