@galaxyops: Empowering Efficient Project Management and Accelerated Domain-Driven DevOps on AWS.
Running multiple applications on AWS without a clear architectural pattern can lead to chaos and uncertainty. @galaxyops provides a cloud architecture that emphasizes modern DevOps best practices on AWS. It establishes a solid foundation for enterprise software, ensuring scalability and maintainability across projects.
-
Simple Setup: Turn-key deployment on bare metal systems, specially designed for compatibility with MacOS silicon environments and without a Docker dependency.
-
Monorepo Architecture: Centralizes development, streamlining code sharing, versioning, and dependency management with tools like Nx and PNPM.
-
CI/CD Pipeline: Autonomous pipeline for deploying auditable artifacts to AWS using IaC, ensuring consistency and scalability.
-
Universal Language: Leveraging TypeScript for microservices, enhancing performance, readability, and maintenance. Other languages can be used for specific tasks, such as Python for data science.
-
Event-Driven Microservices: Fault-tolerant communication via queues, with event data archived in a data lake for analytics.
-
Schema Contracts: Automatic mocking and validation for seamless inter-service communication and data integrity.
-
Ephemeral Environments: Provisioning of TLS certificates and email services using AWS Org Formation.
-
User Authentication: Integration of Cognito for user registration and authentication.
-
SPA Frontend with BFF: Single-page application with frontend hosted on S3 and deployed via CloudFront, with middleware for backend operations.
Install the package manager, jq, build all packages, and hydrate dotenv files:
# Enable PNPM package manager
corepack enable pnpm
# Install jq for lambda layer builder on MacOS
brew install jq
# Install all dependencies
pnpm install
# Hydrate environment files
pnpm nx run galaxyops:hydrate
Run any script using Nx by specifying the package name followed by the script name, e.g.
pnpm nx run admin-client:dev
pnpm update # Update workspace files.
pnpm add @a/b # Add a new package to the app.
pnpm up -r --workspace --interactive # Make package versions consistent.
pnpm nx run-many -t [command] --all # Run a command in bulk.
pnpm nx run package:[command] # Run a command in the current package.
pnpm nx run package:build # Build projects.
pnpm nx run package:watch # Watch for changes and compile.
pnpm nx run package:lint # Perform ESLint static analysis.
pnpm nx run package:test # Test a package.
pnpm nx run package:test:cov # Run tests with coverage.
pnpm nx run package:docs # Generate documentation from code.
pnpm nx run package:cdk:bootstrap # Bootstrap the CDK project.
pnpm nx run package:cdk:synth # Show synthesized CloudFormation template.
pnpm nx run package:cdk:diff # Compare deployed stack with current state.
pnpm nx run package:cdk:deploy # Deploy apps using AWS CDK.
pnpm nx run package:cdk deploy --hotswap # Speed up dev deployment.
pnpm nx run package:cdk watch # hot swap on changes.
pnpm nx run package:cdk doctor # Check CDK project for issues.
pnpm nx release # Create a release for all package changes.
pnpm nx dep-graph # Visualize dependencies.
These steps are required once by the platform team to initialize the IaaS.
-
Setup AWS Org Formation.
-
Set an environmental variable in the shell configuration file to establish a default AWS CLI profile for seamless authentication and resource access.
echo 'export AWS_PROFILE=DeveloperSandbox' >> ~/.zshrc
-
Login via SSO and bootstrap deployments. Deploy platform, services, and then clients in that order.
aws configure sso pnpm nx run galaxyops:cdk:bootstrap:sandbox pnpm nx run galaxyops:cdk:deploy:sandbox
-
Login via SSO to tools account and then deploy tools.
pnpm nx run galaxyops:cdk:bootstrap:tools-account pnpm nx run galaxyops:cdk:deploy:tools-account
Comprehensive documentation is essential for understanding and maintaining this project. Each project and folder structure should feature a README.md files containing documentation following RFC 2119 standards.
Third Party Documentation
Pull requests and bug reports are welcome on GitHub at https://github.com/hxtree/galaxyops. Please follow the code of conduct when contributing.
All packages available NPM are MIT licensed.