Versioning and Scaling Strategies
This section covers effective strategies to deploy, update, and scale your make87 systems from prototype to production.
Deployment Strategies
Immutable Releases
make87 employs immutable container images, ensuring consistency and reproducibility:
- Each release has a semantic version (
MAJOR.MINOR.PATCH
). - New deployments create fresh containers from a locked version of the application image.
Rollbacks
- Instantly revert to any previously deployed version.
- Configuration and interface bindings persist automatically.
- Mounted volumes retain data; container-layer data is reset upon rollback.
Scaling Systems
make87 supports seamless scaling:
Adding Nodes
- Run the make87 agent on new hardware and register it to an existing system.
- The platform automatically extends networking and orchestration to new nodes.
Multi-Site Deployments
- Nodes and applications can operate across multiple geographic sites with no manual network setup.
- Secure overlay networking provides seamless communication.
Hybrid Cloud-Edge Setups
- Deploy compute-intensive applications in the cloud while running sensor or actuator applications at the edge.
- Applications interact transparently across environments as though on a single LAN.
Best Practices for Scaling
- Resource Management:
Specify precise resource constraints in
MAKE87.yml
to optimize performance. - Modular Design: Break applications into discrete services to facilitate independent scaling.
- Monitoring: Continuously monitor resource usage and performance for proactive scaling decisions.
Common Scaling Issues
- Resource Constraints: Adjust CPU and memory allocations based on observed usage metrics.
- Network Latency: Optimize application placement (edge vs. cloud) based on latency-sensitive workloads.