# Environment-as-a-Service (EaaS)

Provide developers, QA, cloud operations, and all cloud users with self-service access to environments using proven templates with guardrails included.

## Why Environment-as-a-Service?

Every modern application needs an environment to run, so why is the process of provisioning environments so complicated? Enterprises that streamline the process of setting up environments by providing self-service for developer and cloud operation teams gain significant benefits.

### Increase Developer Productivity

EaaS empowers developers to deploy the environments they need, when they need them.

### Reduce Overhead

Reusable environment templates reduce the need for platform and cloud teams to provision environments repeatedly.

### Simplify Maintenance

Platform teams now update and maintain configurations via a set of reusable templates.

## Unique Rafay Capabilities for Environment-as-a-Service

Dozens of enterprise platform teams leverage these unique features to rapidly build Environment-as-a-Service automation with Rafay and delight their developers.

### Environment Lifecycle Management

#### Hybrid and multi-cloud support

Support for running environments across any cloud platforms the organization uses, including on-premise / private clouds.

#### Infrastructure as Code (IaC)

Support for Terraform or GitOps first approaches, including private Git repos and Crossplane.

#### Automated environment upgrades

Centrally orchestrate environment updates en-masse or in a phased manner (staged roll out), or safely delegate to the downstream teams.

#### Centralized environment visibility

Use centralized dashboards across accounts and clouds to track environment use, minimizing waste.

#### Integration with IaC tooling (TFC/TFE)

Turnkey integration with existing customer tools (Terraform Cloud, Terraform Enterprise) for secure storage of state files, agents, etc.

#### Centralized audit logging and export

Log “who did what?” (across platform teams and downstream users), and export audits to an external system to track compliance.

#### Out of the box governance

Use native/first class guardrails (access, policy enforcement, add-on management, cluster lifecycle management, etc.).

#### Seamless onboarding experience

Automate the E2E provisioning workflow for a new team, including creating an account, credentials, VPC, security groups, and more.

#### Configurable pre and post hooks

Automate actions to run either before or after environment provisioning or updates, such as TF code scans or cost estimation.

### Governance

#### Optimization of cloud costs

Enforce policies such as scheduled environment creation, or automatic deprovisioning after TTL expiration.

#### Drift detection and health assessment

Ability to scan and proactively flag environments that have drifted from the specified TF configuration.

#### Identification of unused environments

Ability to destroy/deprovision unused environments to reduce cloud sprawl and spend.

### Developer Self-Service

#### Flexible interface support

Ability to consume the platform through the preferred interface: UI, Backstage, GitOps, or CMDBs (e.g., ServiceNow).

#### Simple process to request environments

No time-consuming ticket driven process where the Platform team has to manually provision clusters.

#### Visualization of resources

Ability for end users to quickly look at resources in the environments and perform operations via the UI. This is especially useful for non-savvy users.

#### Visibility into environment updates

Which environments are running? Which environments have been shut down because of a configured policy (e.g., TTL, Schedule, etc.).

#### Streamlined app deployment

“Substitution variables” leverage o/p parameters of an environment resource to be used as i/p variables to the application being deployed.

### Multi-Tenancy

#### Central platform supporting multiple teams

Enforce network policies so that namespaces belonging to different teams cannot communicate with each other.

#### Version controlled artifacts

Implement RBAC at scale with your Identity Provider, without implementing expensive solutions (bastion, VPN, etc.) so users access only their namespaces.

#### Curated list of templates

Centrally define templates and share them selectively with downstream users (Developers, SREs) in a consistent manner.

#### Support for template “overrides”

Permit end users to override environment template configurations selectively, as deemed permissible by the platform team.

### Deployment Features

#### SaaS and self-hosted

Self-hosted air-gapped option may be necessary for highly regulated industries.

## Templates Coming Soon

Downloadable templates are coming soon. So, to get started providing self-service access to cloud environments in your enterprise, talk to us about one of the templates below.

### Stateless, Springboot (Java) Application Env

Template for stateless, SpringBoot (Java) apps with Postgres-RDS

### Stateless, Django (Python) Application Env

Template for stateless, Django (Python) apps with Postgres-RDS

### Stateless, NodeJS Application Env

Template for stateless, Node (JavaScript) apps with Postgres-RDS

### Stateless, GoLang Application Env

Template for stateless, GoLang apps with Postgres-RDS

### Stateful, Springboot (Java) Application Env

Template for stateful SpringBoot (Java) apps with MongoDB in Kubernetes

### Multi-tenant ArgoCD

Template for ArgoCD pipelines across multiple teams and clusters

## Whitepaper

### Hybrid Cloud Meets Kubernetes

Learn how to Streamline Kubernetes Ops in Hybrid Clouds with AWS & Rafay.
