Onboarding as a New Developer
This guide is intended to help new developers get up to speed with the Cloud Posse reference architecture. It covers the basics of the architecture, how to get started, and how to contribute. We assume you have a basic understanding of Terraform and AWS. We assume you are joining a team that is already using the Cloud Posse reference architecture that's been fully implemented in your AWS organization.
This guide assumes you have the following:
- Terraform experience working with modules, providers, public registry, state backends, etc
- AWS experience including a firm understanding of general concepts, IAM, the web console, etc
- Existing AWS environment utilizing Cloud Posse's reference architecture
If this all sounds a little bit daunting, you may want to start by reviewing the Learning Resources.
If you're new to Terraform, we recommend starting with the Terraform documentation.
Quickstart
- Review the Toolchain
- AWS Access
- Setup Leapp
- Repository Access
- Configure Local Workstation
- Checkout Repository
- Build Geodesic
- Run the Container
- Test Atmos
Getting Started
1 Learn the Cloud Posse Toolchain
- Review the Introduction to Toolset video and become familiar with the concepts of Components, Stacks, and Stack Catalogs
- Review Geodesic docker toolbox and How to Customize the Geodesic Shell to your liking.
- Review atmos.tools
- Review our Conventions (there are a lot of them)
- Review the Architectural Design Records (ADRs) for your organization; these are typically in
docs/adr
within the infrastructure repository - Review Cloud Posse’s Architectural Design Records (ADRs), which may not be the same as your organization's practices
- Check out the Learning Resources that have been curated from our weekly office hours
2 Review our AWS Toolchain
- Review Leapp and How to Use Leapp to Authenticate with AWS
- Review why we Use Spacelift for GitOps with Terraform
3 Review our Kubernetes Toolchain (for EKS users)
4 How we Use Terraform (for developers)
- Review Terraform conventions used by Cloud Posse
- We store all the terraform states in S3. Make sure you understand the Structure of Terraform S3 State Backend Bucket
- Learn How to Use Terraform Remote State - we make it easy to read the state of any component in any account.
- Review Component Development.
- How to Switch Versions of Terraform
- How to Use Atmos with Existing Terraform
5 Try a Training Exercise
- Clone your company’s infrastructure repository
- Review the components in your company’s infrastructure repository (e.g.
infrastructure/components/terraform
) - Review the stack configurations in your company’s infrastructure repository (e.g.
infrastructure/stacks/
) - Review the catalog configurations in your company’s infrastructure repository (e.g.
infrastructure/stacks/catalog
)
Developer Workflow
- Start a new feature branch
- Develop and test your changes locally in the sandbox account
- Push your changes to the feature branch
- Create a pull request
- Review the pull request
- Wait for tests to pass (or fix them)
- Seek approval from the team
- Merge the pull request
- Deploy the changes