SailGP: Real-Time Stream Analytics Platform Deployment on Oracle Cloud

In a less than 5 seconds, SailGP collects and analyzes over 30,000 data points and streams racing metrics in real-time to help its crews deftly navigate their F50 vessels, and to connect with the team's billions of fans worldwide.

To help maintain its dominance during the off season, SailGP is building a training simulator using streaming analytics, machine learning, an autonomous data warehouse, and visualization technologies from Oracle running on Oracle Cloud Infrastructure.

Customer Story

Learn more about SailGP's journey to Oracle Cloud:

Architecture

As SailGP's F50 foiling catamarans compete throughout a season of multiple grands prix around the world, in-hull sensors capture approximately 30,000 unique data points, streaming in at 70 kbps per boat.

Some of the data points include boat attitude, speed, pitch, water and wind conditions, and sailor biometrics. Each team's metrics are broadcast to SailGP's media partners, shared through the team's app, and enjoyed by the team's billions of fans who are keen to get closer to the action. Data from the F50 vessels is transferred via satellite connections to an Oracle Autonomous Data Warehouse (ADW) running on Oracle Cloud Infrastructure using a dedicated 1Gbps FastConnect. Depending on the location of a race, the FastConnect service may not be available. In these instances, IPSec/VPN connections are substituted.

The overall flow includes collecting data from F50 yachts that are equipped with more than 100 sensors. Some of the F50s collect simple data from pressure sensors, while others collect more complex data from gyroscopes and GPSs. Once collected, the data is distributed to compute instances for pre-processing in the media data system server (MDSS) and PI server. Data is then transformed from a proprietary format to a JSON format, and then sent to Oracle Stream Analytics, which processes the data and detects relevant events. The data is then sent to Oracle Autonomous Data Warehouse, which performs complex analysis and makes that data available to media partners through Oracle REST Data Services.

Oracle Autonomous Data Warehouse is also used to feed data from SailGP's MySQL server (mainly used for legacy applications and data) using Oracle Cloud Infrastructure GoldenGate for replication.

SailGPs cloud architecture includes the following components:

  • Sensors mounted on SailGP's F50s collect data locally and stream a subset of what is needed for analysis and viewing in real-time during the race.
  • A PI server, which runs a SailGP custom application, receives 1Hz, 5Hz, and 10Hz telemetry signals from the sensors, sends them to Oracle Stream Analytics engine, and loads the data into Oracle Autonomous Data Warehouse. The PI server is used for both streaming data during the race, and batch processing of offloaded data after the race. The volume of batch data is 10 times higher than the volume of streaming data and is loaded into Oracle Cloud Infrastructure Object Storage, and then processed in Oracle Autonomous Data Warehouse.
  • Media data system server (MDSS), which runs another SailGP custom application, receives 1Hz telemetry signals from the sensors, processes that data using a MySQL server, and finally loads the processed data into Oracle Autonomous Data Warehouse. All messages to and from the MDSS server use TCP/IP protocol and a proprietary format which is then converted to JSON format.
  • A third application server running a SailGP custom application is used to calculate statistics on time series data, such as data aggregates.
  • An Oracle Stream Analytics server, which is based on an Oracle Cloud Marketplace image, collects the offloaded data from the streaming service for Oracle Autonomous Data Warehouse. The number of topics were adjusted to ~60 partitions. Throughput limits were also adjusted to 1 Mbps for writing and 2 Mbps for reading.
  • Each second, an Oracle MySQL server is used to process and replicate incoming data from Oracle Cloud Infrastructure to an Oracle Autonomous Data Warehouse.
  • Oracle REST Data Services server, also from an Oracle Cloud Marketplace image, is used to expose data from Oracle Autonomous Data Warehouse to SailGP's media partners.
  • Media partners then use Oracle REST Data Services through an Oracle Flexible Load Balancer for display on their broadcast. Factoring in latency, the data takes about 3 seconds to get from SailGP's system to its media partners.
  • SailGP uses Oracle Flexible Load Balancer with a bandwidth range of 10 Mbps - 400 Mbps, and is using E3 and E4 flex VM shapes in addition to the Oracle Cloud Marketplace images to deploy different components.
  • Notifications and logging services help SailGP know when to scale its virtual machine (VM) CPU and RAM resources.
  • For security, SailGP uses Oracle Identity and Access Management policies, federated access with Oracle Identity Cloud Service, and Oracle Cloud Guard to assess the security recommendations that are generated to enhance SailGP's overall security posture. An Oracle Network Security Group (NSG) provides a virtual firewall for some virtual machines (VMs) for even tighter security. Admins and other authorized users can open VMs to connect to SailGP's production system when needed.
  • SailGP's entire deployment uses one compartment with an Oracle Flexible Load Balancer in a public subnet, while the remaining components live in a private subnet.
  • Future plans to expand SailGP's footprint on Oracle Cloud Infrastructure include integrating Grafana 8, machine learning, APEX, and predictive analytics services for sensor failures and appendage anomalies.

