MachaOn
This project serves as the final step in creating deployable applications for the Mach-C ecosystem. The Mach-C MachaOn Project provides a structured framework for building and deploying Python-based applications in a variety of environments, including containers, serverful, and serverless infrastructures.
Designed to align with Clean Architecture principles, the MachaOn Project ensures modularity, scalability, and adaptability for final builds, making it the go-to solution for diverse deployment requirements.
Purpose of the Mach-C MachaOn Project
The goal of the Mach-C MachaOn Project is simple:
To provide the infrastructure and tooling necessary to take modular components (built with Mach-C libraries) and turn them into fully operational applications ready for production deployment.
Mach-C MachaOn is not limited to a single deployment pattern—it supports modern deployment styles across three key paradigms:
Each deployment style comes with pre-configured templates and tooling to simplify the process, accelerating the journey from development to production.
Key Deployment Styles Supported
1. Containers
Containerized builds for Docker and Kubernetes-based systems.
- The Container Builds in MachaOn are designed for environments such as Docker and Kubernetes.
- These builds allow you to package Mach-C applications with their dependencies into portable containers that run consistently across different environments.
2. Serverless
Lightweight, event-driven applications leveraging cloud platforms like AWS Lambda, Azure Functions, and Google Cloud Functions.
- Moving towards a modern approach, serverless builds enable lightweight, event-driven applications.
- These applications are designed to leverage pay-as-you-go cloud services, allowing developers to focus only on functionality while leaving infrastructure scalability to the cloud provider.
- Mach-C MachaOn provides predefined configurations for:
- AWS Lambda (using API Gateway, DynamoDB, and S3).
- Azure Functions and Google Cloud Functions for event-driven compute and stateless operations.
How Mach-C MachaOn Works
The Mach-C MachaOn Project operates by:
1. Pulling Components: Utilizing the modular libraries, services, and workflows built in Mach-C projects.
2. Combining Infrastructure: Adding deployment-specific configurations like Dockerfiles, Kubernetes manifests, server configurations, or serverless function definitions.
3. Creating Production Builds: Packaging the application for the target deployment platform.
For example:
- A containerized build will generate Docker images and Kubernetes manifests, ready for orchestration.
- A server-based build will generate service configurations for web and worker processes.
- A serverless build will create a complete deployment package for AWS Lambda or Azure Functions.
When to Use the Mach-C MachaOn Project
Use the Mach-C MachaOn Project whenever you’re ready to take your Mach-C library or application and deploy it to production. The project is ideal for developers and teams who want to:
- Quickly package applications for modern cloud environments.
- Support multiple deployment styles without duplicating effort.
- Adopt container-first principles while maintaining serverful and serverless compatibility.
- Easily integrate applications with infrastructure configurations, databases, and user authentication workflows.
Key Benefits
- Multi-Environment Builds: Flexibly supports containers, serverful, and serverless deployment styles to meet diverse business needs.
- Ease of Use: Provides pre-configured templates and tooling, ensuring minimal setup effort for developers.
- Modularity: Reuses modular components from Mach-C Core, reducing redundancy and improving maintainability.
- Cloud Agnostic Deployments: Allows deployment across major cloud providers (AWS, Azure, GCP) while also supporting on-premises and containerized infrastructure.
- Pre-Built Templates:Includes ready-to-use configurations for common services and workflows, such as logging, authentication, and database integrations.
Getting Started
-
Clone the Mach-C MachaOn Project:
bash $ git svn clone https://svn.code.sf.net/p/machc/svn/trunk/machaon $ cd machaon
-
Choose Your Deployment Style: Use one of the predefined project folders to get started:
-
For Containers: Refer to the
containers/
folder. -
For Serverless: Refer to the
serverless/
folder. -
Build Your Application: Use the provided tools and documentation for your chosen style.
-
Test and Deploy:
- Test your application using the built-in testing tools.
- Deploy to your preferred platform.