Hybrid Deployments
Rookout's hybrid SaaS architecture empowers customers to keep application data within their premise by separating the control plane from the data plane.
Keeping the control plane connected to the Rookout cloud retains the benefits of SaaS: ease of use, ease of maintenance, live updates, etc. Keeping the data plane on-premise simplifies data governance concerns and is useful for a variety of security and compliance considerations.
Architecture
Rookout hybrid architecture relies on two containers to process, store, and access application data:
- The controller acts as a proxy, optimizing network traffic and offloading processing from the monitored applications.
- The datastore is an in-memory cache making the data available for end users over a secure web endpoint.
Agents
When using the hybrid architecture, configure your agents to connect to the relevant controllers:
- Java
- .NET
- Node
- Go
- Python
- Ruby
- Environment Variable
export JAVA_TOOL_OPTIONS="-javaagent:$(pwd)/rook.jar -DROOKOUT_TOKEN=[Your Rookout Token] -DROOKOUT_CONTROLLER_HOST="wss://your-controller-host"
using Rook;
Rook.RookOptions options = new Rook.RookOptions()
{
token = "[Your Rookout Token]",
labels = new Dictionary<string, string> { { "env", "dev" } },
host = "wss://your-controller-host"
};
Rook.API.Start(options);
// ...
const rookout = require('rookout')
rookout.start({
token: '[Your Rookout Token]',
labels: {
env: 'dev'
},
host: "wss://your-controller-host"
}).then(/*Start your application here*/)
import (
// ...
rookout "github.com/Rookout/GoSDK"
// ...
)
func main() {
rookout.Start(rookout.RookOptions{
Token: "[Your Rookout Token]",
Labels: map[string]string{"env": "dev"},
Host: "wss://your-controller-host",
})
// ...
}
import rook
rook.start(
token="[Your Rookout Token]",
labels={"env": "dev"},
host="wss://your-controller-host"
)
require "rookout"
::Rookout.start token: "[Your Rookout Token]", labels: {env: "dev"}, host: "wss://your-controller-host"
export ROOKOUT_CONTROLLER_HOST="wss://your-controller-host"
If you forget to set the Rookout controller host you will be unable to set breakpoints. You'll see the following error: "Agent attempted connection to SaaS."
Targets
In the hybrid architecture processing and transmitting data to external targets is carried out by the controller.
Deployment
Deploy using common infrastructure as code providers: