April 5, 2019

5547 words 27 mins read

rootsongjc/awesome-cloud-native

rootsongjc/awesome-cloud-native

A curated list for awesome cloud native tools, software and tutorials. - https://jimmysong.io/awesome-cloud-native/

repo name rootsongjc/awesome-cloud-native
repo link https://github.com/rootsongjc/awesome-cloud-native
homepage
language JavaScript
size (curr.) 2312 kB
stars (curr.) 824
created 2017-07-15
license

Awesome Cloud NativeAwesome

A curated list of awesome cloud native tools, software, and tutorials.

Contributing

Please take a quick gander at the contribution guidelines first. Thanks to all contributors, you rock🤟!

Contents

AI

API Gateway

Big Data

  • fast-data-dev - Kafka Docker for development. Kafka, Zookeeper, Schema Registry, Kafka-Connect, Landoop Tools, 20+ connectors.
  • spark - Apache Spark enhanced with native Kubernetes scheduler back-end.
  • wallaroo - Ultrafast and elastic data processing https://www.wallaroolabs.com

Container Runtime

  • clear-containers - OCI (Open Containers Initiative) compatible runtime using Virtual Machines.
  • containerd - An open and reliable container runtime https://containerd.io
  • cri-containerd - Containerd-based implementation of Kubernetes Container Runtime Interface.
  • cri-o - Lightweight Container Runtime for Kubernetes.
  • frakti - The hypervisor-based container runtime for Kubernetes.
  • gvisor - Sandboxed Container Runtime.
  • hyperd - HyperContainer Daemon http://www.hypercontainer.io
  • katacontainers - Kata Containers is a new open source project building extremely lightweight virtual machines that seamlessly plug into the containers ecosystem.
  • moby - Moby Project - a collaborative project for the container ecosystem to assemble container-based systems. https://mobyproject.org/
  • pouch - Pouch is an open-source project created to promote the container technology movement.
  • railcar - RailCar: Rust implementation of the Open Containers Initiative oci-runtime.
  • rkt - rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards.

CI-CD

Database

  • arangodb - ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.
  • beringei - Beringei is a high performance, in-memory storage engine for time series data.
  • cockroachdb - CockroachDB - the open source, cloud-native SQL database. https://www.cockroachlabs.com
  • couchdb - Apache CouchDB is one of a new breed of database management systems.
  • etcd - Distributed reliable key-value store for the most critical data of a distributed systemhttps://coreos.com/etcd/docs/latest/
  • influxdb - Scalable datastore for metrics, events, and real-time analytics https://influxdata.com
  • leveldb - LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
  • mehdb - Educational Kubernetes-native NoSQL datastore using StatefulSet and persistent volumes https://blog.openshift.com/kubernetes-statatefulset-in-action
  • mongodb - MongoDB is an open source database that uses a document-oriented data model.
  • opentsdb - A scalable, distributed Time Series Database. http://opentsdb.net
  • redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, HyperLogLogs, Bitmaps. http://redis.io
  • rethinkdb - The open-source database for the realtime web. https://rethinkdb.com
  • sharding-sphere - Distributed database middleware.
  • stolon - PostgreSQL cloud native High Availability and more.
  • tidb - TiDB is a distributed NewSQL database compatible with MySQL protocol https://pingcap.com

Data Science

DevOps

Fault Tolerant

  • chaosmonkey - Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.
  • concurrency-limits - Java Library that implements and integrates concepts from TCP congestion control to auto-detect concurrency limits to achieve optimal throughput with optimal latency.
  • hystrix - Hystrix is a 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.
  • ratelimit - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications.

IoT

Kubernetes operators

Logging

Observability

Orchestration and Scheduler

PaaS

