phdata-logo Docs About phData

Cloud Foundation Capabilities #

phData’s Cloud Foundation simplifies the provisioning of cloud infrastructure following the best practices facilitating an automated infrastructure-as-code approach. This document provides an overview of Cloud Foundation capabilities.

phData Cloud Foundation #

Introduction #

Infrastructure as code describes your cloud infrastructure in code and allows to automate the process of provisioning infrastructure avoiding slow, manual and error prone processes.

On AWS, CloudFormation service provides Infrastructure as Code capabilities which allows us to define infrastructure as code in the form of templates, configuration files defined in JSON or YAML.

Template - A template is a declaration of the cloud infrastructure resources that make up an aws stack
Configuration - Configuration is the parameters required by a Templates
Stack - Template + Configuration is provisioned as a stack in aws

IaC solution without phData Cloud Foundation #

In a customer’s IaC(infrastructure-as-code) solution without phData’s Cloud Foundation tool, customers have to manage the below resources as part of the solution:

  1. Build and maintain infrastructure templates/patterns
  2. Build and maintain a mechanism to provision cloud infrastructure
  3. A solution to deploy cloud infrastructure in multiple aws regions/accounts
  4. A solution to terminate only a part of your cloud infrastructure OR a complete environment

IaC solution with phData Cloud Foundation #

When customers using phData’s Cloud Foundation:

  1. phData builds and maintains templates called “Gold Templates” These are ready-to-go infrastructure patterns that can be deployed successfully into production through JFrog’s Artifactory.
  2. You’ll have access to an auto-generated documentation site to view our continuously evolving templates and sample configurations.
  3. phData builds and maintains a CI/CD solution for you, which provides:
    • An automated mechanism to deploy infrastructure based on pull-requests.
    • A mechanism to deploy Infrastructure in multiple environments, such as TEST, UAT, PRODUCTION in a pipeline.
    • Solution to deploy cloud infrastructure in multiple aws regions/accounts
    • Solution to terminate only a part of your cloud infrastructure OR a complete environment

Pull-request-based infrastructure provisioning #

phData Cloud Foundation provisions infrastructure based on pull requests (or “merge requests” in some version control repositories) in a source code repository.

Concepts to know #

DEPLOY PLAN — Deploy Plan is an execution plan that elaborates the changes to be deployed in a cloud environment, which is then executed based on the current IaC in a source code repository. DEPLOY SUMMARY — Deploy Summary is an execution summary that elaborates the changes deployed in a cloud environment.

Cloud Foundation workflow based on pull requests #

  1. When a pull request is created by a developer or engineer, Cloud Foundation generates a DEPLOY PLAN detailing what the new code is going to do, which it then posts as a comment in the pull request.
  2. The Approvers/Reviewers review the DEPLOY PLAN in the pull request. If the request is approved and the source code is MERGED, the changes are then deployed in the cloud environment, and the DEPLOY SUMMARY (result of execution) is posted back to the pull request.
  3. All the required information related to the change is made available to the developers and approvers within the source code repository without a need to use external tools.
  4. In the case of multi-environment deployment, the same steps are repeated for each environment, adding an approval step for each environment.

Multi-environment deployments #

phData Cloud Foundation provides a mechanism to provision IaC automatically in multiple cloud environments. This is a common requirement for many data applications.

Multi-environment workflow diagram #

Multi-environment workflow #

This is a two environment example using Development DEV) and Production (PROD):

  1. Engineers/developers update the source code and create a pull request (PR).
  2. The DEPLOY PLAN is generated for the first environment (DEV) and posted to the PR.
  3. The approvers review the PR and DEPLOY PLAN, then approve the PR.
  4. When the PR is MERGED, Cloud Foundation deploys the infrastructure in DEV and generates DEPLOY SUMMARY for DEV, and then the DEPLOY PLAN for the next environment (PROD)
  5. Approvers review the DEPLOY SUMMARY for DEV and DEPLOY PLAN for PROD, and then approve the change for PROD.
  6. Cloud Foundation now deploys the change in PROD and posts the summary back to the PR.
  7. The same process is repeated for multiple environments. The manual approval can be added or skipped for any given environment.

Customization #

In addition to providing standard practices and supported tools for achieving automated infrastructure provisioning through Cloud Foundation, phData works with customers to deploy customizations to Cloud Foundation as needed, based on customer requirements.