Infrastructure-as-Code
Dalet Flex is a complex system running on a multitude of server instances as to provide both reliability, high-availability and scalability perspectives.
Amongst the various infrastructure services one may think of, Dalet Flex relies on:
- Computing Nodes (physical or virtual machines), running containerized services.
- Databases, holding key assets metadatas.
- Application Load-Balancers (L7), exposing backend services to end users in a secure (TLS) way.
- Storage endpoints (block-devices, network filesystems and/or S3-like object-services).
- Network and security endpoints (subnets, L3 firewalls, optional L7 Web Application Firewalls, access policies ...)
As for application, deployment and maintenance of such a complex infrastructure can be cost and time expensive and prone to human errors. As much as can be, Dalet always recommend usage of Infrastructure-as-Code (IaC) principles over manual resource management. Infrastructure resources are vital to system's behavior and managing them the same way one would operate on software makes perfect sense.
Dalet chose Terraform as its reference implementation for IaC. Terraform is industry-standard and allows for simple, yet exhaustive and durable description and of infrastructure resources and helps create, update (or delete) those over tools and API calls.
While not mandatory to use, Dalet heavily recommends Terraform usage whenever's possible. Flex comes with multiple Terraform module templates that can be used to easily deploy and manages infrastructure and simplifies initial deployment and time-to-market.
Each service operator however remains fully able to provision and maintain infrastructure on his own (manually or through other vendor-specific IaC tools). Keep in mind that while Dalet provides full support coverage on reference Terraform Flex modules, use of alternate means remains unsupported (from Dalet perspective) and operator's responsibility.