Proxy and Load Balancer

  • caddy - Fast, cross-platform HTTP/2 web server with automatic HTTPS https://caddyserver.com
  • contour - Contour is a Kubernetes ingress controller for Lyft’s Envoy proxy.
  • envoy-docker-shim - Run Envoy in place of docker-proxy.
  • envoy - C++ front/service proxy https://www.envoyproxy.io/
  • gimbal - Heptio Gimbal is an ingress load balancing platform capable of routing traffic to multiple Kubernetes and OpenStack clusters. Built by Heptio in partnership with Actapio. https://www.heptio.com
  • gobetween - ☁️ Modern & minimalistic load balancer for the Сloud era http://gobetween.io
  • haproxy - HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
  • kEdge - kEdge - Kubernetes Edge Proxy for gRPC and HTTP Microservices.
  • katran - A high performance layer 4 load balancer.
  • kong-ingress - A Kubernetes Ingress for Kong.
  • kong/kubernetes-ingress-controller - Deploy Kong in a native Kubernetes Ingress Controller https://konghq.com/
  • metallb - A network load-balancer implementation for Kubernetes using standard routing protocols https://metallb.universe.tf
  • mosn - MOSN is a powerful cloud-native proxy acts as a edge proxy or service mesh’s data plane. https://mosn.io
  • nginx-kubernetes-ingress - NGINX and NGINX Plus Ingress Controllers for Kubernetes.
  • nginx - nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.
  • ribbon - Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.
  • skipper - An HTTP router and reverse proxy for service composition, including use cases like Kubernetes Ingress.
  • traefik - Træfik, a modern reverse proxy https://traefik.io
  • voyager - ✈️️ Secure Ingress Controller for Kubernetes by https://appscode.com

RPC

  • brpc - Most common RPC framework used throughout Baidu, with 600,000+ instances and 500+ kinds of services, called “baidu-rpc” inside Baidu.
  • finagle - A fault tolerant, protocol-agnostic RPC system http://twitter.github.io/finagle
  • grpc - A high performance, open source, general-purpose RPC framework.
  • proxygen - A collection of C++ HTTP libraries including an easy to use HTTP server.
  • rsocket - Streaming message protocol with Reactive Extension/Stream semantics.
  • sofa-bolt - SOFABolt is a lightweight, easy to use and high performance remoting framework based on Netty.
  • sofa-rpc - SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework.
  • thrift - Apache thrift.

Message Broker

  • flume - Apache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data.
  • gnatsd - High-Performance server for NATS, the cloud native messaging system. https://nats.io
  • jocko - Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)https://twitter.com/travisjeffery
  • kafka - A distributed streaming platform.
  • nsq - A realtime distributed messaging platform http://nsq.io/
  • rabbitmq - RabbitMQ is the most widely deployed open source message broker.
  • rocketmq - Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.

Miscellaneous

  • ballerina-lang - Ballerina is a new programming language for integration built on a sequence diagram metaphor.
  • dapr - Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
  • firecracker - Secure and fast microVMs for serverless computing. http://firecracker-microvm.io
  • harbor - An enterprise-class container registry server based on Docker Distribution http://vmware.github.io/harbor/
  • kind - Kubernetes IN Docker - local clusters for testing Kubernetes.
  • osiris - A general purpose, scale-to-zero component for Kubernetes
  • portainer - Simple management UI for Docker http://portainer.io
  • pulumi - A multi-language, multi-cloud development platform – your code, your cloud, your team.
  • rudr - A Kubernetes implementation of the Open Application Model specification
  • skopeo - Work with remote images registries - retrieving information, images, signing content.
  • talos - A modern Linux distribution for Kubernetes. https://docs.talos-systems.com

Monitoring

Network

