Gorilla Compression algorithm
https://blog.acolyer.org/2016/05/03/gorilla-a-fast-scalable-in-memory-time-series-database/
https://www.timescale.com/blog/time-series-compression-algorithms-explained/
One of biggest barriers when trying to get started with Kubernetes is that there's so much content out there that it's kinda overwhelming - and that's totally normal! The intent of this document is to try and provide directed resources in a roadmap like fashion to understand and learn about the horizontals of Kubernetes - post which you can dive deep into any vertical while keeping the bigger picture in mind - that this document hopes to provide.
This is a set of resources for different topics that I found particularly helpful when getting started, and hopefully you do too! I've tried to list them out in order of consumption. If A comes before B under a subtopic, then it's probably that A has topics needed for B, or that A attempts to explain topics of B in a slightly simpler (not nescessarily better) manner than B.
Feel free to skip over if you're already familiar with containers and have some idea about what they are and why they exist.
The JSON file included in this gist gives a codebase walkthrough of the resource handling in the k8s apiserver.
The codebase walkthrough is created using CodeTour VS Code extension. To display the walkthrough in VS Code, use the JSON file using the Opening Tours functionality.
You might need to first open the workspace at the apiserver directory.
Folks, Leave me a comment / URL if something you like is missing!
Resource | Description |
---|---|
Kube Academy | https://kube.academy/ |
kuernetes-101 | https://kube.academy/courses/kubernetes-101/ |
Docs Home | https://kubernetes.io/docs/home/ |
CKS CKA CKAD Simulator | https://killer.sh/ |
The go
command line tool needs to be able to fetch dependencies from your private GitLab, but authenticaiton is required.
This assumes your private GitLab is hosted at privategitlab.company.com
.
The following environment variables are recommended:
export GO111MODULE=on
export GOPRIVATE=privategitlab.company.com
Since 2013 I've worked entirely in the open, lowering the barriers to different | |
developer ecosystems as one of the most active users on GitHub. | |
I've helped big OSS projects with design, project management and occasionally code. |
import goyaml "github.com/go-yaml/yaml" | |
func SplitYAML(resources []byte) ([][]byte, error) { | |
dec := goyaml.NewDecoder(bytes.NewReader(resources)) | |
var res [][]byte | |
for { | |
var value interface{} | |
err := dec.Decode(&value) |
EVAL "local keys = redis.call('keys', ARGV[1]) \n for i=1,#keys,5000 do \n redis.call('del', unpack(keys, i, math.min(i+4999, #keys))) \n end \n return keys" 0 prefix:*
redis-cli CLIENT LIST
2019 update: this essay has been updated on my personal site, together with a followup on how to get started
2020 update: I'm now writing a book with updated versions of all these essays and 35 other chapters!!!!
If there's a golden rule, it's this one, so I put it first. All the other rules are more or less elaborations of this rule #1.
You already know that you will never be done learning. But most people "learn in private", and lurk. They consume content without creating any themselves. Again, that's fine, but we're here to talk about being in the top quintile. What you do here is to have a habit of creating learning exhaust. Write blogs and tutorials and cheatsheets. Speak at meetups and conferences. Ask and answer things on Stackoverflow or Reddit. (Avoid the walled gardens like Slack and Discourse, they're not public). Make Youtube videos
package main | |
import ( | |
"context" | |
"flag" | |
"fmt" | |
"log" | |
"net/http" | |
"os" | |
"os/signal" |