# Virtual Installation
Several types of virtual environments can be utilzed for exploration of Edge functionality and develpoment. Virtual environments are ideal for initial development and exploration of Edge functionality. As investigation evolves to active development and finally a product, different Edge environments can be used for each step. This document covers the following typical scenarios:
Edge Development: New development requires a combination of development environments and Edge testing environments. This environment has the most possible combinations based on the development language, develpment tools, target hardware architecture, and network connectivty required by the Edge. It might be used to run the tutorial modules or modify them to create new ones.Production and Test: In the final phases of development and testing, the production hardware will be utilized. However, it can be practical to utilize virtual hardware for some testing.
Each application will have unique requirements. If the example environments are not suitable, they can be combined or modified to meet the requirements of each project.
# Edge Development
Edge Develompent will require complete software develpoment environment to design, implement, test, debug and release an Ablity Edge product. Each BL will have a unique development process. This section identifies the minimum requirements and how to achieve them.
# Edge Environment
First of all, you need an environment where your applications (modules) will be able to run.
We provide the Edge SDK VM - a virtual machine that comes with Edge framework components preinstalled and ready to use. We provide the installation and configuration instructions to get an Edge running quickly.
# Development environment
A custom development environment can be used to access the Ability Instance and to create new modules (or modify existing tutorial ones). Examplary setup:
- ABB Windows BCE environment with ABB Ability Azure SSL VPN and Visual Studio for access to the Instance APIs.
- Azure Ubuntu Installation or any Linux Ubuntu Installation for building custom versions of tutorials.
- Edge Node to run the modules.
# Access to the Instance API
This PC can be either an ABB Windows BCE environment with ABB Ability Azure SSL or an Azure Windows or Linux machine with the Azure Virtual Network peered to the VNET of the Instance API for your Instance.
# Docker Development
Docker is required to develop custom Edge modules and is available for various platforms.
# Edge Node
This can be the Edge SDK VM, hardware, or any virtual environment that supports TPM 1.2 or TPM 2.0.
# All in One
One example configuration that puts all of these node types on a single node
is selecting a D4s_v3 Azure Windows Server.
This environment supports nested virtualization to create Hyper-V VMs and it can
be created in the same Azure region as the Ability Instance to allow peering
of the VNET to access the Instance API. Azure offers a VM version
with Visual Studio 2019 already installed to do development.
The VM has 16GB of memory and will allow the installation of several Linux
VMs for Edge Development and testing. See
Advanced Edge Development and Testing learning path
for the detailed steps.
# Testing and Production
In this phase the Edge type definitions are completed and matching release software has completed any Quality Assurance testing. The Ability Edge components can be installed on production Edge hardware or suitable virtual production hardware for final testing. See Advanced Edge Development and Testing learning path one example of how to create a virtual server that can run multiple virtual Edge nodes.