Security and Audit

  • apparmor - AppArmor is an effective and easy-to-use Linux application security system.
  • authenticator - A tool for using AWS IAM credentials to authenticate to a Kubernetes cluster.
  • cert-manager - Automatically provision and manage TLS certificates in Kubernetes.
  • checkov - A static analysis tool for infrastructure as code - to prevent misconfigs at build time
  • cilium - API Aware Networking and Security using BPF and XDP.
  • clair - Vulnerability Static Analysis for Containers.
  • cost-model - Cross-cloud cost allocation models for workloads running on Kubernetes http://kubecost.com
  • dex - OpenID Connect Identity (OIDC) and OAuth 2.0 Provider with Pluggable Connectors https://coreos.com/blog/announcing-dex.html
  • docker-bench-security - The Docker Bench for Security is a script that checks for dozens of common best-practices around deploying Docker containers in production.
  • dockscan - dockscan is security vulnerability and audit scanner for Docker installations.
  • drydock - drydock provides a flexible way of assessing the security of your Docker daemon configuration and containers using editable audit templates.
  • falco - Behavioral Activity Monitoring With Container Support.
  • goldfish - A HashiCorp Vault UI panel written with VueJS and Vault native Go API https://vault-ui.io
  • grafeas - Cloud artifact metadata CRUD API and resource specifications.
  • guard - Kubernetes Authentication WebHook Server.
  • k8guard - An auditing system for Kubernetes.
  • keycloak - Open Source Identity and Access Management For Modern Applications and Services http://www.keycloak.org
  • kritis - Software supply chain security for #Kubernetes apps https://grafeas.io/docs/concepts/what-is-kritis
  • kube-bench - The Kubernetes Bench for Security is a Go application that checks whether Kubernetes is deployed according to security best practices.
  • kube-lego - Automatically request certificates for Kubernetes Ingress resources from Let’s Encrypt.
  • kube2iam - kube2iam provides different AWS IAM roles for pods running on Kubernetes.
  • kubed - 🛡️ A Kubernetes Cluster Operator Daemon by https://appscode.com
  • notary - Notary is a Docker project that allows anyone to have trust over arbitrary collections of data https://docker.com
  • opa - An open source project to policy-enable your service. http://openpolicyagent.org
  • openscap - Discover a wide array of tools for managing system security and standards compliance.
  • pomerium - Pomerium is a zero-trust context and identity aware access gateway inspired by BeyondCorp.
  • spiffe - The SPIFFE Project http://spiffe.io
  • trivy - A Simple and Comprehensive Vulnerability Scanner for Containers, Suitable for CI
  • vault - A tool for managing secrets. https://www.vaultproject.io

Service Broker

  • open-service-broker-sdk - A starting point for creating service brokers implementing the Open Service Broker API.
  • rotor - Rotor is a fast, lightweight bridge between your service discovery and Envoy’s configuration APIs. Rotor supports Kubernetes, Consul, AWS (EC2 and ECS), DC/OS, flat files, and even other EDS/CDS implementations.
  • service-catalog - Consume services in Kubernetes using the Open Service Broker API.
  • service-broker - Open Service Broker API Specification https://openservicebrokerapi.org/

Service Mesh

Service Registry and Discovery

Serverless

Storage

  • ceph - Ceph is a distributed object, block, and file storage platform http://ceph.com
  • chubaofs - A distributed storage system for cloud native applications http://chubao.io/
  • convoy - A Docker volume plugin, managing persistent container volumes.
  • fastdfs - FastDFS is an open source high performance distributed file system (DFS). It’s major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance.
  • flocker - Container data volume manager for your Dockerized application https://clusterhq.com
  • glusterd2 - GlusterD-2.0 is the distributed management framework to be used for GlusterFS-4.0
  • glusterfs - Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage.
  • heketi - RESTful based volume management framework for GlusterFS.
  • infinit - The Infinit policy-based software-defined storage platform. http://infinit.sh
  • leofs - The LeoFS Storage System https://leo-project.net/leofs/
  • longhorn - We put storage on cows and move them around from rancher.
  • minio - Minio is an open source object storage server compatible with Amazon S3 APIs https://minio.io
  • openebs - OpenEBS is containerized block storage written in Go for cloud native and other environments w/ per container (or pod) QoS SLAs, tiering and replica policies across AZs and environments, and predictable and scalable performance. https://www.openebs.io
  • rook - File, Block, and Object Storage Services for your Cloud-Native Environment https://rook.io
  • storageos - Enterprise persistent storage for containers and the cloud
  • torus - Torus Distributed Storage https://coreos.com/blog/torus-distributed-storage-by-coreos.html
  • vitess - Vitess is a database clustering system for horizontal scaling of MySQL. http://vitess.io
  • zenko - Because everyone should be in control of their data. http://zenko.io

