As they say, it takes a village to code a successful software product. It also takes variety of cloud-native, open-source and commercial tools to cover various facets of the software product deployments. Facets.cloud ships with many such integrations of tools that you must already be using or planning to use.
In Facets, any Environment provisioning including the applications and infrastructure is backed by Terraform, but with an ingenious approach.A conventional terraform project may be visualized as a monolith, targeted at a specific cloud vendor. While using modules helps in encapsulating the implementation, what is lacking is a common pluggable interface. Facets.cloud Terraform modules follow a strict interface and hence can be easily "assembled" at run time. Modules also do not just provision the resources, but also present metadata about themselves to enable discovering and managing the resources from the central control plane.Another key aspect of an IaaC project is to have a collaboration workflow. Implementing unattended Terraform "applies" in itself, poses a challenge for Ops teams. Sparingly used Terraform projects are almost guaranteed to be a nightmare. Facets workflow facilitates collaboration over the stack Git repository and ensures regular terraform "applies" as the regular releases are no different.
Facets can be extended using "plugins" you write. A facets plugin is a bundle containing a Terraform module, some metadata and packaged alerts and dashboards. The Terraform module takes a standardized set of variables that describes the cluster and the stack definition as inputs. The Plugin metadata provides information such as the supported clouds and the JSON schema for any custom elements introduced in the stack. Facets performs the input validation as per the schema, invocation of the Terraform module, Terraform state management and deployment of dashboards and alerts. The plugins remain modular and hence are reusable across stacks that you manage with Facets. You can leverage plugins to provision resources unsupported in Facets or add new functionalities like a custom log collection mechanism.
Consult our experts for your DevOps needs by booking a demo