mrbitsdcf / opta

Infrastructure-as-code where you work with high-level constructs instead of getting lost in low level cloud configuration

Home Page:https://www.runx.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Supercharge DevOps on any cloud

Current Release Tests License Commit Activity Security

Documentation | Slack Community | Website | Email: info@runx.dev

What is Opta?

Opta is a new kind of Infrastructure-As-Code framework where you work with high-level constructs instead of getting lost in low level cloud configuration. Imagine just being able to say that you want an autoscaling docker container that talks to a RDS database - instead of figuring out the details of VPC, IAM, Kubernetes, Elastic Load Balancing etc -- that's what Opta does!

Who is it for?

Opta is designed for folks who are not Infrastructure or Devops experts but still want to build amazing, scalable, secure Infra in the cloud. Majority of Opta's users are early stage startups who use it for their dev/staging/production environments.

If you'd like to try it out or have any questions - feel free to join our Slack!

Try out Opta

What you get with Opta


Demo Video

Try out Opta

To use Opta, you first need to create some simple yaml configuration files that describe your needs. You can use our magical UI to help generate these files or do it manually (described below).

Four Step Quick Start (<30min)

  1. Install the opta CLI

/bin/bash -c "$(curl -fsSL https://docs.opta.dev/install.sh)"

  1. Create an environment

Before you can deploy your app, you need to first create an environment (like staging, prod etc.) This will set up the base infrastructure (like network and cluster) that will be the foundation for your app.

Note that it costs around 5$ per day to run this on AWS. So make sure to destroy it after you're done (opta has a destroy command so it should be easy :))!

Create this file and name it staging.yml

name: staging
org_name: <something unique>
providers:
  aws:
    region: us-east-1
    account_id: XXXX
modules:
  - type: base
  - type: k8s-cluster
  - type: k8s-base
  1. Create the application/service

In this example we are using the popular httbin container as our application

Create this file and name it opta.yml:

name: hello-world
environments:
  - name: staging
    path: "staging.yml" # Note that this is the file we created in step 2
modules:
  - name: app
    type: k8s-service
    port:
      http: 80
    image: docker.io/kennethreitz/httpbin:latest
    healthcheck_path: "/get"
  1. Deploy

Once the files are created, just run opta apply and that's all! Now you have a containerized application running on Kubernetes in a production ready Architecture (described below).

Run opta output and note down load_balancer_raw_dns. Now you can:

  • Access your service at http://<ip-or-dns>/
  • SSH into the container by running opta shell
  • See logs by running opta logs

Cleanup

Once you’re finished playing around with this example, you may clean up by running opta destroy --config staging.yml.

Check out more examples

What you get with Opta

  • Production ready Architecture
  • Continuous Deployment for containerized workloads
  • Hardened network and security configurations
  • Support for multiple environments (like Dev/QA/Staging/Prod)
  • Integrations with observability tools (like Datadog/LogDNA/Prometheus/SumoLogic)
  • Support for non-kubernetes resources like RDS, Cloud SQL, DocumentDB etc
  • Built-in auto-scaling and high availability (HA)
  • Support for spot instances

Development

Dev guide

About

Infrastructure-as-code where you work with high-level constructs instead of getting lost in low level cloud configuration

https://www.runx.dev

License:Apache License 2.0


Languages

Language:Python 75.7%Language:HCL 22.0%Language:Smarty 1.6%Language:Shell 0.5%Language:Open Policy Agent 0.1%Language:Makefile 0.1%