Tools

  • aglio - An API Blueprint renderer with theme support that outputs static HTML.
  • ark - Heptio Ark is a utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes. Brought to you by Heptio. http://www.heptio.com
  • armada - A python orchestrator for a installing, upgrading, and managing a collection of helm charts, dependencies, and values overrides.
  • autoapply - Automatically apply changes from a git repository to Kubernetes.
  • build - A Kubernetes-native Build resource.
  • chaostoolkit - An Open API to Chaos Engineering http://chaostoolkit.org
  • charitify - 📈 Generate Helm Charts from Kubernetes objects by https://appscode.com
  • client-go - Go client for Kubernetes.
  • cloud-native-sandbox - Cloud Native Sandbox can help you setup a standalone Kubernetes and Istio environment with Docker on you own laptop.
  • cluster-lifecycle-manager - Cluster Lifecycle Manager (CLM) to provision and update multiple Kubernetes clusters
  • container-structure-test - validate the structure of your container images.
  • container-transform - Transforms docker-compose, ECS, and Marathon configurations.
  • crashcart - CrashCart: sideload binaries into a running container.
  • cri-tools - CLI and validation tools for Kubelet Container Runtime Interface (CRI) .
  • devspace - Cloud Native Software Development with Kubernetes and Docker - simply run “devspace up” in any of your projects and start coding directly on top of Kubernetes (works with minikube, self-hosted and cloud-based clusters) https://devspace-cloud.com
  • docker-elk - The ELK stack powered by Docker and Compose.
  • dockersh - A shell which places users into individual docker containers.
  • dotmesh - dotmesh (dm) is like git for your data volumes (databases, files etc) in Docker and Kubernetes https://dotmesh.com
  • draft - A tool for developers to create cloud-native applications on Kubernetes.
  • dragonfly - Dragonfly is an intelligent P2P based file distribution system.
  • drakov - Mock Server that implements the API Blueprint specification.
  • eksctl - a CLI for Amazon EKS https://eksctl.io
  • escalator - Escalator is a batch or job optimized horizontal autoscaler for Kubernetes.
  • flux - A tool for turning container images into running Kubernetes services.
  • freshpod - Restart Pods on Minikube automatically on image rebuilds.
  • garden - Development orchestrator for Kubernetes, containers and serverless functions. https://garden.io
  • gardener - Kubernetes API server extension and controller manager providing conformant Kubernetes clusters (a.k.a. (off)shoot clusters) as a service (with day-2 ops) on Alibaba, AWS, Azure, GCP, and OpenStack.
  • go-kubectx - 5x-10x faster alternative to kubectx. Uses client-go.
  • gockerize - Package golang service into minimal docker containers.
  • habitus - A Build Flow Tool for Docker http://www.habitus.io
  • helm - The Kubernetes Package Manager.
  • helmsman - Helm Charts as Code
  • hiboot - hiboot is a high performance web and cli application framework with dependency injection support https://hiboot.hidevops.io
  • istio-pod-network-controller - Controller to manage Istio Pod Network.
  • jib - ⛵️ Build container images for your Java applications.
  • jsonnet - Jsonnet - The data templating language http://jsonnet.org
  • kail - kubernetes log viewer.
  • kaniko - Build Container Images In Kubernetes.
  • kd - Minimalistic kubernetes resources deployment tool with templating.
  • kedge - Kedge - Concise Application Definition for Kubernetes http://kedgeproject.org
  • kismatic - Kismatic Enterprise Toolkit: Fully-Automated, Production-Grade Kubernetes Operations.
  • kompose - Go from Docker Compose to Kubernetes http://kompose.io
  • kops - Kubernetes Operations (kops) - Production Grade K8s Installation, Upgrades, and Management.
  • ksonnet-lib - (technical preview) Simplify working with Kubernetes http://ksonnet.heptio.com
  • ksonnet - A CLI-supported framework that streamlines writing and deployment of Kubernetes configurations to multiple clusters.https://ksonnet.io/
  • ksync - Sync files between your local system and a kubernetes cluster. https://vapor-ware.github.io/ksync
  • ktmpl - Parameterized templates for Kubernetes manifests.
  • kube-capacity - A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster
  • kube-downscaler - Scale down Kubernetes deployments after work hours https://hub.docker.com/r/hjacobs/kube-downscaler
  • kube-fledged - A kubernetes add-on for creating and managing a cache of container images in a kubernetes cluster.
  • kube-ps1 - Kubernetes prompt info for bash and zsh.
  • kube-shell - Kubernetes shell: An integrated shell for working with the Kubernetes CLI
  • kube-version-converter - Convert API Object file into specified version.
  • kubeasz - 使用Ansible脚本安装K8S集群,介绍组件交互原理,方便直接,不受国内网络环境影响。
  • kubeadm-offline-installer - Setup a cluster with kubeadm, without internet connections.
  • kubeadm - Aggregator for issues filed against kubeadm.
  • kubeapps - Discover & launch great Kubernetes-ready apps.
  • kubebox - ⎈❏ Terminal console for Kubernetes clusters https://kube.sh
  • kubebuilder - Kubebuilder - SDK for building Kubernetes APIs using CRDs http://book.kubebuilder.io
  • kubecdn - Self-hosted CDN based on Kubernetes.
  • kubecfg - A tool for managing complex enterprise Kubernetes environments as code.
  • kubectl-doctor - kubectl cluster triage plugin for k8s - 🏥 (brew doctor equivalent)
  • kubectl-trace - Schedule bpftrace programs on your kubernetes cluster using the kubectl.
  • kubedb - KubeDB CLI https://kubedb.com to manage kubernetes ready production-grade Databases.
  • kubedirector - Kubernetes Director (aka KubeDirector) for deploying and managing stateful applications on Kubernetes.
  • kubefwd - Bulk port forwarding Kubernetes services for local development. https://imti.co/kubernetes-port-forwarding
  • kubegen - kubegen – simple way to describe Kubernetes resources.
  • kubehandler - A framework for writing Kubernetes controllers.
  • kubeiql - A GraphQL interface for Kubernetes. https://kubeiql.io/
  • kubernetes-client - Java client for Kubernetes & OpenShift 3 http://fabric8.io
  • kubernetes-deploy - A command-line tool that helps you ship changes to a Kubernetes namespace and understand the result.
  • kubernetes-vagrant-centos-cluster - Setting up a distributed Kubernetes cluster along with Istio service mesh locally with Vagrant and VirtualBox.
  • kubespray - Setup a kubernetes cluster also mentioned as kargo.
  • kubeup - Cluster operation the Kubernetes way.
  • kustomize - Customization of kubernetes YAML configurations.
  • microk8s - A kubernetes cluster in a snap https://microk8s.io
  • minikube - Run Kubernetes locally.
  • monday - ⚡️ A dev tool for microservice developers that run local applications and/or forward some others from Kubernetes or over SSH
  • opencompose - OpenCompose - A higher level abstraction for Kubernetes Resource.
  • searchlight - 🔦 Alerts for Kubernetes.
  • serving - Kubernetes-based, scale-to-zero, request-driven compute.
  • sloop - Kubernetes History Visualization
  • smith - Smith: A microcontainer builder.
  • sonobuoy - Heptio Sonobuoy is a diagnostic tool that makes it easier to understand the state of a Kubernetes cluster by running a set of Kubernetes conformance tests in an accessible and non-destructive manner. Brought to you by Heptio.http://www.heptio.com
  • source-to-image - A tool for building/building artifacts from source and injecting into docker images.
  • squash - The debugger for microservices.
  • stash - 🛅 Backup your Kubernetes Volumes by htts://appscode.com
  • stern - Multi pod and container log tailing for Kubernetes.
  • swagger - Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API. http://swagger.io
  • tectonic-installer - Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more.
  • telepresence - Local development against a remote Kubernetes or OpenShift cluster http://www.telepresence.io
  • terminus - Graceful shutdown and Kubernetes readiness / liveness checks for any Node.js HTTP applications.
  • test-infra - Test infrastructure for the Kubernetes project.
  • tini - A tiny but valid init for containers
  • tor-controller - Run Tor onion services on Kubernetes.
  • usernetes - Kubernetes installable under $HOME, without the root privileges.
  • vagrant - Vagrant is a tool for building and distributing development environments. https://www.vagrantup.com
  • watchtower - Automatically update running Docker containers.

Tracing

  • appdash - Application tracing system for Go, based on Google’s Dapper. https://sourcegraph.com
  • jaeger - Jaeger, a Distributed Tracing System http://uber.github.io/jaeger/
  • opencensus - A single distribution of libraries that automatically collect traces and metrics from your app, display them locally, and send them to any backend. - https://opencensus.io
  • opentracing - Consistent, expressive, vendor-neutral APIs for distributed tracing and context propagation.
  • pinpoint - Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java. http://naver.github.io/pinpoint/
  • sentry - Sentry is a cross-platform crash reporting and aggregation platform. https://sentry.io
  • skywalking - An APM system for tracing, monitoring, diagnosing distributed systems, especially based on microservices, cloud native and container.
  • sofa-tracker - SOFATracer is a component for the distributed system call trace. And through a unified traceId logging the logs of various network calls in the invoking link . These logs can be used for quick discovery of faults, service governance, etc.
  • zipkin - Zipkin is a distributed tracing system http://zipkin.io

Tutorials

License

CC0

To the extent possible under law, the authors have waived all copyright and related or neighbouring rights to this work.

comments powered by Disqus