Learn About Oracle Notifications Service

Oracle Cloud Infrastructure Notifications service (ONS) is most commonly demonstrated as a means to make Oracle Cloud Infrastructure Events (OCI Events) actionable.

For example, executing an operation to scale up or down a virtual machine based on OCI Events or sending notifications to operational support through platforms such as SMS, email, and Slack. The limits of ONS go beyond the uses cases documented here; other, legitimate scenarios include:

  • Pushing OCI Events to a third-party solution not natively supported by ONS as in hybrid or multicloud enterprises where operation dashboards reside with an on-premises system.
  • Generating notifications from applications when significant business events occur without the application needing to know how that event will be addressed.
  • Implementing application choreography through a pub/sub framework.

Regardless of the use case, you’ve identified the need to use ONS using an application source or target. This playbook will walk through several aspects of setting up and using ONS. Specifically:

  • Connecting ONS to Slack to see what a custom application is doing.
  • Creating and running a custom application that will generate ONS messages to a specific topic (being subscribed to by our Slack account).
  • Using an API mock server (in our case Postman) to see how a REST endpoint can be invoked when a message is added to an ONS topic.

This demo will show that using ONS for application-to-application communication is simple enough to achieve. But the consumer client or a mechanism between ONS and the client needs to address the activation process. While this may appear contrary to our needs. The mechanism provides a secure means to prevent the ONS from being subverted.

Architecture

These architectures show ONS using a local host and a virtual machine on OCI.

Your architecture will look like one of the following two diagrams, once you've completed all the configuration and demo-application deployment for all ONS applications, depending on whether you chose to run the client applications as a local solution (first diagram) or on a virtual machine (VM) for the notification provider (second diagram).

For the rest of the playbook, we'll assume you're running the test application locally.

When running the client applications locally, the architecture will look like:



oci-notifications-local-host-architecture-diagram.zip

When running the client applications on a VM within OCI, the architecture will look like:



oci-notifications-virtual-machine-architecture-diagram-oracle.zip

This 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).

  • Availability domain

    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.

  • 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.

  • Virtual cloud network (VCN) and subnet

    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.

  • Notifications

    The Oracle Cloud Infrastructure Notifications service broadcasts messages to distributed components through a publish-subscribe pattern, delivering secure, highly reliable, low latency, and durable messages for applications hosted on Oracle Cloud Infrastructure.

  • Policy

    An Oracle Cloud Infrastructure Identity and Access Management policy specifies who can access which resources, and how. Access is granted at the group and compartment level, which means you can write a policy that gives a group a specific type of access within a specific compartment, or to the tenancy.

  • 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.