--- title: "Managed" slug: "managed-app" updated: 2024-07-22T23:54:14Z published: 2024-07-22T23:54:14Z canonical: "docs.echo.stream/managed-app" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.echo.stream/llms.txt > Use this file to discover all available pages before exploring further. # Managed Managed Apps are implemented as virtual machines that are fully managed by EchoStream. They extend your EchoStream Tenant into a remote datacenter and they contain Managed Nodes. The primary use cases for Managed Apps are: - You want to extend your Tenant into another compute environment but you don't want have to manage it. - You need to extend your Tenant into a partner's compute environment but you want or need to maintain full control of the implementaion of that extension. - You have to deploy the same Node functionality to many external locations and you want to make this deployment as simple as possible. Managed Apps have the following characteristics: - Support VMWare, VirtualBox, Microsoft Hyper-V, KVM and AWS EC2 virtualization environments. - Are implemented as hardened virtual machines. - Are fully managed by EchoStream; only EchoStream has access to the virtual server running the app. - EchoStream is responsible for running the Managed Nodes on the apps, applying patches to the virtual server running the App, collecting logs from the App and its Nodes, etc. - Contain [Managed Nodes](/v1/docs/managed-node). ## Attributes ### config You have the option of creating a configuration (aka - config) for your App. The config is a JSON object that can contain anything that you desire. All data stored within this object is encrypted prior to being stored in EchoStream in order to protect sensitive items such as database or API credentials. If you choose to create a config for your App, it will be passed to all Nodes within App. Keys in your App config override those in the Tenant [config](/v1/docs/config) can be overridden by configs that exist in your Nodes. Example: ``` { "database": { "credentials": { "username": "foobar", "password": "password1" }, "address": "127.0.0.1", "port": 3576 } ``` ### iso When a Managed App is deployed in a Virtual Machine environment, a `seed.iso` is required to configure and harden the virtual machine as it starts the first time. This attribute provides the `seed.iso` for you to use to create the Managed App's virtual machine. It is returned by the API as a Base64-encoded GZIP'd file, and by the EchoStream application UI as a `seed.iso` file. > NOTE - the `seed.iso` will only be valid for 24 hours from the time that you obtain it and it may only be used once. ### tableAccess If you want the Nodes that are in your Managed App to be able to access the Tenant's [table](/v1/docs/table) this must be set to `true`. The default is `false`. ### userData When a Managed App is Deployed in an AWS EC2 environment, User Data is required to configure and harden the virtual machine as it starts the first time. This attribute provides the User Data for you to use to create the Managed App's virtual machine. It is returned by the API as a Base64-encoded file, and by the EchoStream application UI as a `userdata` file. > NOTE - the `userdata` will only be valid for 24 hours from the time that you obtain it and it may only be used once. ## Deploying your Managed App to a VM ### Step 0: Ensure network access All EchoStream Managed Apps communicate with the EchoStream API and the EchoStream Cloud using HTTPS over port **443**. > NOTE - You need to ensure that port **443** is opened through your corporate firewall for your Managed App to deploy and function properly. ### Step 1: Obtain the `seed.iso` Either use the EchoStream API or the EchoStream Application UI to get the `iso` for your Managed App. ### Step 2: Get the correct Amazon Linux 2023 VM Image Download the VM Image for your virtualization platform: - [VMWare](https://cdn.amazonlinux.com/os-images/2023.5.20240708.0/vmware/) - [KVM](https://cdn.amazonlinux.com/os-images/2023.5.20240708.0/kvm/) - [KVM-ARM64](https://cdn.amazonlinux.com/al2023/os-images/2023.5.20240708.0/kvm-arm64/) - [Oracle VirtualBox](https://os-images.echo.stream/virtualbox/al2023-virtualbox-2023.5.20240708.0-kernel-6.1-x86_64.xfs.gpt.vdi.gz) - [Microsoft Hyper-V](https://cdn.amazonlinux.com/al2023/os-images/2023.5.20240708.0/hyperv/) ### Step 3: Boot the Managed App VM Using the `seed.iso` from Step 1 and the VM Image from Step 2, boot the VM as per your virtualization platform: ### VMWare vSphere The VM image for VMware is made available in the OVF format. To boot the Managed App VM using VMWare vSphere: 1. Create a new datastore for the `seed.iso` file, or add it to an existing datastore. 2. Deploy the OVF template, but do not start the VM yet. 3. In the **Navigator** panel, right-click the new virtual machine and choose **Edit Settings**. 4. On the **Virtual Hardware** tab, for New device, choose **CD/DVD Drive**, and then choose **Add**. 5. For **New CD/DVD Drive**, choose **Datastore ISO File**. Select the datastore to which you added the `seed.iso` file, browse to and select the seed.iso file, and then choose **OK**. 6. For **New CD/DVD Drive**, select **Connect**, and then choose **OK**. After you have associated the datastore with the VM, you should be able to boot it. #### KVM To boot the Managed App VM using KVM: 1. Open the **Create new VM** wizard. 1. Choose **Import existing disk image**. 2. Browse to and select the VM image. For **OS type** and **Version**, choose **Linux** and **Red Hat Enterprise Linux 7.0** respectively. 3. Specify the amount of RAM and the number of CPUs to use. 4. Enter a name for the new VM and select **Customize configuration before install**, and choose **Finish**. 2. In the Configuration window for the VM, choose **Add Hardware**. 3. In the **Add New Virtual Hardware** window, choose **Storage**. 4. In the Storage configuration, choose **Select or create custom storage**. For **Device type**, choose **CDROM device**. Choose **Manage**, **Browse Local**, and then navigate to and select the `seed.iso` file. Choose **Finish**. 5. Choose **Begin Installation**. #### Oracle VirtualBox To boot the Managed App VM using Oracle VirtualBox: 1. Open Oracle VirtualBox and choose **New**. 2. For **Name**, enter a descriptive name for the virtual machine, and for **Type** and **Version**, select **Linux** and **Red Hat (64-bit)** respectively. Choose **Continue**. 3. For **Memory size**, specify the amount of memory to allocate to the virtual machine, and then choose **Continue**. 4. For **Hard disk**, choose **Use an existing virtual hard disk file**, browse to and open the VM image, and then choose **Create**. 5. Before you start the VM, you must load the `seed.iso` file in the virtual machine's virtual optical drive: a. Select the new VM, choose **Settings**, and then choose **Storage**. b. In the **Storage Devices** list, under **Controller: IDE**, choose the *Empty* optical drive. c. In the **Attributes** section for the optical drive, choose the browse button, select **Choose Virtual Optical Disk File**, and then select the `seed.iso` file. Choose **OK** to apply the changes and close the Settings. After you have added the seed.iso file to the virtual optical drive, you should be able to start the VM. #### Microsoft Hyper-V The VM image for Microsoft Hyper-V is compressed into a zip file. You must extract the contents of the zip file. To boot the Managed App VM using Microsoft Hyper-V: 1. Open the **New Virtual Machine Wizard**. 2. When prompted to select a generation, select **Generation 1**. 3. When prompted to configure the network adapter, for **Connection** choose **External**. 4. When prompted to connect a virtual hard disk, choose **Use an existing virtual hard disk**, choose **Browse**, and then navigate to and select the VM image. Choose **Finish** to create the VM. 5. Right-click the new VM and choose **Settings**. In the **Settings** window, under **IDE Controller 1**, choose **DVD Drive**. 6. For the DVD drive, choose **Image file** and then browse to and select the `seed.iso` file. 7. Apply the changes and start the VM. ## Deploying your Managed App to an AWS EC2 Instance ### Step 0: Ensure network access All EchoStream Managed Apps communicate with the EchoStream API and the EchoStream Cloud using HTTPS over port **443**. > NOTE - You need to ensure that port **443** is opened from your AWS VPC for your Managed App to deploy and function properly. ### Step 1: Obtain the `userdata` Either use the EchoStream API or the EchoStream Application UI to get the `userdata` for your Managed App. ### Step 2: Create the EC2 Instance The instance that you create must be an Amazon Linux 2023 instance type. When creating your instance, ensure that you use the `userdata` from Step 1 and indicate to AWS that the `userdata` is already Base64 encoded.