As one of the most common source code repositories for modern application development in the DevOps process, GitHub offers version control management and the ability to automate the build, test, and deployment pipeline during continuous integration and continuous delivery (CI/CD) processes. Here’s how it can help accelerate software development for you.
GitHub Enterprise Now Offers Self-deployed GHES with FlashBlade//S
Organizations can now configure GitHub Actions for self-deployed GitHub Enterprise Server (GHES) on premises with Pure Storage® FlashBlade//S™. It’s simpler, more secure, and less costly to develop and deliver code at scale.
Organizations who conduct software development, electronic device automation (EDA), and design and research can operate their development environments with a cloud-like operating model by only paying for the effective capacity used by on-premises self-hosted GitHub Enterprise and other integrated workflows. This model utilizes Evergreen//One™ and also includes cost savings from data reduction rates of 2:1 (minimum), depending on different data sets.
What Can GitHub Do?
GitHub is one of the most common source code repositories for modern application development in the DevOps process, supporting over 83 million users. GHES provides
- version control management
- the ability to automate the build, test, and deployment pipeline during continuous integration and continuous delivery (CI/CD) processes
- cloud and self-hosted on-premises offerings
What Can Self-hosted, On-premises GHES Do For You?
Using S3-compatible fast ObjectStore, businesses can develop and deploy applications on premises faster than in the cloud and in a secure, self-hosted, and managed on-premises environment. The on-premises implementation of GHES also allows developers to customize the CI/CD workflow and integrate with some of the common development tools used during the software development life cycle (SDLC).
GitHub Actions and Runners
GitHub Enterprise Server has two main components: actions and runners.
GitHub Actions is a reusable workflow automation tool for build, test, and deployment pipelines. Individual tasks called Actions can be written for custom workflows using templates in YAML with different software development tools. GitHub Actions require external storage for storing workflow templates, build artifacts, and GitHub Packages.
GitHub Runners are virtual machines (VMs) that run different jobs. Every job can have its own runner. A job consists of custom scripts that are executed when a GitHub Action triggers an event in the workflow run.
The self-hosted on-premises GHES can be installed on bare metal and virtual machines. Apart from the core filesystem and code repositories, GitHub Actions use AWS S3 or S3-compatible ObjectStores like Pure Storage FlashBlade//S for scalable capacity and performance. FlashBlade//S is a consolidated storage platform for both file and object workloads, delivering a simplified experience for infrastructure and data management.
Figure 1: Layout diagram of self-hosted on-premises GHES with FlashBlade//S.
The diagram above shows the external storage for GitHub Actions is configured on FlashBlade//S fast objectstore. S3 currently supports two forms of access to a bucket: path style and virtual host style. While the traditional way of accessing the buckets using path style is being deprecated, the S3-compatible bucket created on FlashBlade//S supports virtual host-style access. It’s pertinent to note that adequate configuration is required to support the virtual host style of addressing while creating the bucket on FlashBlade//S for GitHub Actions.
How to Configure the S3-compatible Bucket on FlashBlade//S
The following steps demonstrate the process for configuring the S3-compatible bucket on FlashBlade//S using the virtual host style of addressing for GitHub Actions.
- Create an account, a username, and a bucket on FlashBlade//S. Enable versioning on the new bucket called “Actions.”
- Identify the data VIP on the FlashBlade//S device that will be used to access the “Actions” bucket from GHES.
- Update the DNS with the FlashBlade//S data VIP fully qualified domain name (FQDN). In this example, “sn1-fb-g12-23-data1.puretec.purestorage.com” is the FQDN for the data VIP on FlashBlade//S identified to be used by GitHub Actions. Another entry for the virtual host style to access the bucket “Actions” has to be made in the DNS: “actions.sn1-fb-g12-23-data1.puretec.purestorage.com.”
- The FQDN of the data VIP on the FlashBlade//S device that will be used by GitHub Actions is added to the “Object Store Virtual Hosts” under “Settings.”
Setting up the S3-compatible bucket on FlashBlade//S for GitHub Actions is complete. The following test provided by GitHub indicates that FlashBlade//S is a validated storage platform for GitHub Actions.
Authenticating with existing credentials…
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
Running storage tests…
Unable to find image ‘ghcr.io/github-technology-partners/enterprise-storage-check/actions-console:ghes-3.4’ locally
Validating FlashBlade//S for GitHub Actions strengthens integration with other software development tools and workflows that run on premises.
FlashBlade//S: Best-in-class Data Storage for Unstructured Workloads
FlashBlade//S provides a best-in-class data storage platform designed to support data-heavy, unstructured workloads efficiently. It provides unequaled density, capacity, and performance for all of your application development and delivery processes. Additionally, FlashBlade//S provides cost-efficient data deduction to significantly reduce the amount of storage you need to consume and protects your data from ransomware during SDLC with SafeMode™ snapshots.