The Challenge: Hardware Diversity
Developing for multiple hardware platforms introduces critical challenges:
- Driver Complexity: Each hardware platform requires unique drivers and dependencies
- Environment Inconsistency: Maintaining identical development setups across platforms is difficult
- Extended Development Time: Hardware-specific configurations significantly delay product launches
- Testing Overhead: Validating across hardware variants consumes excessive resources
Container Technology as the Solution
Containerization directly addresses these hardware diversity challenges:
- Isolation: Containers encapsulate applications and their dependencies, eliminating conflicts with other system components
- Portability: Containerized applications run consistently across development, testing, and production environments
- Resource Efficiency: Containers share the host OS kernel, consuming fewer resources than virtual machines while maintaining isolation
- DevOps Enablement: Containers bridge the gap between development and operations with consistent environments
- Scalability: Container orchestration platforms enable easy management across diverse hardware
Advantech Container Catalog: The Enhanced Solution
While standard containerization offers benefits, Advantech's Container Catalog provides additional value:
- Hardware-Optimized Base Images: Pre-configured images specifically tuned for Advantech hardware platforms
- Integrated Drivers: Base images include necessary hardware drivers, eliminating complex setup procedures
- Validated Compatibility: Thoroughly tested environments ensure reliable operation across the hardware portfolio
- Development Acceleration: Ready-to-use images with pre-installed dependencies dramatically reduce time-to-market
- Simplified Operations: Standardized deployment approach streamlines management of heterogeneous device fleets
info
Advantech Container Catalog Website provides a variety of application containers. you can visit the website to find the corresponding application for your requirements
Architecture
Container Development Comparison
Traditional Development
Using traditional Docker development requires extensive setup:
FROM python:windowsservercore-1809
# 1. Environment Variables
ENV DEBIAN_FRONTEND=noninteractive
# 2. System Dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git wget ffmpeg libsm6 libxext6 \
# ... more dependencies
# 3. Python Packages
RUN pip3 install --no-cache-dir \
ultralytics torch torchvision opencv-python \
# ... more packages
# 4. Workspace Setup
RUN mkdir -p /workspace/{app,data,models,results,logs,configs}
# Application Setup
COPY app/ /workspace/app/
CMD ["python3", "app/main.py"]
WEDA Development
With WEDA Container, development is simplified:
FROM edgesync.azurecr.io/advantech/x-edgesync-base-container:1.0.0-Ubuntu20.04-x86
# Only application-specific setup needed
COPY app/ /workspace/app/
CMD ["python3", "app/main.py"]
Best Practice
Always use version tags when specifying base images to ensure reproducible builds.
caution
Remember to handle sensitive data and credentials appropriately in your Dockerfile.
Comparison Table
| Feature | Traditional Development | WEDA Development |
|---|---|---|
| Setup Time | Longer (requires full environment setup) | Quick (pre-configured) |
| Image Size | Larger (full dependencies) | Optimized |
| Customization | Full control | Limited to base image |
| Maintenance | Manual dependency updates | Automated updates |
Usage
Building the Container
docker build -t MyApp .
Running the Container
docker run -it --gpus all \
--env DISPLAY=$DISPLAY \
MyApp