Table of Contents??
- Reference Architecture
- Prerequisites and Requirements
- Technical Requirements and Specialized Knowledge
- GridServer Architecture on AWS
- Architecture Diagram
- Further reading material
TIBCO GridServer is a highly scalable software infrastructure that allows application services to operate in a virtualized fashion, unattached to specific hardware resources. Client applications submit requests to the Grid environment and GridServer dynamically provisions services to respond to the request. Multiple client applications can submit multiple requests in parallel and GridServer dynamically creates multiple service instances to handle requests in parallel on different Grid nodes. This architecture is therefore highly scalable in both speed and throughput. For example, a single client will see scalable performance gains in the processing of multiple requests, and many applications and users will see scalable throughput of the aggregate load.
TIBCO GridServer enables a truly Service-oriented approach to Grid computing. The Grid client creates a Service instance and calls operations (methods) on the Service. These calls are virtualized and invoked on multiple Grid nodes. This virtualization provides limitless scalability for hosting these Services and offers a simple programming model for invoking these Services.
A Service is a self-contained application or business function that is distributed to remote computing resources. A client application makes requests, which are routed by GridServer to those resources, which then return results to the client. One use of a Service is to load balance an application, whereby the client application receives requests and submits them asynchronously to the Service, which then executes these multiple, unrelated computations in parallel. Another use is to execute a single, larger computation. The client splits the computation into multiple, independent pieces, submits them asynchronously, and combines the returned results.
In this article, we assume that you are already familiar with traditional GridServer components and architecture. This guide supports TIBCO GridServer version 7.0 or greater. You need to obtain a TIBCO GridServer software binaries for the Manager, Broker, and Engines and an appropriate license.
To request a license, contact TIBCO at https://www.tibco.com/contact-us.
Before you deploy a full stack of TIBCO DataSynapse GridServer on AWS, we recommend that you become familiar with the following AWS services. Make sure to check the AWS Getting Started Resource Center if you are not familiar with AWS.
- Amazon EC2
- Amazon EBS
- Amazon S3
- Amazon VPC
- Auto Scaling
- Identity and Access Management
Other AWS Services that are not required but recommended that you are familiar with:
- Amazon EC2 Spot Instances
- AWS Virtual Private Network
- Amazon RDS
- Amazon Aurora
- Amazon CloudWatch
TIBCO GridServer has four different components in its architecture:
- GridServer Clients ? The components that submit service requests to the Grid. (Also called Drivers).
- GridServer Engines ? The processes that host and run services on the Grid nodes.
- GridServer Brokers ? The component that provides request queuing, scheduling and load-balancing. Brokers are also responsible for managing Engines.
- GridServer? ??????Directors ? The component that assigns Grid Clients and Engines to Brokers based on policy. They manage and load balance Engines across available Brokers.
Below is a standard reference architecture for TIBCO Gridserver running on AWS. This setup leverages the use of Amazon Spot Fleet for the Gridserver Engines which enables a cost-effective way to deploy an elastic and highly available computing Grid
Using this deployment scenario is how we worked with AWS to set up and run a proof of concept grid in the AWS Cloud that was able to scale up to 1.3 Million vCPUs. You can learn more details about this project and its use case in this Blog Post.
- All communication between Directors, Brokers, and Managers is done via HTTP over SSL (HTTPS)
- Grid Clients (Drivers) also connect to the Grid using HTTPS, in the configuration below the clients reside on the same VPC, if you need to have your clients on your data center (on-premise) you will need to set up an AWS Site-to-Site VPN
- GridServer Authentication is commonly configured externally which is recommended, but if you are testing or doing a POC you can use the GridServer internal authentication (this information is encrypted and stored in GridServer metadata database)
- Amazon S3 and Amazon RDS can be used by the Grid Libraries as external resources that can be used from Grid Libraries.
The Director is used to configure many settings of a GridServer Manager, including users and passwords, Driver profiles, routing properties, and Engine
configurations. These settings are configured with the web-based GridServer Administration Tool.
GridServer can use an external database, in this case, Amazon RDS Postgres to store metadata (such as User, Engine, Driver, and Broker information) and also reporting information (job statistics, log events, etc.).
This database is accessed through JDBC and the configuration of the database used is changed on the Director from the GridServer Administration Tool.
- Solution Brief "Managing Market Risk with Extreme Speed and Scalability at Lower Cost"
- Whitepaper "A Cost-effective Solution to New FRTB Computing Requirements"
- TIBCO Gridserver Datasheet
- TIBCO GridServer Documentation