Synpse
🤖 Devices⚡ ApplicationsTry Synpse!
  • Intro to Synpse
  • Start here
    • Quick Start (web user)
    • Quick Start (CLI)
  • Agent
    • Install
      • Raspberry Pi
      • Linux (Docker)
      • MacOS
      • NVIDIA Jetson
      • Headless (Ubuntu)
      • BeagleBoard AI
      • Bulk Provisioning
      • 🪄Beta - Universal Synpse image
      • Containerized agent
      • Configuration
    • Uninstall
  • CLI
    • Install & Usage
  • synpse core
    • Devices
      • Device Provisioning
      • HTTPS Tunnel Access
      • SSH Access
      • Device Labels
      • Environment Variables
      • Proxy Application Ports
      • OS & Architectures
      • Operations
      • Device API
    • Applications
      • Deploy
      • Secrets
      • Environment variables
      • Substitution (dynamic templates)
      • Volumes
      • Networking
      • Scheduling
      • Registry authentication
      • Using GPUs
      • Tips & Tricks
      • Logs and status
      • Application specification (API reference)
    • Account
      • Personal Access Tokens
      • Service (Robot) Accounts
      • Teams (Share Devices)
    • Monitoring (beta)
      • Device Monitoring
      • Application Monitoring
  • Manage
    • Projects
    • Namespaces
    • Quotas
  • Examples
    • 🏠Home Automation
      • Gladys Assistant
      • Home Assistant
    • 🛠️Preparing OS Images
      • Synpse CLI Builder
      • Build a custom Raspberry Pi image
      • Cloud-init (advanced)
    • 💡Dynamic Templates
    • ☁️Public Cloud IoT
      • AWS IoT Core
      • Azure IoT Hub
      • GCP IoT Core
    • 🚀Device management
      • VNC to remove devices
      • Ansible
  • On-prem Deployment
    • 🐳Docker Compose
    • 🌤️kubernetes
  • Resources
    • API Documentation
    • Deployment patterns
    • Security & Tech
Powered by GitBook
On this page
  • Important concepts
  • Tips & Tricks

Was this helpful?

  1. synpse core
  2. Applications

Tips & Tricks

Generic tips and tricks to use the platform more effectively

Important concepts

  1. Synpse will always try to create and pull image first before stopping old application instance. This is done to prevent downtime when operating in the remote environments

  2. Synpse will always try to restart your application if failed. So there is possibility for constant restarts if OOM or application startup failures happens

  3. Synpse will cache images locally for 24h by default, so if image is not with the latest tag, updates in the remote registry might not be seen in the application. For updates assured use image versioning

Tips & Tricks

When scheduling and constructing your application minimal downtime might be needed. Consider these situations:

  1. Edge device is running in the remote location with very poor internet connectivity, where downloading updated image might take long time

  2. Image registry you are using is experiencing an outage and no new images can be pulled

Both of these scenarios could be reason for application downtime. For this we recommend tune application specification as per your requirements. Few recommendations bellow:

Image tag latest

Don't use image tag latest . Default runtime behavior is to always pull if latest is used. So if you are experiencing outage on registry (due to network or registry itself) you will fail to start.

Set ImagePullTimeout

Set imagePullTimeout in the Application spec (See Application specification) to be representative of how long you expect image pulls to take on. This might help you in certain conditions.

Set forcePull

If you want agent to always pull the container - set forcePull. This will instruct agent to always pull image, even when tag is not latest

PreviousUsing GPUsNextLogs and status

Last updated 3 years ago

Was this helpful?