Skip to content

You open the ticket. Elliot opens the pull request.

Elliot is an AI DevOps agent by Dcode. Give it a ticket in Jira, monday.com or GitHub, from a full AWS landing zone to a 2 a.m. alarm. It reads your code and your cloud, does the work and opens a pull request. Your team merges it, or Elliot does in Autonomous mode.

Assign tickets to Elliot in the tools your team already uses

  • Jira
  • monday.com
  • GitHub
  • GitLabComing soon

No ticket? Your team can also email elliot@elliot.services or message Elliot in Slack.

How it works

Elliot works like a DevOps engineer on your team. You give it a ticket, it does the work, and you stay the one who decides.

  1. Open a ticket for Elliot

    Write what you need in Jira, monday.com or GitHub, like you would for a teammate. Then assign the ticket to Elliot, or add the Elliot label.

  2. Elliot reads your code and your cloud

    It clones your infrastructure repo and looks at your AWS account with read-only access. Then it decides: is this a change to make, or a problem to investigate?

  3. Elliot opens a pull request

    It makes the change on a new branch, checks it and opens a pull request, then comments on the ticket. You review and merge, or let Elliot merge in Autonomous mode.

From migration plan to production

A data center move is a project, not a ticket. Elliot plans it, Dcode helps you fund it, and Elliot builds it, one pull request at a time.

  1. You

    Step 1: Ask for a migration plan

    Upload the RVTools export of your VMware servers and give Elliot a ticket: plan our move to AWS.

    MIG-7

    Plan our move from the Frankfurt data center to AWS

    rvtools-export.xlsx
  2. Elliot

    Step 2: Get the plan, the cost and the SOW

    Elliot decides what happens to each server, groups them into waves, prices the AWS run cost and lists the risks. Dcode turns the plan into a SOW with you.

    Migration plan

    • A path for every server: rehost, replatform, retire
    • Waves 0 to 5, foundation first
    • AWS run cost, with Savings Plans options
    • Risks and missing data
    • SOW, written with Dcode
  3. Dcode team

    Step 3: Dcode applies for AWS funding

    Dcode is an authorized AWS reseller. We use the SOW to apply for AWS funding programs like MAP, and work with your AWS account team. Credits land in your account as the project meets its milestones.

    AWS MAP

    Migration Acceleration Program

    Credits from $25K to $250K+25% of eligible spend, if you qualify

    AWS funding with Dcode
  4. Elliot

    Step 4: Elliot builds it, phase by phase

    Give Elliot the SOW. It builds each phase as pull requests: the landing zone first, then the AWS targets for every wave. You review each one.

    • Wave 0: landing zone, network, VPN #101Merged
    • Wave 1: dev and test #118Merged
    • Wave 2: internal apps #131Open

What you can ask Elliot

From a new AWS foundation to the small ticket nobody has time for this week.

Big projects

  • A full AWS landing zone

    Accounts, a private VPC, EKS, Client VPN with single sign-on, and the security baseline. Elliot builds it with Dcode Autopilot, our own Terraform module library, and runs terraform validate, tflint and the Autopilot checks before every pull request.

    Example ticket: “Build our AWS landing zone: EKS in a private VPC, reached only over Client VPN”

  • A migration plan, its cost and the SOW

    Upload the RVTools export of your VMware servers. Elliot picks a path for every server, plans the waves, prices the AWS run cost and lists the risks. Dcode turns the plan into a SOW and uses it to apply for AWS funding.

    Example ticket: “Plan our move from the data center to AWS”

    See the whole project
  • Kubernetes in your own data center

    Install and upgrade kubeadm, RKE2 and k3s clusters with Ansible, as pull requests in your Ansible repo. Before an upgrade, Elliot checks etcd, versions and the drain order. It finds certificates before they expire and opens the renewal. It reaches your servers through a small runner in your network, or through your AWX.

    Example ticket: “Our cluster certificates expire next month. Renew them.”

Everyday work

  • EKS upgrades

    Elliot checks if a cluster is ready and plans the upgrade one version at a time. The pull request is the runbook. After you apply it, Elliot checks the cluster.

    Example ticket: “Upgrade the staging EKS cluster to the next version”

  • Network and access errors

    When one service can’t reach another, or a role gets AccessDenied: security groups, routes, DNS, flow logs, CloudTrail, SCPs and IAM policy simulation.

    Example ticket: “The CI role gets AccessDenied when it pushes to ECR”

  • Terraform, CI/CD and Helm

    Everyday changes in the style your repos already use, checked with terraform validate, tflint, actionlint and helm lint.

    Example ticket: “Add a versioned S3 bucket for the reports service”

When an alarm fires at 2 a.m.

Elliot starts the investigation the moment the alarm fires. When your on-call engineer opens the alert, the root cause and the fix are already in the thread.

  • Alarms from your AWS account. CloudWatch alarms, GuardDuty findings and AWS Health events reach Elliot. Your team gets them in Slack or by email.
  • A real first investigation. Elliot checks what changed, reads metrics and logs, and can run AWS’s own diagnostic runbooks, which diagnose but never fix.
  • The fix as a pull request. In Autonomous mode, Elliot can also merge alert fixes in non-production repos.

Investigating alerts is off until you turn it on, and you set a daily limit.

#prod-alerts
02:13

critical checkout-api: 5xx errors above 5%

CloudWatch alarm in prod, eu-central-1

Elliot is investigating…

02:17

Elliot

Root cause: the 02:05 deploy (#884) moved the load balancer health check to /healthz, but the app answers on /health.

Evidence: all 6 targets fail the health check with 404. AWS’s diagnostic runbook shows the load balancer controller itself is fine.

Fix: set the path back. Pull request #527 is ready for review. Confidence: high.

checkout-api: set the health check path back to /health #527Open

You stay in control

Elliot can read a lot and change very little. You decide how far it goes, one repo at a time.

Review mode

Default

Elliot does the work. Your team decides what ships.

  1. Elliot opens a pull request
  2. Your CI runs its checks
  3. Your team reviews and merges
  4. Your CI or GitOps deploys

Every repo starts here. Elliot never merges its own pull requests in this mode.

Autonomous mode

You turn it on per repo

Elliot ships the change end to end, inside limits you set.

  1. Elliot opens a pull request
  2. Your CI and Elliot’s gates pass: no deletes, no wider access
  3. Elliot merges it
  4. Elliot watches the deploy and opens a revert if it fails

Production needs one human approval, unless an owner turns that off for the repo. After a failed deploy, the repo pauses until a person looks. Elliot can also review your team’s pull requests.

  • Every change is a pull request

    Changes reach your code only as pull requests that pass your CI, in Autonomous mode too. Elliot never runs terraform apply and never reads your Terraform state.

  • No write access to your cloud

    Elliot’s role in your AWS account can read, but it can’t change resources, read secrets or decrypt data. Your CI deploys, never Elliot.

  • Your data center stays closed

    For your own servers, a small runner inside your network connects out to Elliot. No inbound ports. It runs only read-only checks.

  • You choose the repos

    Elliot can open pull requests only in the repos you select. Autonomous mode is off until you turn it on for a repo.

  • One ticket, one sandbox

    Each ticket runs in its own short-lived, isolated runner, with short-lived credentials for that job only.

  • Logged, and easy to stop

    Every action is in the audit log. Un-assign Elliot and the job stops. Anyone on your team can pause Autonomous mode.

Give Elliot its first ticket

Talk to Dcode to set up Elliot for your team, or to plan a bigger project together. Already have an account? Sign in to connect your tools, repos and AWS accounts.