This section explains what the responsibilities of every 3scale component are and what is the impact when each of them is not available.
-
3scale API Gateway
-
APIcast enforces traffic policies, either returning an error or proxying the API call to the customer’s API backend
-
APIcast fetches its operating configuration from
system-appcomponent when the gateway starts -
Each incoming/managed API call produces a sync/auth request from the API Gateway to
backend-listener -
Reduces latency by introducing the API Gateway in the traffic flow
-
This is the most critical component, responsible for authorizing and rate-limiting requests
-
APIcast will not be able to tell whether a request should be authorized or not and simply denies everything
-
APIs configured using 3scale are down
-
This service distuption can be mitigated by using the APIcast auth caching policy. There are some trade-offs when using this policy (service availability upon possible outages vs. service available but possibly using outdated configuration), so make sure you understand the implications before using it
-
Process the background jobs created by
backend-listener -
Runs enqueued jobs, mainly related to traffic reporting
-
Reported metrics can’t be made effective, so the rate-limiting functionality loses accuracy because those pending reports are not taken into account
-
Statistics will not be up to date and the alerts and errors shown in the admin portal will not be triggered
-
Because accounting will not work, authorizations will not be correct
-
Jobs will not be processed and will start accumulating in
backend-redis, which could lead to database out of memory related problems
-
This is a simple task that acts as a cron like scheduler to retry failed jobs
-
When a
backend-workerjob fails, it is pushed to a "failed jobs" queue so that it can be retried later. Jobs can fail, for example, when there’s a Redis timeout -
It is also responsible for deleting the stats of services that have been removed. This is run every 24h
-
It is the database used by
backend-listenerandbackend-worker -
It is used both for data persistence (metrics…) and to store job queues
-
Developer and Admin Portal UI/API will not be available
-
3scale APIs (Accounts, Analytics) will not be available
-
apicastwill not be able to retrieve the gateway configuration, so newapicastdeployments will not work -
Already running
apicastPods will continue serving traffic using the latest retrieved configuration (cached)
-
It is the job manager used by
system-appto process jobs in the background asynchronously
-
Emails are not sent
-
Communication with
backend-listenerbreaks: changes in Admin Portal will not propagate to Backend -
Backend alerts will not be triggered
-
Webhooks will not be triggered
-
Zync will not receive any updates
-
Background jobs will not be processed and will start accumulating in
system-redis, which could lead to database out of memory related problems
-
It is the database used by
system-appto enqueue the jobs consumed bysystem-sidekiq
-
system-memcachedis an ephemeral cache of values used to speed-up the performance of thesystem-appweb application
-
Receives events from
system-sidekiq -
Enqueue those events as new jobs to be processed in the background by
zync-que -
Those enqueued jobs can be:
-
Creation/Update of OpenShift Routes (Admin/Developer portals of each tenant)
-
Creation/Update of OpenShift Routes (
apicast-stagingorapicast-productiondomains of each API) -
Synchronization of information with configured 3rd party IDPs
-
-
Synchronization of OpenShift Routes for
apicast-stagingandapicast-productionwill not work -
Synchronization of OpenShift Routes for the Admin Portal and the Developer Portal domains will not work
-
Synchronization with 3rd party IDPs will not work
-
system-sidekiqwill retry the failed requests for some time
-
Process the enqueued jobs created by
zync -
Those jobs can be:
-
Creation/Update of OpenShift Routes (Admin/Developer portals of each tenant)
-
Creation/Update of OpenShift Routes (
apicast-stagingorapicast-productiondomains of each API) -
Synchronization of information with configured 3rd party IDPs
-
-
Synchronization of OpenShift Routes for
apicast-stagingandapicast-productionwill not work -
Synchronization of OpenShift Routes for the Admin Portal and the Developer Portal domains will not work
-
Synchronization with 3rd party IDPs will not work
-
Jobs will not be processed and will start accumulating in
zync-database, which could lead to database out of disk space related problems
-
It is the database used by
zync -
It contains job queues and also some data synchronized from
system-app
