The proposal period for 2022 internships is now closed
The proposal period for 2023 internships will open in November 2022
Find out about the HPCC Systems Summer Internship Program.
Project Description
The aims of this project include codifying build configurations and infrastructures for the various HPCC Systems Platform builds, plugins, and other components. This internship project is the first of its kind as we seek to move from a software-based build environment to infrastructure as code (IaC).
Currently, the HPCC Systems Platform builds are done on Jenkins through an automated process. While that is the way we have been building the platform and its components for a long time, it is no longer the ideal way in today’s innovative tech space. Some of the issues with such an environment are that configurations are not version controlled, hard to manage in numbers, not very consistent, and their lifetime does not exceed the lifetime of the server. What we hope to achieve with IaC is a version-controlled build system as code that offers a lifetime that exceeds the lifetime of the underlying infrastructures, improves consistency and stability, boosts productivity, minimizes user errors, while being cloud agnostic.
If you are interested in this project, please contact the mentor of this project.
Completion of this project involves:
Week 1 – onboarding / design
Week 2 – design / initial build images (Docker Images for each support Distro, I.e, Ubuntu, CentOS, Mac and Windows)
Week 3 – prototyping locally for baremetal platform builds
Week 4 – cmake/build optimizations based on week 3 input
Week 5 – plugin baremetal package builds
Week 6 – cmake/build optimizations based on week 5 input
Week 7 - setup matrix of builds in github actions
Week 8, 9, 10 – setup a jenkins x environment to test IaC flexibility in multiple cloud environments using helm/terraform
Week 11 – write ups documenting the BSaC, possible wiki entries
Week 12 - Demonstrate full build setup in github actions, azure, Jenkins
The role each of these resources plays in this project:
Docker | Image creation |
Bash | HPCC build configuration |
CMake | HPCC build configuration |
Git | Version control |
GitHub Action | Automation |
Helm | Kubernetes configuration |
Kubernetes | Container orchestration |
Azure/AKS | Infrastructure deployment |
AWS/EKS | Infrastructure deployment |
Jenkins X | Pipeline |
Terraform | Infrastructure management |
GitOps | Build configuration |
Mentor(s) | Backup Mentor(s): |
Skills needed |
|
Other resources |
|