All Projects → PRX → Infrastructure

PRX / Infrastructure

Licence: MIT license
Templates and assets used to launch and manage many aspects of PRX's applications and services

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
ruby
36898 projects - #4 most used programming language
HTML
75241 projects
shell
77523 projects
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Infrastructure

horusec-engine
Horusec analysis engine
Stars: ✭ 18 (-55%)
Mutual labels:  ci, cd
Ansible Role Awx
Ansible Role - AWX
Stars: ✭ 228 (+470%)
Mutual labels:  ci, cd
Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (+442.5%)
Mutual labels:  ci, cd
github-task-manager
receive github hook, notify agent, receive task results, notify github
Stars: ✭ 13 (-67.5%)
Mutual labels:  ci, cd
Press
A continuous developement environment for Powershell Modules either via local development or leveraging GitHub and Github Actions
Stars: ✭ 21 (-47.5%)
Mutual labels:  ci, cd
Jenkins Rest
Java client, built on top of jclouds, for working with Jenkins REST API
Stars: ✭ 201 (+402.5%)
Mutual labels:  ci, cd
Flagsmith Api
Feature flagging and remote config service. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 223 (+457.5%)
Mutual labels:  ci, cd
Symfony Bootstrapped
⚡️ Symfony with tools
Stars: ✭ 160 (+300%)
Mutual labels:  ci, cd
Webhookd
A very simple webhook server launching shell scripts.
Stars: ✭ 250 (+525%)
Mutual labels:  ci, cd
Rok8s Scripts
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Stars: ✭ 248 (+520%)
Mutual labels:  ci, cd
Pypyr
pypyr task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.
Stars: ✭ 173 (+332.5%)
Mutual labels:  ci, cd
setup-graalvm
No description or website provided.
Stars: ✭ 63 (+57.5%)
Mutual labels:  ci, cd
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+325%)
Mutual labels:  ci, cd
Scripts
Scripts for use on Codeship Basic
Stars: ✭ 211 (+427.5%)
Mutual labels:  ci, cd
Solo Ci
A lightweight CI/CD tool powered by Golang
Stars: ✭ 168 (+320%)
Mutual labels:  ci, cd
Opensa
资产管理、资产采集、灰度发布、反向代理、批量任务、任务编排、计划任务、日志审计、权限管理、角色管理、部门管理、运维自动化
Stars: ✭ 220 (+450%)
Mutual labels:  ci, cd
Goploy
Deploy, CI/CD, Xterm, APP monitor, Crontab Manager.
Stars: ✭ 147 (+267.5%)
Mutual labels:  ci, cd
Action Docker Layer Caching
🐳 Enable Docker layer caching in GitHub Actions
Stars: ✭ 160 (+300%)
Mutual labels:  ci, cd
Opendevops
CODO是一款为用户提供企业多混合云、一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
Stars: ✭ 2,990 (+7375%)
Mutual labels:  ci, cd
cli-template
⚗ The most advanced CLI template on earth! Featuring automatic releases, website generation and a custom CI-System out of the box.
Stars: ✭ 43 (+7.5%)
Mutual labels:  ci, cd

Infrastructure

Templates and assets used to launch and manage many aspects of PRX's applications and services.

The Infrastructure project itself contains many independent or related-but-separate projects and assets. It is the home for any work that helps PRX adhere to an infrastructure as code philosophy. The goal is to describe the various AWS resources (and their associated configurations) needed to run a multitude of applications, servers, and services using code and templates.

All aspects of Infrastructure largely rely on AWS CloudFormation.

Applications, as well as the systems designed to test and deploy those applications, are described using CloudFormation templates. Collectively the systems used to facilitate application deployment and the infrastructure necessary to support them are referred to as CI/CD. There are a number of other aspects of our AWS architecture that do not fall under that umbrella but are also maintained as part of the Infrastructure project. This includes things like DNS records for hosted zones and CDN distributions.

CI/CD

Together, the CI and CD systems support continuous integration and continuous delivery and deployment. They are independent systems, but are designed to work in close coordination. CI/CD require a pre-existing storage and notification stack to exist before either can be launched from their templates.

There is a draw.io file (System Diagram.xml) that gives a good overview of how many of the main pieces of the CI and CD systems fit together.

Destruction

If you want to remove things created by Infrastructure for CI/CD, do so in this order:

  • Delete CI stack
  • Delete production root stack
  • Delete staging root stack
  • Delete CD stack
  • Delete Storage stack
  • Delete CD pipeline artifacts store bucket (cd-artifactstore-...)
  • Delete CD pipeline CloudTrail storage bucket (cd-CdPipelineS3TriggerTrailStore-...)
  • Delete CI CodeBuild source bucket (ci-cicodebuildsourcearchivebucket-...)
  • Delete the five buckets created by the Storage stack

Other Resources

Files found in cd/, ci/, secrets/, stacks/ and storage/ fall under the umbrella of CI/CD. Other types of resources, such as CloudFront distributions and DNS records, can also be found in this project.

  • dns/ – DNS hosted zones and records
  • cdn/ – CDN configurations (such as through Amazon CloudFront)
  • db/ – Databases and data stores (e.g., Amazon RDS and Amazon ElastiCache)
  • etc/ – Misc. standalone stacks
  • utility/ - Scripts and Lambda functions that help with other parts of Infrastructure

GitHub Actions

The .github/workflows directory contains files that describe automated processes that are run as GitHub Action under certain conditions (e.g., a specific file is updated). These workflows are meant to operate in coordination with various processes deployed into AWS. For example, the CI system is continuously deployed using a GitHub action. Some DNS hosted zones are also continuously deployed using GitHub actions.

Highly integrated processes and pipelines (for example, where CloudFormation, CodeBuild, CodePipeline, Lambda, etc are all working together) should not be created as GitHub Actions. GitHub Actions should only be used for very simple workflows, or in cases where there's no reasonable way to accomplish something using AWS primatives (such as deploying a CloudFormation stack that deploys another deployment process). A CodePipeline that would end up being a single action may be a good candidate for GitHub actions.

GitHub Actions also have greater visibility into commit-level events than CodePipeline source actions. If there is a pipeline that only needs to run when certain files or directories are altered, it can be beneficial to create a GitHub Action to start the execution of that pipeline using a detailed on condition, rather than having the pipeline start for all commits made to this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].