Features

Learn how to configure Sedai's features and customize settings at the account, cluster, group, and resource level.

To modify feature settings, navigate to the Settings > Resources page.

Select a feature to learn more about how it works and how to configure it for different resource types:


Control

Sedai offers three different levels of control when configuring feature settings:

Configure settings for an account, cluster, group, or an individual resource

Configure features based on a resource type's context within an account, cluster or group

Choose to allow Sedai to act independently as it identifies issues or improvements (Autonomous Mode), or send recommendations asking for permission to act (Recommend Mode)

Topology

Each feature's settings can be controlled from an account, cluster or group perspective, as well as explicitly defined for individual resources.

By default, all resources within an account or Kubernetes cluster inherit its account or cluster settings. However, if resources within an account or Kubernetes cluster are part of a group, then those resources inherit their group's settings.

To modify:

  • Account/Kubernetes cluster: Under the Accounts tab, select an account or cluster to view its settings and all resources within it. Select the Edit Settings button to select a feature setting to modify.

  • Group: Under the Groups tab, select a group to view its settings and all resources in the group. Select the Edit Settings button to select a feature setting to modify.

  • Resource override: If you know the account/Kubernetes cluster or group a resource is part of, navigate to its respective page and search for the resource by name. Click on the resource to open its specific settings, and click override to modify (Note: all feature settings for the resource will be considered an override, even if you only want to modify one feature).

Group Settings

When you create a group, you can choose to enable settings for it (groups can otherwise be used as page filters β€” learn more about creating groups).

Depending on your groups' criteria, resources may be part of multiple groups. To avoid conflicting settings, you can rank groups in order of importance. Resources will inherit settings from their highest ranked group.

To enable settings for a group and to modify the group ranking, go to the Groups tab and select the Manage Groups button. This screen allows you to enable/disable settings for a group, move a group's position higher or lower in the order, and view the types of resources associated with each group.

Since groups can contain any type of resource, you will be prompted to define feature settings for each resource type when you enable settings for a group.

Resource Type

Feature settings are based off of a resource type's context (this is particularly relevant for Sedai's optimization feature).

When you view an account/Kubernetes cluster or group's settings, its resources are separated into tabs. Each tab lists all resources within the selection and summarizes their respective feature settings. Select the Edit Settings button to modify settings per feature for all corresponding resource types in the account or group.

Sedai currently supports the following resource types for its features:

Resource TypeOptimizationAvailabilityRelease IntelligenceSLOs

Container

AWS ECS/Fargate, Kubernetes stateless workloads

Serverless

AWS Lambda

Virtual Machines AWS EC2, Azure VM

Storage AWS EBS, AWS S3

Streaming GCP Dataflow

By default, Service Level Objectives (SLOs) are enabled for resources that have Release Intelligence enabled.

Mode

Sedai offers a crawl-walk-run implementation to help your team become comfortable with an autonomous platform and try features at your own pace.

To leverage autonomous capabilities, you first need to provide external read-write access for Sedai to make changes on your behalf. After granting access you additionally need to configure permissions within Sedai to allow it to execute actions on your behalf.

You can choose to run Sedai's features in the following modes:

  • Autonomous Mode: If Sedai detects issues/opportunities, it will determine appropriate changes and execute them. It's important to note that Sedai will only act if the system is confident it can execute operations without causing harm to your resources; Sedai will only proceed with an operation after it passes a rigorous set of safety checks.

  • Recommend Mode: If Sedai detects issues/opportunities, it will generate a recommendation for you to review. If you have set up read-write access, you can optionally approve the changes, and Sedai will execute them on your behalf.

View the feature pages for additional details about how each mode works:

pageOptimizationpageAvailabilitypageRelease Intelligence

If you don't want to use full autonomous capabilities at first, we still recommend connecting accounts/Kubernetes clusters with read-write access so you can try out autonomous executions through triggering actions or approving recommendations. If you start with read-only access, you will only be able to view Sedai's recommendations and will have to manually apply changes. View integration details for more on Sedai's read-write access.


Compute Actions

Sedai supports specific actions for container-based resources and virtual machines. In addition to enabling/disabling actions, you can also customize operation boundaries.

Actions can be enabled/disabled and modified at the account, group, or resource level. To edit, click the Edit Settings button for an account/cluster or group, or select a resource to open the side drawer. Underneath the features section, you will see an Actions box.