The following diagram illustrates this reference architecture.



sailgp-oci-oracle.zip

The architecture has the following components:

  • Region

    An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

    All the resources in this architecture are deployed in a single region.

  • Tenancy

    A tenancy is a secure and isolated partition that Oracle sets up within Oracle Cloud when you sign up for Oracle Cloud Infrastructure. You can create, organize, and administer your resources in Oracle Cloud within your tenancy.

  • Availability domains

    Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region.

    All the resources in this architecture are deployed in a single availability domain.

  • Fault domain

    A fault domain is a grouping of hardware and infrastructure within an availability domain. Each availability domain has three fault domains with independent power and hardware. When you distribute resources across multiple fault domains, your applications can tolerate physical server failure, system maintenance, and power failures inside a fault domain.

  • Compartment

    Compartments are cross-region logical partitions within an Oracle Cloud Infrastructure tenancy. Use compartments to organize your resources in Oracle Cloud, control access to the resources, and set usage quotas. To control access to the resources in a given compartment, you define policies that specify who can access the resources and what actions they can perform.

  • Virtual cloud network (VCN) and subnets

    A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.

  • Security list

    For each subnet, you can create security rules that specify the source, destination, and type of traffic that must be allowed in and out of the subnet.

  • Cloud Guard

    You can use Oracle Cloud Guard to monitor and maintain the security of your resources in Oracle Cloud Infrastructure. Cloud Guard uses detector recipes that you can define to examine your resources for security weaknesses and to monitor operators and users for risky activities. When any misconfiguration or insecure activity is detected, Cloud Guard recommends corrective actions and assists with taking those actions, based on responder recipes that you can define.

  • Dynamic routing gateway (DRG)

    The DRG is a virtual router that provides a path for private network traffic between a VCN and a network outside the region, such as a VCN in another Oracle Cloud Infrastructure region, an on-premises network, or a network in another cloud provider.

  • Internet gateway

    The internet gateway allows traffic between the public subnets in a VCN and the public internet.

  • FastConnect

    Oracle Cloud Infrastructure FastConnect provides an easy way to create a dedicated, private connection between your data center and Oracle Cloud Infrastructure. FastConnect provides higher-bandwidth options and a more reliable networking experience when compared with internet-based connections.

  • Load balancer

    The Oracle Cloud Infrastructure Load Balancing service provides automated traffic distribution from a single entry point to multiple servers in the back end.

  • Object storage

    Object storage provides quick access to large amounts of structured and unstructured data of any content type, including database backups, analytic data, and rich content such as images and videos. You can safely and securely store and then retrieve data directly from the internet or from within the cloud platform. You can seamlessly scale storage without experiencing any degradation in performance or service reliability. Use standard storage for "hot" storage that you need to access quickly, immediately, and frequently. Use archive storage for "cold" storage that you retain for long periods of time and seldom or rarely access.

  • Compute

    The Oracle Cloud Infrastructure Compute service enables you to provision and manage compute hosts in the cloud. You can launch compute instances with shapes that meet your resource requirements for CPU, memory, network bandwidth, and storage. After creating a compute instance, you can access it securely, restart it, attach and detach volumes, and terminate it when you no longer need it.

  • GoldenGate

    Oracle Cloud Infrastructure GoldenGate is a fully managed service that allows data ingestion from sources residing on premises or in any cloud, leveraging the GoldenGate CDC technology for a non intrusive and efficient capture of data and delivery to Oracle Autonomous Data Warehouse in real time and at scale in order to make relevant information available to consumers as quickly as possible.

  • Autonomous Data Warehouse

    Oracle Autonomous Data Warehouse is a self-driving, self-securing, self-repairing database service that is optimized for data warehousing workloads. You do not need to configure or manage any hardware, or install any software. Oracle Cloud Infrastructure handles creating the database, as well as backing up, patching, upgrading, and tuning the database.

Explore More

Learn more about the features of this architecture.