These are terms associated (not strictly) with containers.
- Immutable: Immutable means that a container won't be modified during its life: no updates, no patches, no configuration changes. If there is a change container will be recreated.
- Ephemeral: Temporary i.e. The container can be stopped and destroyed, then rebuilt and replaced with an absolute minimum set up and configuration very quickly.
- Separation of Concerns: Container shouldn't contain unique data mixed in with application binaries.
- Persistence: Data present on writable-layer(container) gets wiped out when that container no longer exists.
- Stateless: A container or application that does not store state within itself. It relies on external services.
- Service Discovery: The process of automatically detecting and registering services within a network or infrastructure.
- Rolling Updates: A deployment strategy where new versions of containers or applications are gradually rolled out by replacing old instances with new ones avoiding downtime.
Infrastructure as Code
These terms are connected with IaC.
- Idempotent: Idempotent operation has no additional effect if it is called more than once with the same input parameters
- Declarative: Configuration explicitly specified in the code, uses scripting language like JSON, YAML, K8s files etc.
- Orchestration: Orchestration is coordinating with multiple systems & services. Orchestrations is a common term when working with microservices, containers & Kubernetes
- Configuration Drift: When provisioned infrastructure has unexpected configuration changes.
- Mutable Infrastructure: Mutable infrastructure can be updated, configured as per the requirement.
- Immutable Infrastructure: Immutable infrastructure is something that can never be modified once it is deployed.
- Cloud Agnostic: Cloud agnostic is a process where the company builds systems that aren't dependent on a specific provider
- Execution Plan: A manual review of what will add, change or destroy before you apply changes. Eg:
- GitOps: Git repositories are used as source of truth for infrastructure provisioning & configuration.
- Bastion Host: Typically a hardened server that is used to access private networks.
- Bare Metal: When the software/OS is running on the hardware itself rather than some virtualized layer.
- Chaos Engineering: Causing intentional failures in a controlled environment to test system resilience.
- Canary release: Gradual roll out of a new version of software to a small subset of users.