-
Notifications
You must be signed in to change notification settings - Fork 19
Home
OpenStack Swift is an eventually consistent storage system designed to scale horizontally without any single point of failure. All objects are stored with multiple copies and are replicated across zones and regions making Swift withstand failures in storage and network hardware. Swift can be used as a stand-alone distributed storage system on top of Linux without the need of expensive hardware solutions like NAS or SAN. Because data is stored and served directly over HTTP makes Swift the ideal solution when dealing with applications running in Docker containers.
Lets assume you have an ASP.NET 5 MVC app that needs to manage documents, photos and video files uploaded by users. To achieve HA and scalability of your application you can host the app inside a container and lunch a minimum of two container with a load balancer in front. Now days this can be easily done with Docker and Nginx on Ubuntu Server. The same architecture can be applied to the storage with Swift, you'll need to set-up a minimum of two swift server each containing a proxy and a storage node, ideally these servers or VMs should be hosted in a different region/datacenter. Adding both swift proxy endpoints to SwfitClient config will ensure that any app instance will share the same storage and if a swift node becomes unreachable due to a restart or network failure all app instances will silently fail-over to the 2ed node.
Below is a schematic view of our HA setup: