Feature List:
Layer-7 Proxy:HTTP requests can be load balanced to different tasks base on Round Robin policy, with more coming soon.
Built-in DNS Proxy:each tasks and apps can be uniquely identify by a SRV record, with which micro-services can be easily addressed within the cluster, and can also be resolved seamlessly from outside of the cluster if have DNS setup properly.
Support application with Replicates mode and Fixed mode: replicates mode application tends to be easily scale up/scale down, fixed mode applications are those supposed not to change frequently.
One IP per container :unique IP address can be assign to container holding task, with enable easy access for app with fixed mode.
Resources Prefetching:user can define arbitrary resources to be downloaded into sandbox before any task launched.
Port Naming: any port supposed to be exposed can be aliased by a readable name.
CLI:Command Line Tool help easily access to Swan's features.
Heath check:help easily access to Mesos's internal health check feature, user can define TCP, HTTP or even CMD type of checks with JSON schema.
HA: with adoption of Raft consensus algorithm, and modification on Swan internal state machine can be replicates to followers for backup purpose, there would be no data loss if up to N/2+1 nodes alive.
Flexible Task Scheduling Policy:task can be dispatch to reserved Mesos agent if policy setup properly.
Swan is a mesos scheduling framework written in golang based on mesos new HTTP API.
you can use swan to deployment application on mesos cluster, and manage the entire lifecycle of the application. you can do rolling-update with new version, you can scale application, and you can do health check for your applications and auto failover when applications or services are not available.
Swan is maintained by dataman-cloud, and licensed under the Apache License, Version 2.0.
Fork me on GitHub! https://github.com/Dataman-Cloud/swan
