Skip to content

Instantly share code, notes, and snippets.

@leoricklin
Last active November 19, 2022 02:36
Show Gist options
  • Save leoricklin/687b569195404efb6cbe9ede5ed97a0b to your computer and use it in GitHub Desktop.
Save leoricklin/687b569195404efb6cbe9ede5ed97a0b to your computer and use it in GitHub Desktop.

Cloud Natives

CNCF

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.

Reources

Principle 1: A single Pod is pretty much never what you want to use

Principle 2: Clearly separate stateful and stateless components

Principle 3: Separate secret from non-secret configuration to make use clear and for security

Principle 4: Enable automatic scaling to ensure capacity management

Principle 5: Enhance and enable automation by hooking into the container lifecycle management

Principle 6: Use probes correctly to detect and automatically recover from failures

Principle 7: Let components fail hard, fast, and loudly

Principle 8: Prepare your application for observability

Principle 9: Set Pod resource requests and limits appropriately

Principle 10: Reserve capacity and prioritize Pods

Principle 11: Force co-location of or spreading out Pods as needed

Principle 12: Ensure Pod availability during planned operations that can cause downtime

Principle 13: Choose blue/green or canary deployments over stop-the-world deployments

Principle 14: Avoid giving Pods permissions they do not need

Principle 15: Limit what Pods can do within your cluster

Multi-Cloud Refactor

Multi-Cloud Rebinding

Multi-Cloud Rebinding with Cloud Brokerage

Distributed Application Runtime (Dapr)

Dapr is a portable, serverless, event-driven runtime that makes it easy for developers to build resilient, stateless and stateful microservices that run on the cloud and edge and embraces the diversity of languages and developer frameworks.

Azure Info Hub

Open Application Model (https://github.com/oam-dev)

Open Application Model Specification (https://github.com/oam-dev/spec)

Open Application Model is a platform-agnostic specification for building cloud native applications.

Focused on separating concerns of development and operation needs, Open Application Model brings modular, extensible, and portable design to building and delivering applications on different platforms.

Rudr: A Kubernetes Implementation of the Open Application Model

Azure Info Hub

Youtube

AliCloud

Observability

Open Telemetry

Before digging into OpenTelemetry, it is important to understand some core concepts first.

Background information on OpenTelemetry

Categories of telemetry supported by OpenTelemetry

The main components that make up OpenTelemetry

How OpenTelemetry facilitates automatic and manual instrumentation of applications

Learn how to add native instrumentation to your library

The OpenTelemetry project facilitates the collection of telemetry data via the OpenTelemetry Collector

A distribution, not to be confused with a fork, is customized version of an OpenTelemetry component.

Terminology you may or may not be familiar with used by the OpenTelemetry project

Open Liberty: An IBM open source project

  • https://openliberty.io/

    A lightweight open framework for building fast and efficient cloud-native Java microservices. Build cloud-native apps and microservices while running only what you need. Open LibertyTM is the most flexible server runtime available to JavaTM developers in this solar system.

    • Develop cloud-native Java microservices

      Open Liberty is fast to start up with a low memory footprint and live reload for quick iteration. Simple to add and remove features from the latest versions of MicroProfile and Jakarta EE. Zero migration lets you focus on what's important, not the APIs changing under you.

    • Dev mode for fast iteration

      Launch into dev mode and get coding. No more manual compiling, packaging, and deploying—we handle that for you. Get automated testing, debugger support, and a fast turn-around time in any editor.

    • Deploy in containers to any cloud

      Containerized and deployable with fast throughput on any Kubernetes cloud. Battle-hardened and proven in production, with zero migration. Easy-to-manage configuration from development to test to production

    • Monitor microservices in the cloud

      Trace your live microservices. Gather metrics and configure alerts, and browse metrics in dashboards. Consolidate and analyze logs from across your hybrid cloud.

Resources

Doc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment