This is documentation for the current major version Apprenda 7.
Documentation for older versions are also available.

What is Apprenda, Physically Speaking?

The Platform combines an application server/application container technology (complete with SDKs and APIs for interacting with its components and services) with a set of web portals allowing different constituents to interact with the Platform in various capacities. As an application container, the Platform acts as a host to guest applications deployed on it. However, from a physical point of view, the Platform is a distributed, single- and multi-tenant application, multi-server hosting layer. This concept is critical to understand, since it will provide a context for the motivation behind many of the requirements in building an Apprenda application and will also give you an understanding of how to best leverage the technology.

Physical Platform Components

Let’s dig a bit deeper to become familiar with the various components that make up the Platform from a physical point of view. The Platform as a whole product is composed of:

1. Apprenda Server: The server fabric (as described in What is Apprenda, Logically Speaking?) consisting of a variety of services (on both Windows and Linux environments) that provide the Platform's core functionality (these are described below).

2. SDK: The SDK consists of our API, documentation, samples, and local development and deployment tools and IDE hooks. These components are designed to aid in the development process and allow a developer to emulate running an application on a live Apprenda instance.

3. System Operations Center (SOC): A web portal for back-end management of network infrastructure, global settings, your application components, and the server fabric. The SOC can be accessed via the URL http://apps.yourApprendaRoot.com/soc where ‘yourApprendaRoot.com’ is the root URL you provided while installing the Platform.

4. Account Portal: A skinnable/brandable web portal that provides your Tenants with account management functionality. When a new organizational unit signs up on the Platform, they and their users are actually provisioned at the Apprenda level, which gives them access to manage their Apprenda account (if branded, it’s simply your Organization’s account management system). The Account Portal can be accessed via the URL http://apps.yourApprendaRoot.com/account.

5. Developer Portal: A skinnable/brandable web portal for product management that allows your Organization’s technical assets to manage application uploading, deployment, and configuration. The Developer Portal can be accessed via the URL http://apps.yourApprendaRoot.com/developer.

Platform Server Roles and Components

Apprenda is a collective set of processes and web services that work together to accomplish the application deployment and hosting feats described above. Through these components, the Platform coordinates server and storage resources on your behalf and provides a homogeneous hosting layer for your applications. 

The infrastructure that constitutes your Platform can take on varying hosting roles. When the Platform is installed, it places executables on a collection of servers that you specify depending on OS and hosting capabilities of the server. Those executables interact with one another in a peer-based fashion to stitch together all the servers in the network you’ve dedicated to Apprenda into a single logical deployment and execution runtime.  

The following briefly lists Platform server and storage roles (please see here for more in-depth information on roles).  Roles that are not essential to Platform functionality are marked as "optional."

  • Windows OS

    • Application Server
    • Web Server
    • Load Manager
    • Platform Coordination
    • Cache
    • Storage Controlling Services Host
    • ADFS (optional)
  • Linux OS
    • Linux Server (optional)
  • Storage
    • MS SQL Instance
    • Oracle RDBMS (optional)
    • Platform Repository

Depending on its roles and what Apprenda components it hosts, each Windows node that the Platform manages may have one or more of the Windows-based or WCF-based services described below. Linux servers have a separate set of services that are also described below.

Windows Services

The following table lists all of the Windows Services that are required by Apprenda in the order that they should start. The installer will configure and register the services on each server as appropriate. 

Service Name

(in Services MMC snap-in)

Executable Name

Name of the executable that appears in Task Manager

Required On

Indicates which server(s) the service must be running on

Purpose

Describes the service and its role on Apprenda

Apprenda Caching Apprenda.Redis.
WindowsService.exe
At least one Windows Server designated at installation A distributed Redis-based in-memory caching implementation for Windows and Linux.
Apprenda
Zookeeper
(Platform Coordination)
Apprenda.Zookeeper.exe At least one Windows Server designated at installation Platform Coordination provides global lookup and name-server-like functionality to all other member nodes in a Platform. Platform Coordination is responsible for maintaining awareness of all nodes, tracking relationship graphs between nodes and what they each host, as well as maintaining responsibility for certain types of fabric-level management requests.
Apprenda Load Manager SaaSGrid.Core.Services.
LoadManagement.exe
At least one Load Manager Node This service is responsible for updating URL re-write rules when applications are deployed on the grid and during other operations such as relocation of user interface partitions.
Apprenda Windows Host

Apprenda.Windows.Container.exe or SaaSGrid.SMART.
LocalDeployment.exe

(depending on Task Manager view)

All Servers in the Web Server and Application Server role

The Windows Host is responsible for concretely defining the host machine’s physical participation in an Apprenda instance and is the marker that flags the server as “part of the fabric.” Any requests that are explicit management requests against the underlying OS are dispatched to the Apprenda Windows Host.

Also, the Windows Host provides hosting and management services for WCF web services belonging to applications hosted on the Apprenda fabric. WCF service deployment requests are dispatched to the Apprenda Windows Host, which can download service binaries from the Apprenda repository at runtime, install the service locally on top of a Apprenda WCF bootstrapping and hosting system, configure the service with dynamic endpoints that are registered with Apprenda’s WCF dispatching system, and finally launch the service.

WCF Services and User Interfaces

Apprenda relies on its own guest application hosting capabilities for some of its functionality.  Apprenda components that can be integrated this way are deployed as Platform-hosted guest applications with WCF service and/or user interface components. See more information about the Apprenda components hosted as Platform guest applications.

Linux Services

The following table lists all of the processes that are required by Apprenda to host applications on a Linux environment.  

Service Name

 

Required On

Indicates which server(s) the service must be running on

Purpose

Describes the service and its role on Apprenda

Apprenda Linux Container All Linux Servers The Linux Container provides management services for Java Web Applications packaged as WAR files. WAR deployment requests are dispatched to the Apprenda Linux Container, which can download service binaries from the Apprenda repository at runtime, install the WAR locally on top of Tomcat/JBoss, configure the application to register with the Platform's coordination services and, launch the application.

Platform Databases

The following table lists all of the SQL Server databases that are required by the Platform. Unless otherwise noted, the Platform will create only one instance of each database.

Database Name

Purpose

Describes the service and its role on Apprenda

316b32db-e812-40b8-9be0-9a4292bc95cc Developer Portal database. As the Developer Portal is a multi-tenant application hosted on the Platform, you will also see a corresponding provider database.
40fbb645-f07f-4f59-a4eb-4a692452f709 Account Portal database.As the Account Portal is a multi-tenant application hosted on the Platform, you will also see a corresponding provider database.
Apprenda Auditing Stores auditing data on Platform operations when Platform Auditing is enabled.
Apprenda Logging Contains log entries for all Platform logging. Typically this excluded messages generated by guest applications, which are stored in a special database created for each development team in the following format:
apprenda-logging_devTeamAlias
Should the Platform be unable to send guest application messages to the development-team specific databases, it will send them to the Apprenda Logging DB.
Apprenda Utilization Stores utilization data for all deployed guest application components when Resource Utilization is enabled.
ApprendaHttpRouting Stores URL Rewrite rules for the Apprenda Load Manager.
ApprendaManagement Appears on all Platform-managed SQL instances; stores information local to the SQL instance.
SaaSGrid Billing Stores billing information for Platforms that have upgraded from earlier versions before billing support was deprecated.
SaaSGrid Core The primary database for all Platform functionality.
SaaSGrid Scheduling Stores Platform information related to scheduling.

Application Components on the Platform

The Platform handles each component of an application differently. See the How the Apprenda Platform Deploys Your Application section of our documentation for in-depth description of the deployment and configuration process for guest applications.