Cloud Native Computing Foundation Graduated Projects
Tags: devops, kubernetes, opensource, webdev
Published: 2020-10-26 16:01:50

# Cloud Native
[Cloud native](https://github.com/cncf/toc/blob/master/DEFINITION.md) technologies empower organizations to build and run scalable applications in modern environments. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs are examples. Cloud native software enables loosely coupled systems that are resilient, manageable, and observable. 

![cncf-color](https://dev-to-uploads.s3.amazonaws.com/i/zyzbupff0nxo9wthlanb.png)
# Cloud Native Computing Foundation
The [CNCF](https://www.cncf.io/) seeks to drive adoption of cloud native software by fostering and sustaining an ecosystem of open source, vendor-neutral projects. CNCF is part of the nonprofit [Linux Foundation](https://www.linuxfoundation.org/) and members include AWS, Apple, Google Cloud, and Microsoft Azure. 

# Why Care about CNCF?
Now more than ever, companies that are not labeled as software companies are realizing that they need to have their own proprietary software to compete in the digital age. Adopting cloud native technologies and practices enables companies to create software in-house. CNCF technologies enable cloud portability without vendor lock-in. Also the biggest companies develop, support and promote these technologies from their inception so you'll probably work with at least one of these eventually if you already haven't.

# When a Project Graduates
A CNCF project can have a maturity level of sandbox, incubating, or graduated. The maturity level is a signal by CNCF as to what sorts of enterprises should be adopting different projects. Projects increase their maturity by demonstrating their sustainability to CNCF’s Technical Oversight Committee. Graduate projects are widely adopted, have frequent changes, and have a variety of contributors. 

![cncf-graduated-color](https://dev-to-uploads.s3.amazonaws.com/i/5mg3g41y3cg8zmlime7p.jpg) 
# Graduated Projects
## [containerd - Container Runtime](https://github.com/containerd/containerd)
containerd is a [container runtime](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/#h.6yt1ex5wfo55) with an emphasis on simplicity, robustness and portability. It is available as a daemon, which can manage the complete container lifecycle of its host system: image transfer and storage, container execution and supervision, low-level storage and network attachments, etc. containerd is designed to be embedded into a larger system, rather than being used directly by developers or end-users.

## [CoreDNS - Service Discovery](https://github.com/coredns/coredns)
CoreDNS is a [Domain Name System (DNS)](https://www.cloudflare.com/learning/dns/what-is-dns/) server and forwarder, that chains plugins. Each plugin performs a DNS function. CoreDNS is a fast and flexible DNS server that allows you to do what you want with your DNS data by utilizing plugins. 

## [Envoy - Network Proxy](https://github.com/envoyproxy/envoy)
Envoy is an edge and service proxy designed for cloud native applications made by Lyft.

## [Fluentd - Logging](https://github.com/fluent/fluentd/)
Fluentd collects events from various data sources and writes them to files, RDBMS, NoSQL, IaaS, SaaS, Hadoop and so on. Fluentd helps you unify your logging infrastructure.

## [Harbor - Registry](https://github.com/goharbor/harbor)
An open source registry that secures artifacts with policies and role-based access control, ensures images are scanned and free from vulnerabilities, and signs images as trusted.

## [Helm - Package Management](https://github.com/helm/helm)
Helm is a package manager for Kubernetes that streamlines installing and managing Kubernetes applications. Helm manages Charts, which are packages of pre-configured Kubernetes resources. 

## [Jaeger - Distributed Tracing](https://github.com/jaegertracing/jaeger)
Jaeger is a [distributed tracing](https://netflixtechblog.com/building-netflixs-distributed-tracing-infrastructure-bb856c319304) platform that can be used for monitoring microservices-based distributed systems. It was created by Uber Technologies. 

## [Kubernetes - Orchestration](https://github.com/kubernetes/kubernetes)
Kubernetes is an open source system for [managing containerized applications](https://www.redhat.com/en/topics/containers/what-is-container-orchestration) across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

## [Prometheus - Monitoring](https://github.com/prometheus/prometheus)
Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.

## [Rook - Storage](https://github.com/rook/rook)
Rook is an open source cloud-native [storage orchestrator](https://storageos.com/orchestrated-storage-containers) for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments. Rook turns storage software into self-managing, self-scaling, and self-healing storage services. 

## [TiKV - Key/Value Store] (https://github.com/tikv/tikv)
TiKV is an open-source, distributed, and transactional [key-value database](https://aws.amazon.com/nosql/key-value/). Unlike other traditional NoSQL systems, TiKV not only provides classical key-value APIs, but also transactional APIs with [ACID](https://mariadb.com/resources/blog/acid-compliance-what-it-means-and-why-you-should-care/) compliance. 

## [TUF - Software Update Spec](https://github.com/theupdateframework/specification)
The Update Framework (TUF) helps developers maintain the security of software update systems. TUF provides a flexible framework and specification that developers can adopt to secure any software update system.

## [Vitess - Storage](https://github.com/vitessio/vitess)
Vitess is a database clustering system for horizontal scaling of [MySQL](https://www.mysql.com/) through generalized sharding. By encapsulating shard-routing logic, Vitess allows application code and database queries to remain agnostic to the distribution of data onto multiple shards. 

# Conclusion
There are a lot of different projects that all have different applications. You don't need to know or use all of these. However, if you are in a situation that requires one of these types of solutions you should consider using one of these products. Do you use any of these products already? If yes, which ones?

> If you like what you've read, want to continue the discussion, or have anything else on your mind, reach out to me on [Twitter](https://twitter.com/iamdarkes).