Hook.io - Open source hosting platform for microservices.
Lattice - Open source project for
running containerized workloads on a cluster. Lattice bundles up http
load-balancing, a cluster scheduler, log aggregation/streaming and
health management into an easy-to-deploy and easy-to-use package.
Netflix OSS - Netflix open source software ecosystem.
Spring Cloud Netflix
- Provides Netflix OSS integrations for Spring Boot apps through
autoconfiguration and binding to the Spring Environment and other Spring
programming model idioms.
VAMP - Build, deploy and manage microservices with power and ease.
Runtimes
Akka - Toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
Baratine - Platform for building a network of loosely-coupled POJO microservices.
Erlang/OTP - Programming language used to build massively scalable soft real-time systems with requirements on high availability.
Finagle - Extensible RPC system for the JVM, used to construct high-concurrency servers.
Karyon - The nucleus or the base container for applications and services built using the NetflixOSS ecosystem.
QBit - Reactive programming library for building microservices.
Ratpack - Set of Java libraries
that facilitate fast, efficient, evolvable and well tested HTTP
applications. specific support for the Groovy language is provided.
Restlet - Helps Java developers build web APIs that follow the REST architecture style.
Spring Boot - Makes it easy to create stand-alone, production-grade Spring based applications.
Scala
Akka HTTP - Open source toolkit for building REST/HTTP-based integration layers on top of Scala and Akka (will replace Spray).
Colossus - I/O and microservice library for Scala.
Finatra - Fast, testable, Scala HTTP services built on Twitter-Server and Finagle.
Play - The high velocity web framework for Java and Scala.
Scalatra - Simple, accessible and free web micro-framework.
Skinny Micro - Micro-web framework to build servlet applications in Scala.
Spray - Open source toolkit for building REST/HTTP-based integration layers on top of Scala and Akka.
Node.js
Actionhero - Multi-transport Node.js API server with integrated cluster capabilities and delayed tasks.
Baucis - To build and maintain scalable HATEOAS/Level 3 REST APIs.
Express - Fast, unopinionated, minimalist web framework for Node.js
Graft - Full-stack javascript through microservices.
Hapi - A rich framework for building applications and services.
Serverless - Build and maintain web, mobile and IoT applications running on AWS Lambda and API Gateway (formerly known as JAWS).
Capabilities
API Gateways / Edge Services
Camel - Empowers you to
define routing and mediation rules in a variety of domain-specific
languages, including a Java-based fluent API, Spring or Blueprint XML
configuration files, and a Scala DSL.
HAProxy - Reliable, high Performance TCP/HTTP load balancer.
OpenResty - Fast web application server built on top of Nginx.
Tengine - A distribution of Nginx with some advanced features.
Træfɪk - A modern HTTP reverse proxy and load balancer made to deploy microservices with ease.
Tyk - Open source, fast and scalable API gateway, portal and API management platform.
Vulcand - Programmatic load balancer backed by Etcd.
Zuul - An edge service that provides dynamic routing, monitoring, resiliency, security, and more.
Configuration and Discovery
Consul - Service discovery and configuration made easy. Distributed, highly available, and datacenter-aware.
Denominator - Portably control DNS clouds using java or bash.
Doozer -
Highly-available, completely consistent store for small amounts of data.
When the data changes, it can notify connected clients immediately.
Etcd - Highly-available key-value store for shared configuration and service discovery.
Eureka
- REST based service that is primarily used in the AWS cloud for
locating services for the purpose of load balancing and failover of
middle-tier servers.
Registrator -
Service registry bridge for Docker. Supports pluggable service
registries, which currently includes Consul, etcd and SkyDNS 2.
Shaman - Small, lightweight, api-driven DNS server.
SkyDNS -
Distributed service for announcement and discovery of services built on
top of etcd. It utilizes DNS queries to discover available services.
SmartStack - Airbnb's automated service discovery and registration framework.
Spring Cloud Config - Provides server and client-side support for externalized configuration in a distributed system.
ZooKeeper - Open source server which enables highly reliable distributed coordination.
Security
Crtauth - A public key backed client/server authentication system.
Dex - Opinionated auth/directory service with pluggable connectors. OpenID Connect provider and third-party OAuth 2.0 delegation.
JWT - JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.
Keycloak - Full-featured and extensible auth service. OpenID Connect provider and third-party OAuth 2.0 delegation.
OAuth - Provides specific
authorization flows for web applications, desktop applications, mobile
phones, and living room devices. Many implementations.
OpenID Connect - Libraries, products, and tools implementing current OpenID specifications and related specs.
OSIAM - Open source identity and access management implementing OAuth 2.0 and SCIMv2.
SCIM - System for Cross-domain Identity Management.
Vault - Secures, stores,
and tightly controls access to tokens, passwords, certificates, API
keys, and other secrets in modern computing.
Elasticity
Chronos - Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules.
Fenzo - Extensible scheduler for Mesos frameworks.
Galaxy - Open source high-performance in-memory data-grid.
Hazelcast - Open source
in-memory data-grid. Allows you to distribute data and computation
across servers, clusters and geographies, and to manage very large data
sets or high data ingest rates. Mature technology.
Helix - Generic cluster
management framework used for the automatic management of partitioned,
replicated and distributed resources hosted on a cluster of nodes.
Ignite - High-performance,
integrated and distributed in-memory platform for computing and
transacting on large-scale data sets in real-time, orders of magnitude
faster than possible with traditional disk-based or flash technologies.
Marathon - Deploy and manage containers (including Docker) on top of Apache Mesos at scale.
Mesos - Abstracts CPU,
memory, storage, and other compute resources away from machines
(physical or virtual), enabling fault-tolerant and elastic distributed
systems to easily be built and run effectively.
Jackson - A multi-purpose Java library for processing JSON data format.
Jackson Afterburner
- Jackson module that uses bytecode generation to further speed up data
binding (+30-40% throughput for serialization, deserialization).
Kryo - Java serialization and cloning: fast, efficient, automatic.
Geode - Open source, distributed, in-memory database for scale-out applications.
MemSQL - High-performance,
in-memory database that combines the horizontal scalability of
distributed systems with the familiarity of SQL.
Parquet - Columnar storage
format available to any project in the Hadoop ecosystem, regardless of
the choice of data processing framework, data model or programming
language.
Reborn - Distributed database fully compatible with redis protocol.
RethinkDB - Open source, scalable database that makes building realtime apps easier.
ReactiveX - API for asynchronous
programming with observable streams. Available for idiomatic Java,
Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and others.
Simple React - Powerful future streams & asynchronous data structures for Java 8.
Resilience
Hystrix - Latency
and fault tolerance library designed to isolate points of access to
remote systems, services and 3rd party libraries, stop cascading failure
and enable resilience in complex distributed systems where failure is
inevitable.
Pathod - Crafted malice for tormenting HTTP clients and servers.
Raft Consensus - Consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance.
Resilient HTTP - A
smart HTTP client with super powers like fault tolerance, dynamic server
discovery, auto balancing and reactive recovery, designed for
distributed systems.
Saboteur - Causing deliberate network mayhem for better resilience.
Simian Army -
Suite of tools for keeping your cloud operating in top form. Chaos
Monkey, the first member, is a resiliency tool that helps ensure that
your applications can tolerate random instance failures.
Testing
Mitmproxy - An interactive console program that allows traffic flows to be intercepted, inspected, modified and replayed.
Mountebank - Cross-platform, multi-protocol test doubles over the wire.
VCR - Record your test
suite's HTTP interactions and replay them during future test runs for
fast, deterministic, accurate tests. See the list of ports for
implementations in other languages.
Wilma - Combined HTTP/HTTPS service stub and transparent proxy solution.
WireMock - Flexible library for
stubbing and mocking web services. Unlike general purpose mocking tools
it works by creating an actual HTTP server that your code under test can
connect to as it would a real web service.
Monitoring and Debugging
Beats - Lightweight shippers for Elasticsearch & Logstash.
Collectd - The system statistics collection daemon.
Elastalert - Easy & flexible alerting for Elasticsearch.
Ganglia - A scalable distributed monitoring system for high-performance computing systems such as clusters and grids.
Grafana - An open source, feature rich metrics dashboard and graph editor for
Graphite, InfluxDB & OpenTSDB.
Packer - Tool for creating identical machine images for multiple platforms from a single source configuration.
Puppet - From provisioning bare metal & launching containers to new ways to manage infrastructure as code.
Salt - Infrastructure automation and management system.
Terraform - Provides a common configuration to launch infrastructure, from physical and virtual servers to email and DNS providers.
Deployment and Continuous Integration
On-prem
ION-Roller - AWS immutable deployment framework for web services.
Janky - Continuous integration server built on top of Jenkins and Hubot.
Jenkins - Extensible open source continuous integration server.
Nscale - Open toolkit supporting configuration, build and deployment of connected container sets.
Project 6 -
Software for deploying and managing Docker containers across a cluster
of hosts, with a focus on simplifying network and storage configurations
for on-premises environments.
Rancher - Open source platform for operating Docker in production.
RPM Maven - Allows artifacts from one or more projects to be packaged in an RPM for distribution.
Hosted
AWS CodeDeploy -
Deployment service that enables developers to automate the deployment of
applications to instances and to update the applications as required.
AWS OpsWorks - Provides a simple and flexible way to create and manage stacks and applications.
Codeship - Hosted continuous delivery platform that takes care
of the testing and deployment process.
Travis - Continuous integration and deployment service.
Lightweight
Capsule - Packaging and deployment tool for JVM applications.
Kafka Deploy - Automated deploy for a Kafka cluster on AWS.
LambdaCD - A library to define a continuous delivery pipeline in code.
Containers
AWS ECS - Easily run and manage Docker-enabled applications across a cluster of Amazon EC2 instances.
CoreOS - Open source lightweight
operating system based on the Linux kernel and designed for providing
infrastructure to clustered deployments.
Docker - Open platform for distributed applications for developers and sysadmins.
Kubernetes - Open source orchestration system for Docker containers.
Linux Containers - The umbrella project behind LXC, LXD, LXCFS and CGManager.
RancherOS - The smallest, easiest way to run Docker in production at scale.
Documentation & Modeling
REST APIs
Aglio - API Blueprint renderer with theme support that outputs static HTML.
API Blueprint - Tools for
your whole API lifecycle. Use it to discuss your API with others.
Generate documentation automatically. Or a test suite. Or even some
code.
Apidoc - Beautiful documentation for REST services.
RAML - RESTful API Modeling Language, a simple and succinct way of describing practically-RESTful APIs.
Slate - Beautiful static documentation for your API.
Spring REST Docs - Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test.
Swagger - A simple yet powerful representation of your RESTful API.
Canary Release
- Technique to reduce the risk of introducing a new software version in
production by slowly rolling out the change to a small subset of users
before rolling it out to the entire infrastructure and making it
available to everybody.
CAP Theorem
- States that it is impossible for a distributed computer system to
simultaneously provide all three of the following guarantees:
Consistency, Availability and Partition tolerance.
Cloud Design Patterns
- Contains twenty-four design patterns that are useful in cloud-hosted
applications. Includes: Circuit Breaker, Competing Consumers, CQRS,
Event Sourcing, Gatekeeper, Cache-Aside, etc.
Hexagonal Architecture
- Allows an application to equally be driven by users, programs,
automated test or batch scripts, and to be developed and tested in
isolation from its eventual run-time devices and databases.
Microservice Architecture - Particular way of designing software applications as suites of independently deployable services.
Your Server as a Function
- Describes three abstractions which combine to present a powerful
programming model for building safe, modular, and efficient server
software: Composable futures, services and filters. PDF
Building Microservices - Building Microservices: Designing Fine-grained Systems. Sam Newman. Preview Edition. PDF
Migrating to Cloud Native Application Architectures
- This O’Reilly report defines the unique characteristics of cloud
native application architectures such as microservices and twelve-factor
applications.
The Art of Scalability
- The Art of Scalability: Scalable Web Architecture, Processes, and
Organizations for the Modern Enterprise. Martin L. Abbott, Michael T.
Fisher.
Sites
Microservices Resource Guide
- Martin Fowler's choice of articles, videos, books, and podcasts that
can teach you more about the microservices architectural style.
Blockchain ID
- A unique identifier that is secured by a blockchain. Blockchain IDs
are simultaneously secure, human-meaningful, and decentralized, thereby
squaring Zooko's triangle.
Blocknet - The Blocknet makes possible to deliver microservices over a blockchain-based P2P network architecture.
Edgware Fabric - Lightweight, agile service bus for systems at the edge of the network, in the physical world.
MultiChain - Open platform for building blockchains.
Node-RED - Visual tool for wiring together hardware devices, APIs and online services in new and interesting ways.
Pony - Open source, object-oriented, actor-model, capabilities-secure, high performance programming language.