Difference between revisions of "PEC-REP/Current/GIMPEGuide/PlanningGSP"

From Genesys Documentation
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
|LimitationsStatus=No
 
|LimitationsStatus=No
 
|HelmStatus=No
 
|HelmStatus=No
|HelmText=GIM Stream Processor (GSP) is the only service that runs in the GSP Docker container. The Helm charts included with the GSP release provision GSP and any Kubernetes infrastructure necessary for GSP to run.
+
|HelmText=To configure and deploy the GIM Stream Processor (GSP), you must obtain the Helm charts included with the GSP release. These Helm charts provision GSP plus any Kubernetes infrastructure GSP requires to run.
  
See {{Link-AnywhereElse|product=ReleaseNotes|version=Current|manual=GenesysEngage-cloud|topic=GIMHelm}} for the Helm chart version you must download for your release.
+
GSP is the only service that runs in the GSP container.
  
For information about how to download the Helm charts, see {{SuiteLevelLink|helmchart}}.
+
For information about how to download the Helm charts, see {{SuiteLevelLink|helmchart}}. To find the correct Helm chart version for your release, see {{Link-AnywhereElse|product=ReleaseNotes|version=Current|manual=GenesysEngage-cloud|topic=GIMHelm}} for the Helm chart version you must download for your release.
 
|ThirdPartyStatus=No
 
|ThirdPartyStatus=No
 
|ThirdPartyText=For information about setting up your Genesys Multicloud CX private edition platform, see {{SuiteLevelLink|softwarereq}}.
 
|ThirdPartyText=For information about setting up your Genesys Multicloud CX private edition platform, see {{SuiteLevelLink|softwarereq}}.
Line 17: Line 17:
 
