Prescient Designer

Deploying Containers vs. Deploying Flows: What's the trade-off? | Prescient

What's the difference between flows and containers? Why does it help accelerate edge application development?


What's the difference between flows and containers? Why does it help accelerate edge application development?

Container vs Flow-1

Today, the standard method of deploying applications to the edge is via containers. Prescient Designer, on the other hand, deploys flows instead of containers by default. How does this help users to accelerate edge application development?

Containers have become the standard method for software developers to build and deploy applications. As edge devices become more powerful, containers have also become the standard for edge application deployment. While containers offer many advantages, they are still relatively complex for a non-expert developer to use and manage.  

The application development cycle is as follows:

Initial Setup

  • The user installs edge container management software in her edge devices.
  • The user sets up the container build environment on her development computer.
  • The user creates the container build script (i.e. Dockerfile or equivalent) on her development computer.

Application development cycle

  • The user builds the software application.
  • The user checks in the software application.
  • The user builds the application container.
  • The user pushes the application container to a cloud container management software.
  • The user uses the cloud container management software to push the application container to her edge devices.

The container deployment process typically takes 15-30 minutes, even if the user makes only a minor change in her application. Updating a new container in the edge devices is computationally intensive, for which the process can take from minutes to tens of minutes on a resource-constrained edge device.  

Prescient Designer, on the other hand, pushes flows to the edge devices instead of containers. This is not to say that containers are not used on the edge devices. In fact, Prescient Edge (our edge software) is provided as a container. The application development cycle is as follows:

Initial Setup

  • The user installs Prescient edge in her edge devices.

Application development cycle

  • The user builds her distributed application flow inside Prescient Designer.
  • The user hits the “Deploy” button, and Prescient Designer pushes updated flows to her edge devices.

The flow deployment process typically takes 30 seconds or less. Don’t believe it? Watch our Youtube demo. There is also little computation required to update the new flow inside the edge device.

Why is the flow deployment process so efficient? This is because the flow is a simple JSON file that “represents” the application. It is not even the full application - the full application includes Prescient Edge, application packages, and the application flow. In most cases when a user modifies her application, only the flow changes, which is on the order of kilobytes, so it is very fast to deploy the new flow.

Containers are very heavy. This is because containers include the entire build environment, which includes all the software packages plus the application. So even when a user makes a minor change to the application, the entire container needs to be updated, which can be hundreds of Megabytes. Even a delta update, when available, can be many Megabytes.  

Therefore, deploying a flow in Prescient Designer uses much less data and is much faster. It also does not require users to know how to build and manage containers. For users who don’t want to deal with the complexity of working with containers, Prescient Designer is the clear choice. For users who are familiar with containers, can Prescient Designer be beneficial? The answer is, it depends.

Container development is a good choice if:

  • The user prefers to build full-code applications.
  • The user does not need to make frequent changes to the application.

Prescient Designer is a good choice if:

  • The user prefers to work in a simple low-code environment.
  • The user prefers to build and iterate fast.
  • The user’s application is more about working with data than working with business logic. You can read a detailed explanation in this blog article.  

 

Similar posts

Stay informed on IoT trends and insights

Discover the business and technology insights of IoT to accelerate the success of your digital transformation strategy. Sign up for our mailing list today.