Containers

Default settings (noted in green or orange below) apply to newly added accounts/Kubernetes clusters.

AWS ECS (including Fargate and EC2-backed services)

  • Vertical Scaling (Optimization & Availability): Dynamically adjusts container allocations for CPU and memory based on service needs. If enabled, you can optionally define a minimum CPU and memory for Sedai to adhere to when reallocating configurations. Enabled by default

  • Horizontal Scaling (Optimization only): Dynamically adjusts the number of running containers to efficiently handle varying workloads. If enabled, you can optionally define a minimum and maximum replica count, as well as the replica increment for Sedai to adhere to when generating optimal configurations. Enabled by default

  • Auto Scaling (Optimization & Availability): Configures AWS' Application Auto Scaling to automatically increase or decrease a service's desired task count. Disabled by default

Additional AWS ECS settings

  • Pre-production/Production: Sedai's autonomous workflow is safety-centric; however, this cautious approach can unnecessarily delay autonomous actions on less risky pre-production resources. By default, Sedai assumes all ECS services are production resources. If you want to expedite results, you can classify resources as pre-production to safely accelerate autonomous actions. This classification can be done at the account, group, or individual resource level. Production enabled by default

  • Autonomous Action without Traffic: Sedai will only act if it has high confidence based on metric analysis. Some services may not have sufficient data to trigger Sedai's decision engine. If enabled, Sedai will pursue autonomous actions for services that have low or missing traffic, latency, or error metrics. Disabled by default

Kubernetes workloads

  • Vertical Scaling (Optimization & Availability): Increases or decreases CPU or memory for a given pod to manage traffic.

  • Horizontal Scaling (Optimization only): Increases or decreases the replica count of a given pod within a deployment to manage traffic.

Virtual Machines

Sedai currently supports the following actions for AWS EC2 and Azure VMs:

  • Resize

  • Rolling reboot

VM actions can only be customized at the account or group level.

While VM actions cannot be disabled, you can choose to modify an action. To edit, click the Edit Settings button for an account/Kubernetes cluster or group to open the side drawer. Underneath the features section, you will see an Actions box.

Each action includes five steps that can optionally be customized. You can also choose to disable a step with the exception of Step 3 (Execute).

  1. Safety Checks: Assesses whether the proposed action can be safely executed without compromising the stability, data integrity, or security of a VM.

  2. Pre-Action: Prepares a VM for changes by creating snapshots, draining traffic, or detaching load balancers.

  3. Execute: Based on analysis, applies new configuration (changes such as adjusting CPU, memory, or other relevant parameters).

  4. Post-Action: Prepares VM to restore traffic by reattaching load balancers that were detached in Step 2.

  5. Final Validation: Verifies any executed configuration changes meet intended results.

Custom operations and status checks

You can customize the steps in supported VM actions by connecting endpoints for operations and status checks.

To customize, click the Customize operations and status checks button found under the Actions section. In addition to providing an endpoint, you can optionally authenticate via OIDC Client Provider credentials (in which case you need to provide a Token URL, Client ID and Client Secret).

After connecting endpoints, click Save and navigate back to the list of supported VM actions. Select an action you want to customize, and expand step(s) that should reference your endpoints. By default, the toggle is set to Default (Sedai's standard); switch to Custom to use your endpoints instead.

Once you define custom endpoints for operations and status checks, you can apply them to any step for supported actions. You can also choose to disable steps.

You can update your endpoints or reset steps to the system default at any point.

Runbook Automation

Sedai also supports integration with Rundeck and Stackstorm to set up custom automated actions based on Sedai's activity.

Contact support@sedai.io for more details on how to integrate and configure within Sedai.


Cluster Constraints

Define parameters for node counts in Kubernetes clusters to tailor Sedai's configurations to your clusters' specific requirements. Navigate to Settings > Resources then select a Kubernetes cluster. Next, choose Edit Account Settings and click Cluster Constraints to optionally define the following parameters:

  • Minimum node count per node group: Specify the minimum number of nodes required for each node group within the cluster.

  • Maximum node count across all node groups: Define the maximum total number of nodes allowed across all node groups in the cluster.

Sedai will adhere to these constraints while optimizing your cluster. This ensures optimization opportunities align precisely with your specified requirements, enhancing efficiency, performance, and resource utilization without overstepping node count boundaries.

Last updated