Applications Architecture Overview
Widemesh is a simple but powerful platform for application deployments enabled by a few building blocks familiar to any developer. This page presents an overview of the platform architecture and how applications are structured and deployed.
Advanced Topic! This page covers technical details of the platform. You do not need to understand these details to use Widemesh effectively.
Introduction to Widemesh Apps
A Widemesh application (app for short) is a program or group of programs deployed with minimal effort and designed to serve end-users, 3rd-party systems, and the internet in general. Beyond this concept, there is no parity between what’s known as an app from the business point of view and how its deployed.
The platform disconnects the notion of the always-public, strict and limited “app” concept introduced by Heroku and instead provides more reusable building blocks combined with sane convention-over-configuration defaults, allow the deployment of modern software stacks ranging from simple monolithic services to microservices and distributed applications.
The design decisions behind Widemesh allow the platform to offer the following advantages:
- Widemesh can host apps in single or multiple geographical regions at the same time.
- Widemesh can host apps in a single o multiple cloud providers at the same time.
- Widemesh can switch the underlying Infrastructure-as-a-Service provider with zero effort.
- Widemesh can host the same app with different configurations depending on the region.
- Widemesh can host apps in one or multiple programming languages.
Widemesh apps comprise necessary components to effectively build, deploy, configure and monitor apps at scale:
Environment: An environment is a network-isolated group of stacks.
Stack: A stack synchronizes a version of the source code and configurations across all its services.
Service: A service specifies a command to launch the program produced by the source-code in the stack.
Instance: An instance provides compute, memory, an OS, and an ephemeral filesystem so the command specified in the service can work correctly.
Endpoints: An endpoint provides your environments a way to receive traffic and direct traffic from the internet to one or more services across stacks. By default, every environment gets an endpoint called Platform Alias Endpoint because it serves traffic from a subdomain under widemesh.dev as in https://example-app-staging.widemesh.dev.
Deployment: A deployment handles the process of analyzing the source code so it can be built and optimized with a compiled version of your stack plus all the dependencies required to run correctly. Provider: A provider holds your set of credentials for a cloud provider under your control and that Widemesh uses to provide the necessary infrastructure servers to run your app automatically.
Rack: A rack is a group of servers provisioned by Widemesh that serve one or more environments.