- Microservices: Java, .NET, Python
- Infrastructure: Vagrant: Create and configure lightweight, reproducible, and portable development environments.
- Logging & Log collection: ElasticSearch: A Distributed RESTful Search Engine, Logstash, Kibana
- Service Discovery: Consul
- Monitoring & Metrics: Prometheus
- Deployment: Docker, Mesos, and Marathon
- PubSub/Messanging: Redis: In-memory data structure store, used as database, cache and message broker.
- Vagrant script here
- Resource management
- Abstracts away individual machines
- Launches tasks: Long running, one off, schedule
- Maintain state about available resources (CPU/Memory) on each slave machine
- Master/slave architecture
- 3 Masters (connected by Zookeper for synchronizing statutes): 1 active & 2 standby
- 1 Master have 3 Slaves
- Frameworks: Scheduler & Executor
- Execute for long running tasks i.e.,Docker
- Private PaaS, HTTP API
- Marathon task:
- ID
- Docker image,
- Version,
- Health,
- Ports,
- Command/Args
- Constraints (rules to offers from mesos): UNIQUE, CLUSTER, LIKE, UNLIKE, GROUP_BY
- Upgrade API: PUT request with new Docker tag using Blue-Green Deployintel
- Paper - abstraction
- Paper - specification
- Video - SEC & CRDT
- Strong Eventual Consistency (SEC)
- Approaches: State & Operation based
- Database per service
- Eventual Consistency & BASE model
- NoSQL comparison
- Distributed key value store that provides a reliable way to store data across a cluster of machines.
- Automatically registers and deregisters services for any Docker container by inspecting containers as they come online
-
Features:
-
Service Discovery: Allow to discover api endpoint, services (databases etc) from DNS / HTTP client.
-
Health Checking
-
Key/Value Store: Hierarchical key/value store for any number of purposes
- Dynamic configuration
- Feature flagging
- Coordination
- Leader election
-
Multi Datacenter: Consul supports multiple datacenters out of the box. This means users of Consul do not have to worry about building additional layers of abstraction to grow to multiple regions.
-
-
Installation here
- Alternative: running on vagrantfile
-
Download here