|SectionThirdPartyItem={{SectionThirdPartyItem
 
|SectionThirdPartyItem={{SectionThirdPartyItem
 
|ThirdPartyItem=2f69518e-33af-4c0f-adcc-a98e5427e5e0
 
|ThirdPartyItem=2f69518e-33af-4c0f-adcc-a98e5427e5e0
|Notes=The Kafka topics that GSP will consume and produce must exist in the Kafka configuration. See more details [[{{FULLPAGENAME}}#Kafka|below]].
+
|Notes=The Kafka topics that GSP will consume and produce must exist in the Kafka configuration. See more details [[Draft:PEC-REP/Current/GIMPEGuide/PlanningGSP#GSP KafkaTopics|below]].
 
}}{{SectionThirdPartyItem
 
}}{{SectionThirdPartyItem
 
|ThirdPartyItem=9ae24d71-5263-4a2e-8d1b-f65660f1cdc0
 
|ThirdPartyItem=9ae24d71-5263-4a2e-8d1b-f65660f1cdc0
Line 28: Line 28:
 
}}
 
}}
 
|StorageStatus=No
 
|StorageStatus=No
|StorageText=Like GCA, GSP uses S3-compatible storage to store data during processing. GSP stores data such as GSP checkpoints, savepoints, and high availability data. By default, GSP is configured to use Azure Blob Storage, but you can also use S3-compatible storage provided by other cloud platforms. Genesys expects you to use the same storage account for GSP and GCA.
+
|StorageText=GSP maintains internal “state,” such as such as GSP checkpoints, savepoints, and high availability data, which must be persisted (stored). When it starts, GSP reads its state from storage, which allows it to continue processing data without reading data from Kafka topics from the start. GSP periodically updates its stare as it processing incoming data.
{{Section
+
GSP uses S3-compatible storage to store persisted data. You must provision this S3-compatible storage in your environment.
|sectionHeading=
 
|anchor=S3
 
|alignment=Vertical
 
|structuredtext=To create S3-compatible storage, do one of the following:
 
  
*[[{{FULLPAGENAME}}#s3OpenShift|OpenShift: Create an Object Bucket Claim]]
+
By default, GSP is configured to use Azure Blob Storage, but you can also use S3-compatible storage provided by other cloud platforms. Genesys expects you to use the same storage account for GSP and GCA.
*[[{{FULLPAGENAME}}#s3GKE|GKE: Create bucket storage]]
 
  
{{AnchorDiv|s3OpenShift}}
+
{{AnchorDiv|GSP_Plan_CreateS3Storage}}
===OpenShift: Create an Object Bucket Claim===
+
===Create S3-compatible storage===
Create an S3 Object Bucket Claim (OBC) if none exists.
+
Genesys Info Mart has no special requirements for the storage buckets you create. Follow the instructions provided by the storage service provider of your choice to create the S3-compatible storage.
  
#Create a '''gsp-obc.yaml''' file:
+
*For GKE, see the Google Cloud Storage documentation about creating bucket storage.
 +
*For AKS, see Azure Storage documentation about creating blob storage.
  
#:<source lang="bash">apiVersion: objectbucket.io/v1alpha1
+
To enable the S3-compatible storage object, you populate Helm chart override values for the service (see ). To do this, you need to know details such as the endpoint information, access key, and secret.
kind: ObjectBucketClaim
 
metadata:
 
  name: gim
 
  namespace: gsp
 
spec:
 
  generateBucketName: gim
 
  storageClassName: openshift-storage.noobaa.io</source>
 
#Execute the command to create the OBC:
 
#:<source lang="text">oc create -f gsp-obc.yaml -n gsp</source>
 
#: The following Kubernetes resources are created automatically:
 
#*:An ObjectBucket (OB), which contains the bucket endpoint information, a reference to the OBC, and a reference to the storage class.
 
#*A ConfigMap in the same namespace as the OBC, which contains the endpoint to which applications connect in order to consume the object interface
 
#*A Secret in the same namespace as the OBC, which contains the key-pairs needed to access the bucket.
 
#: Note the following:
 
#*The name of the secret and the configMap are the same as the OBC name.
 
#*The bucket name is created with a randomized suffix.
 
#Get S3 data.
 
#: You need to know details of your S3 object in order to populate Helm chart override values for the service.
 
##: Execute the following command, where <tt>gim</tt> is the name of the configMap associated with the OBC:
 
##: <source lang="text">oc get cm gim -n gsp -o yaml -o jsonpath={.data}</source>
 
##: The result shows data such as BUCKET_HOST, BUCKET_NAME, BUCKET_PORT, and so on.
 
## Execute the following commands to get the values of the keys you require for access, where <tt>gim</tt> is the name of the secret associated with the OBC:
 
##*To get the value of the access key:
 
##*:<source lang="text">oc get secret gim -n gsp -o yaml -o jsonpath={.data.AWS_ACCESS_KEY_ID} | base64 --decode</source>
 
##*To get the value of the secret key:
 
##*:<source lang="text">oc get secret gim -n gsp -o yaml -o jsonpath={.data.AWS_SECRET_ACCESS_KEY} | base64 --decode</source>
 
#: Use the S3 data to populate storage-related Helm chart override values for the service (for GSP, see {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=ConfigureGSP|anchor=Storage|display text=Configure S3-compatible storage}}).
 
#: {{NoteFormat|You can also obtain the S3 data from the OpenShift console: Go to the '''Object bucket claims''' section under the '''Storage''' menu, and click on the required OBC resource. The data will be at the bottom of the page.|2}}
 
  
{{AnchorDiv|s3GKE}}
+
{{NoteFormat|Note and securely store the bucket details, particularly the access key and secret, when you create the storage bucket. Depending on the cloud storage service you choose, you may not be able to recover this information subsequently.}}
===GKE: Create bucket storage===
 
|Status=No
 
}}{{Section
 
|alignment=Horizontal
 
|Media=Image
 
|image=Pe_gsp_gcp-console_cloudstorage.png
 
|AltText=A screenshot of the GCP Cloud Console showing the Cloud Storage menu
 
|structuredtext=In the Google Cloud Platform (GCP) Cloud Console, select '''Cloud Storage''' and then choose '''Browser''' from the drop-down menu.
 
|Status=No
 
}}{{Section
 
|alignment=Horizontal
 
|Media=Image
 
|image=Pe_gsp_gcp-console_cloudstoragebrowser.png
 
|AltText=A screenshot of the GCP Cloud Console showing the Cloud Storage Browser screen
 
|structuredtext=On the '''Cloud Storage > Browser''' screen, click '''CREATE BUCKET'''.
 
|Status=No
 
}}{{Section
 
|alignment=Horizontal
 
|Media=Image
 
|image=Pe_gsp_gcp-console_cloudstoragecreatebucket.png
 
|AltText=A screenshot of the GCP Cloud Console showing the Cloud Storage Create Bucket screen
 
|structuredtext=On the '''Create a bucket''' screen, specify the bucket details:
 
*'''Name your bucket''' — Enter a unique name for the bucket.
 
*'''Choose where to store your data''' — Select the geo-redundancy type (multi-region, dual-region, or region) and location where the data will be stored. <!--{{Editgrn_open}}<font color=red>'''Writer's note:''' Can we provide a recommendation for type? The screenshot in the PAT team instructions shows Multi-region selected, but from the description on https://cloud.google.com/storage/docs/locations, wouldn't Region be better?</font>{{Editgrn_close}}-->
 
*:{{NoteFormat|You cannot change the location after the bucket is created.}}
 
*'''Choose a default storage class for your data''' — Select the Standard storage class.
 
*'''Choose how to control access to objects''' — Check the box to enforce public access prevention on this bucket, to protect the bucket from being accidentally exposed to the public. When you enforce public access prevention, no one can make data in applicable buckets public through IAM policies or ACLs.
 
*'''Choose how to protect object data''' — GSP does not require any protection tools.
 
 
 
Click '''CREATE BUCKET''' to create the bucket.
 
 
 
The '''Bucket details''' screen displays. Verify and, if necessary, edit the details.
 
 
 
<nowiki/>
 
|Status=No
 
}}{{Section
 
|alignment=Horizontal
 
|Media=Image
 
|image=Pe_gsp_gcp-console_cloudstoragesettings_interop.png
 
|AltText=A screenshot of the GCP Cloud Console showing the Cloud Storage Settings screen
 
|structuredtext=It is important to create a storage access key.
 
 
 
<!--{{Editgrn_open}}<font color=red>'''Writer's note:''' (1) Please esp. confirm step 2 because it doesn't exactly match the screenshot. Highlights flag other additions I made. (2) Given that GSP is not one of the first services to be deployed in a PE instance, it's surely likely that one or more service accounts will already exist. Do we have a recommendation about whether to use an existing service account or create a new one?</font>{{Editgrn_close}}-->
 
# Go to '''Settings > Interoperability'''.
 
# If the service account you want to use does not already exist, click '''CREATE A KEY FOR SERVICE ACCOUNT'''. Otherwise, click '''CREATE A KEY FOR ANOTHER SERVICE ACCOUNT,''' select the service account in the dialog box that displays, and click '''CREATE KEY'''.
 
#: '''Note:'''The service account is the GCP service account associated with the Google Cloud project. The GCP service account enables applications to authenticate and access Google Cloud resources and services. It is not related to the Kubernetes service account created by the Helm chart. Depending on how you want to organize your Google Cloud resources, you can have multiple GCP projects and service accounts.
 
|Status=No
 
}}{{Section
 
|alignment=Horizontal
 
|Media=Image
 
|image=Pe_gsp_gcp-console_cloudstoragesettings_accesskey.png
 
|AltText=A screenshot of the GCP Cloud Console showing the Cloud Storage New Service Account HMAC screen
 
|structuredtext=The Access Key and Secret are generated and displayed in a dialog box. Copy and securely save these details, which you use to populate storage-related Helm chart override values for the applicable service (see {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=ConfigureGSP|anchor=Storage|display text=Configure S3-compatible storage}}).
 
{{NoteFormat|You cannot recover the Secret once the dialog box is closed.}}
 
|Status=No
 
}}
 
 
|NetworkStatus=No
 
|NetworkStatus=No
 
|NetworkText=No special network requirements. Network bandwidth must be sufficient to handle the volume of data to be transferred into and out of Kafka.
 
|NetworkText=No special network requirements. Network bandwidth must be sufficient to handle the volume of data to be transferred into and out of Kafka.
Line 139: Line 51:
 
There are other private edition services you must deploy before Genesys Info Mart. For detailed information about the recommended order of services deployment, see {{SuiteLevelLink|deployorder}}.
 
There are other private edition services you must deploy before Genesys Info Mart. For detailed information about the recommended order of services deployment, see {{SuiteLevelLink|deployorder}}.
 
|GDPRStatus=No
 
|GDPRStatus=No
|GDPRText=Not applicable, provided your Kafka retention policies have not been set to more than 30 days. GSP does not store information beyond ephemeral data used during processing.
+
|GDPRText=Not applicable, provided your Kafka retention policies have not been set to more than 30 days. GSP does not store information beyond the ephemeral data used during processing.
{{AnchorDiv|Kafka}}
+
{{AnchorDiv|GSP_KafkaTopics}}
==Kafka configuration==
+
==GSP Kafka topics==
Unless Kafka has been configured to auto-create topics, ensure that the Kafka topics GSP requires have been created in the Kafka configuration. The following table shows the topic names GSP expects to use. An entry in the '''Customizable GSP parameter''' column indicates that GSP supports using a customized topic name. If you use customized topic names, you must override the applicable values in the '''values.yaml''' file (see {{Link-SomewhereInThisVersion|manual=GIMPEGuide|topic=ConfigureGSP|anchor=OverrideValues|display text=Override Helm chart values}}).
+
For GSP, topics in Kafka represent various data domains and GSP expects certain topics to be defined. 
 +
 
 +
*If a topic does not exist, GSP will never receive data for that domain.
 +
*If a customized topic has been created but not defined in GSP configuration, data from that domain will be discarded.
 +
 
 +
Unless Kafka has been configured to auto-create topics, you must manually ensure that all of the Kafka topics GSP requires are created in Kafka configuration.
  
The topics represent various data domains. If a topic does not exist, GSP will never receive data for that domain. If the topic exists but the customizable parameter value is empty in the GSP configuration, data from that domain will be discarded.
+
The following table shows the topic names GSP expects to be available. In this table, an entry in the '''Customizable GSP parameter column''' indicates support for customizing that topic name.  
 
{{{!}}
 
{{{!}}
 
!'''Topic name'''
 
!'''Topic name'''
Line 150: Line 67:
 
!'''Description'''
 
!'''Description'''
 
{{!}}-
 
{{!}}-
{{!}} colspan="3"{{!}}'''GSP consumes the following topics:'''
+
{{!}} colspan="3"{{!}}'''GSP consumes data from the following topics:'''
 +
{{!}}-
 +
{{!}}designer-sdr
 +
{{!}}designer
 +
{{!}}Name of the input topic with Session Detail Record (SDR) data
 
{{!}}-
 
{{!}}-
{{!}}voice-callthread
+
{{!}}digital-agentstate
{{!}}
+
{{!}}digitalAgentStates
{{!}}Name of the input topic with voice interactions
+
{{!}}Name of the input topic with digital agent states
 +
{{!}}-
 +
{{!}}digital-itx
 +
{{!}}digitalItx
 +
{{!}}Name of the input topic with digital interactions
 +
{{!}}-
 +
{{!}}gca-cfg
 +
{{!}}cfg
 +
{{!}}Name of the input topic with configuration data
 
{{!}}-
 
{{!}}-
 
{{!}}voice-agentstate
 
{{!}}voice-agentstate
 
{{!}}
 
{{!}}
 
{{!}}Name of the input topic with voice agent states
 
{{!}}Name of the input topic with voice agent states
 +
{{!}}-
 +
{{!}}voice-callthread
 +
{{!}}
 +
{{!}}Name of the input topic with voice interactions
 
{{!}}-   
 
{{!}}-   
 
{{!}}voice-outbound
 
{{!}}voice-outbound
 
{{!}}
 
{{!}}
{{!}}Name of the input topic with outbound (CX Contact) activity
+
{{!}}Name of the input topic with outbound (CX Contact) activity associated with either voice or digital interactions
 
{{!}}-
 
{{!}}-
{{!}}digital-itx
+
{{!}} colspan="3"{{!}}'''GSP produces data into the following topics:'''
{{!}}digitalItx
 
{{!}}Name of the input topic with digital interactions
 
 
{{!}}-
 
{{!}}-
{{!}}digital-agentstate
+
{{!}}gsp-cfg
{{!}}digitalAgentStates
 
{{!}}Name of the input topic with digital agent states
 
{{!}}-
 
{{!}}gca-cfg
 
 
{{!}}cfg
 
{{!}}cfg
{{!}}Name of the input topic with configuration data
+
{{!}}Name of the output topic for configuration reporting
 
{{!}}-
 
{{!}}-
{{!}} colspan="3"{{!}}'''GSP produces the following topics:'''
+
{{!}}gsp-custom
 +
{{!}}custom
 +
{{!}}Name of the output topic for custom reporting
 
{{!}}-
 
{{!}}-
 
{{!}}gsp-ixn
 
{{!}}gsp-ixn
Line 182: Line 111:
 
{{!}}Name of the output topic for interactions
 
{{!}}Name of the output topic for interactions
 
{{!}}-
 
{{!}}-
{{!}}gsp-sm
+
{{!}}gsp-mn
{{!}}agentStates
+
{{!}}mediaNeutral
{{!}}Name of the output topic for agent states
+
{{!}}Name of the output topic for media-neutral agent states
 
{{!}}-  
 
{{!}}-  
 
{{!}}gsp-outbound
 
{{!}}gsp-outbound
Line 190: Line 119:
 
{{!}}Name of the output topic for outbound (CX Contact) activity
 
{{!}}Name of the output topic for outbound (CX Contact) activity
 
{{!}}-
 
{{!}}-
{{!}}gsp-custom
+
{{!}}gsp-sm
{{!}}custom
+
{{!}}agentStates
{{!}}Name of the output topic for custom reporting
+
{{!}}Name of the output topic for agent states
{{!}}-
 
{{!}}gsp-cfg
 
{{!}}cfg
 
{{!}}Name of the output topic for configuration reporting
 
 
{{!}}-
 
{{!}}-
 
<!--{{!}}gsp-mn {{Editgrn_open}}<font color=red>'''Writer's note:''' This row will be commented out until media-neutral is officially supported.</font>{{Editgrn_close}}
 
<!--{{!}}gsp-mn {{Editgrn_open}}<font color=red>'''Writer's note:''' This row will be commented out until media-neutral is officially supported.</font>{{Editgrn_close}}

Latest revision as of 13:31, March 10, 2023

This topic is part of the manual Genesys Info Mart Private Edition Guide for version Current of Reporting.

Find out what to do before deploying GIM Stream Processor (GSP).

Limitations and assumptions

Not applicable

Download the Helm charts

To configure and deploy the GIM Stream Processor (GSP), you must obtain the Helm charts included with the GSP release. These Helm charts provision GSP plus any Kubernetes infrastructure GSP requires to run.

GSP is the only service that runs in the GSP container.

For information about how to download the Helm charts, see Downloading your Genesys Multicloud CX containers. To find the correct Helm chart version for your release, see Helm charts and containers for Genesys Info Mart for the Helm chart version you must download for your release.

Third-party prerequisites

For information about setting up your Genesys Multicloud CX private edition platform, see Software requirements.

The following table lists the third-party prerequisites for GSP.

Third-party services
Name Version Purpose Notes
Kafka 2.x Message bus.The Kafka topics that GSP will consume and produce must exist in the Kafka configuration. See more details below.
Object storage Persistent or shared data storage, such as Amazon S3, Azure Blob Storage, or Google Cloud Storage.Both GSP and GCA require persistent storage to store data during processing. You can use the same storage account for both services.
A container image registry and Helm chart repository Used for downloading Genesys containers and Helm charts into the customer's repository to support a CI/CD pipeline. You can use any Docker OCI compliant registry.
Command Line Interface The command line interface tools to log in and work with the Kubernetes clusters.

Storage requirements

GSP maintains internal “state,” such as such as GSP checkpoints, savepoints, and high availability data, which must be persisted (stored). When it starts, GSP reads its state from storage, which allows it to continue processing data without reading data from Kafka topics from the start. GSP periodically updates its stare as it processing incoming data. GSP uses S3-compatible storage to store persisted data. You must provision this S3-compatible storage in your environment.

By default, GSP is configured to use Azure Blob Storage, but you can also use S3-compatible storage provided by other cloud platforms. Genesys expects you to use the same storage account for GSP and GCA.

Create S3-compatible storage

Genesys Info Mart has no special requirements for the storage buckets you create. Follow the instructions provided by the storage service provider of your choice to create the S3-compatible storage.

  • For GKE, see the Google Cloud Storage documentation about creating bucket storage.
  • For AKS, see Azure Storage documentation about creating blob storage.

To enable the S3-compatible storage object, you populate Helm chart override values for the service (see ). To do this, you need to know details such as the endpoint information, access key, and secret.

Important
Note and securely store the bucket details, particularly the access key and secret, when you create the storage bucket. Depending on the cloud storage service you choose, you may not be able to recover this information subsequently.

Network requirements

No special network requirements. Network bandwidth must be sufficient to handle the volume of data to be transferred into and out of Kafka.

Browser requirements

Not applicable

Genesys dependencies

There are no strict dependencies between the Genesys Info Mart services, but the logic of your particular pipeline might require Genesys Info Mart services to be deployed in a particular order. Depending on the order of deployment, there might be temporary data inconsistencies until all the Genesys Info Mart services are operational. For example, GSP looks for the GCA snapshot when it starts; if GCA has not yet been deployed, GSP will encounter unknown configuration objects and resources until the snapshot becomes available.

There are other private edition services you must deploy before Genesys Info Mart. For detailed information about the recommended order of services deployment, see Order of services deployment.

GDPR support

Not applicable, provided your Kafka retention policies have not been set to more than 30 days. GSP does not store information beyond the ephemeral data used during processing.

GSP Kafka topics

For GSP, topics in Kafka represent various data domains and GSP expects certain topics to be defined.

  • If a topic does not exist, GSP will never receive data for that domain.
  • If a customized topic has been created but not defined in GSP configuration, data from that domain will be discarded.

Unless Kafka has been configured to auto-create topics, you must manually ensure that all of the Kafka topics GSP requires are created in Kafka configuration.

The following table shows the topic names GSP expects to be available. In this table, an entry in the Customizable GSP parameter column indicates support for customizing that topic name.

Topic name Customizable GSP parameter Description
GSP consumes data from the following topics:
designer-sdr designer Name of the input topic with Session Detail Record (SDR) data
digital-agentstate digitalAgentStates Name of the input topic with digital agent states
digital-itx digitalItx Name of the input topic with digital interactions
gca-cfg cfg Name of the input topic with configuration data
voice-agentstate Name of the input topic with voice agent states
voice-callthread Name of the input topic with voice interactions
voice-outbound Name of the input topic with outbound (CX Contact) activity associated with either voice or digital interactions
GSP produces data into the following topics:
gsp-cfg cfg Name of the output topic for configuration reporting
gsp-custom custom Name of the output topic for custom reporting
gsp-ixn interactions Name of the output topic for interactions
gsp-mn mediaNeutral Name of the output topic for media-neutral agent states
gsp-outbound outbound Name of the output topic for outbound (CX Contact) activity
gsp-sm agentStates Name of the output topic for agent states
Comments or questions about this documentation? Contact us for support!