In the era of the cloud, customers migrating away from their existing on-premise infrastructure. This requires lots of planning, strategies, and effort to identify their existing resources and determine how best to migrate. Luckily, AWS has come up with the Application Discovery Service which makes this process easy.
In this guide, we will explore this service and its functionalities.
Importance of application discovery service
Traditional datacenters contain hundreds and thousands of servers, which can make it difficult to identify the functionality of each particular server. This could be due to missing or un-updated documentation, application owners has resigning, etc. Applications themselves can involve complex dependencies that are poorly understood and highly sensitive to changes. If you are creating inventory of these resources manually, then it is going to be time consuming and you may not be have a reliable source of information. AWS’s Application Discovery Service is a solution to this.
So, where does the Application Discovery Service stand in the migration process? Datacenter migrations happen in four phases, which are explained below.
- Strategy: This stage will evaluate existing IT environment and define the strategy of migration.
- Planning and discovery: This stage will focus on discovering your application and server resources. It will help in identifying your application’s related dependencies. The Application Discovery Service works on this stage. It will identify your application and systems-related information, which helps you to define infrastructure on AWS.
- Build: In this stage, you are going to start moving your application to AWS. After migration, you will run various tests to evaluate the performance of your application on AWS. AWS Database Migration Service and AWS Server Migration Service are used in this stage.
- Run: In this stage, you are going to optimize the performance of your application and start setting up monitoring on your resources.
Application discovery service
The Application Discovery Service helps in identifying the application running in your existing datacenter server, it’s dependencies, and the baseline performance of your server. It will also scan the network related activity, TCP and UDP connections with the server, NIC information, etc. These will help in identify network-related dependencies for the application.
Application Discovery Service provides two modes:
Agentless discovery: Agentless discovery has limited features compared to agent-based discovery. This mode collects data concerning the operating system of your server, but it will not collect information regarding your application and its dependencies. This mode will only work in VMware environment. AWS will provide an OVF template which needs to be deployed in your VMware environment. This OVF template will be deployed as the AWS agentless discovery connector. Configure this connector with your vCenter server credentials and AWS credentials.
Agent-based discovery: Agent-based discovery mode will collect your server and application-related information, software dependencies, network dependencies, and baseline performance. This data will be stored in an AWS-hosted database. In this mode, the agent needs to be installed in one or more servers in your data center. The agent software does not consume much hardware resources like CPU and Memory, and you can install the agent software with your server’s software management tools, like Chef, Puppet, Ansible, or SCM.
Application discovery service has two components: The agent on the host, and the database on AWS.
The agent will run on the host, collect information, and send data over a secured, encrypted connection to the AWS database.
Application Discovery Service also allows you to save data in CSV or XML format, so you can export this data to the third-party visualization tool of your choice.
Agent-based based discovery is compatible with following operating systems:
- Ubuntu 14
- Amazon Linux 2012.03 or 2015.03
- Centos 6 or 7
- Redhat 6 or 7
- Windows Server 2012 R2
- Windows Server 2012
- Windows Server 2008 R2
Data Captured by Application Discovery Service
Application Discover Service will capture:
- Infrastructure and operating system-related information, like hostname, IP address, operating system architecture, etc.
- Information about your running applications and processes used by your applications with all the minor details, such as which user owns the process, which group it belongs to, etc.
- System resource-related information like CPU, memory, disk I/O, how many resources have been consumed, etc. These will help you to decide instance size and type when you migrate to AWS.
- Network-related activities like open TCP and UDP ports, routing tables, NIC information, etc. This will help you to configure your instance firewall and identify if any network-related dependencies there for your application.
Application Discovery Service also provides different API operations. It will retrieve the data discovered from the datacenter by an agent or the connector. The AWS command line and SDK utilities are available to access API operations. Below are some API operations available:
- GetDiscoverySummary: Retrieves a brief summary of discovered information.
- DescribeTags: Retrieves all configuration items with specific tags assigned to them.
- ListConfigurations: Retrieves configuration item, based on the filter you have provided.
Implementing Application Discovery Service
Before using Application Discovery Service, you must request access for this service. AWS will send detailed information about how to use this service when they receive the request. To request access for this service, go to the AWS management console, find Application Discovery Service, and fill out the requested details.
Limitations of Application Discovery Service
Agentless discovery: This service allows you to process 10 GB data per day. Going excess of this limit will prevent you from processing any more data for that day. You can extend this limit by contacting AWS support.
Agent-based discovery: The AWS Discovery Agent does not support non-standard Ethernet naming conventions in the Linux environment. AWS Discovery Agent will look for eth0 adapter.
Below is the maximum service limit for agent-based discovery:
- 250 active agents at a time (agents which are collecting and sending data to AWS).
- 10,000 inactive agents (agents that are responsive but not sending data to AWS).
- 10 GB of data per day.
- 90 days of data storage (Data will purge after this validity).