Skip to main content
Version: 1.0.0

Home

Explore our guides and examples to get the most out of Codiac

Codiac is the smartest way to deliver & run software on the cloud. Deploy your entire system of containers to any cluster on AWS or Azure with a drag drop.


Getting Started

Get started with our Quick Start Guide.


Security

Cloud provider credentials

  • Codiac runs locally on your dev machine or host agent. As such, it runs under the user's identity.
  • The CLI prompts you to login to your cloud provider, the token is securely stored in an encrypted key-ring on your local machine.
  • All tokens are managed securely in an encrypted key-ring.
  • User credentials are never stored
  • Unlike CI/CD and IaC where secrets and credentials can be misused and misplaced your tokens never leave your machine.

Key Terms and Definitions

  • What is Codiac?

    • Codiac is a no-code devops product to manage container creation, publication, and deployment to kubernetes. The management of cluster creation, ingress, routing, container configuration, memory/cpu/replica management, system version and inventory all handled no-code the cli or web application
  • Devops

    • DevOps is a set of practices that combines software development and IT operations. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.
  • Kubernetes

    • Kubernetes is an open-source container management platform that unifies a cluster of machines into a single pool of compute resources. With Kubernetes, you organize your applications in groups of containers, which it runs using the Docker engine, taking care of keeping your application running as you request.
  • Kubernetes provides the following:

    • Compute scheduling—It considers the resource needs of your containers, to find the right place to run them automatically
    • Self-healing—If a container crashes, a new one will be created to replace it.
    • Horizontal scaling—By observing CPU or custom metrics, Kubernetes can add and remove instances as needed.
    • Volume management—It manages the persistent storage used by your applications
    • Service discovery & load balancing—IP address, DNS, and multiple instances are load-balanced.
    • Automated rollouts & rollbacks–During updates, the health of your new instances are monitored, and if a failure occurs, it can roll back to the previous version automatically.
    • Secret & configuration management. It manages application configuration and secrets.
  • Kubernetes Container

    • With Kubernetes, you organize your applications in groups of containers, which it runs using the Docker engine, taking care of keeping your application running as you request.
  • Kubernetes Container Environment

    • The Kubernetes Container environment provides several important resources to Containers:

    • A filesystem, which is a combination of an image and one or more volumes.

    • Information about the Container itself.

    • Information about other objects in the cluster.

  • Environments

    • Clusters

      • Any environment with Codiac can span cross-cluster
      • Keeping evering Linux keeps the weird stuff to a minimum
    • Create

      • Web app top of main page
      • Apply wanted cluster(s) one or many
    • Configs

      • Envs
        • Smartflow containers use SFSEnvironment envar as switches for configs and vault
        • These are now managed in the container at built and in Codiac on deployment
      • Files
        • Import the file you want to manage via the cli:
        cod config:add 
        or via the web app
        • Override the values via the web app
      • Secrets
        • Smartflow manages these via its custom vault retrieval project in managed code
        • These vaults are already mapped with codiac if need in the future
        • All secrets with codiac land as secrets in the cluster
    • Ephemeral

      • Creating, destroying, and recreating environments with Codiac adds value to the SDLC and reduces cost.
      • Dynamic config at deployment (instead of at build) allows us to land and value for any config in a container file or environment variable.
      • Configuration on build, i.e. the container image gets exactly the values needed to run in that environment while built, is supported but should be avoided as they will get overwritten.
  • Cluster

    • A Kubernetes cluster is a set of nodes that run containerized applications. Containerizing applications packages an app with its dependences and some necessary services. They are more lightweight and flexible than virtual machines.
  • Docker

    • Docker was first released in 2013 and is responsible for revolutionizing container technology by providing a toolset to easily create container images of applications.
  • Docker images vs. Docker containers

    • A Docker image is a template; a Docker container is a running instance of that template.
  • Container (Docker)

    • A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.
  • CLI

    • CLI is a command line program that accepts text input to execute operating system functions.
  • API

    • API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other.
  • Ingres Controller

    • An Ingress controller is a specialized load balancer for Kubernetes (and other containerized) environments. Kubernetes is the de facto standard for managing containerized applications.
  • Secret Store

    • A secure location that houses an organizations sensitive data
    • Azure Key Vault & AWS Key Management Service are examples