2019 has been a great year for cloud native technologies. This year we launched the world's first managed Kubernetes service back-ended by Rancher's k3s distribution, opened the #KUBE100 beta, and watched our users create some really neat things on our platform.

To that end, we wanted to highlight some of our top posts from the wider Civo community, and posts that showcase the exciting state of play of the cloud native landscape at the moment. As a platform, Civo is all about community, and we are proud to showcase work by our talented users sharing their knowledge to improve the services we offer and the wider developer experience.

Please note that as of the acquisition of Docker Enterprise by Mirantis, Inc, in November 2019, the preferred Docker orchestration platform is Kubernetes. The post below was published months before the announcement, and reflects the time of publication.

Setting Up a 3 Node Docker Swarm

While Kubernetes has become a de facto standard for container orchestration, the concepts can be quite esoteric to new users. This excellent guide to Docker Swarm by Ruan Bekker runs through deploying your own swarm of three nodes with Docker, without getting into the complexities of Kubernetes. If you are very new into the world of container orchestration, this is a great starting off-point.

Ruan's Docker Swarm Post code

Cloud Native Stateful Storage for Kubernetes With Rancher Labs' Longhorn

Civo CTO Andy Jeffries took a dive into stateful storage on Kubernetes in this guide. While out of the box Kubernetes containers are ephemeral and non-stateful, most applications in the world do require some amount of persistent storage.

Longhorn Blog

Since publishing this guide, we at Civo have implemented a system to launch Longhorn alongside your Kubernetes cluster with one click, meaning you no longer have to go through these steps - though they are a good reference for how cloud-native stateful storage works, and a description of what goes on behind the scenes in your clusters if you install Longhorn!

Back Up Your Data Using Restic, MinIO and Civo

Automating backups of your files is a way to minimise the chances that you lose important data. Let's face it, all of us could probably be backing up our files more often! Alex Ellis' guide shows how to deploy MinIO as S3-compatible object storage on a Civo instance, and employ Restic for incremental backups, all with step-by-step instructions. Nothing like peace of mind, knowing that if you forget your laptop on a train, you're not entirely out of luck.

Alex Restic Blog

Trying Civo's Kubernetes Service

Geert Baeke runs through creating a cluster step by step in his blog post about trying our managed Kubernetes service. He then shows you how to install an application - in his case, an automatic image classifier, with just a few lines of YAML deployed onto the cluster. His example shows that your imagination really is the limit, and you can be up and running with your apps within minutes.

Geert Blog Screenshot

Understanding Kubernetes Clusters With Octant

With the bewildering array of Kubernetes tools around, sorting the wheat from the chaff and finding what works for your use case can be a challenge. I took a look at VMware's Octant and how it allowed you to peek under the hood at the various components that make up your Kubernetes cluster.

Octant blog

Needless to say, I liked what I saw - the visualisation of relationships between pods and resources was really handy, especially in troubleshooting issues or finding bottlenecks.

Building a Blog on Civo k3s

Civo #KUBE100 beta tester Keith Hubner gave the platform a workout with this guide, deploying Ghost as a platform to write a blog about his experiences in the beta! It goes through the steps of setting up a cluster for the blog running both Ghost and MySQL, setting up a certificate and getting up and running with a cloud-native blog.

Keith Ghost Blog Screenshot

Deploy a Web Application Using GitOps With GitHub Actions and Python

Another valued contributor, Alejandro JNM has not only written a Python library to interact with Civo's API, but also this excellent guide employing the principle of GitOps to deploy an application directly from commits to a Civo instance. This allows you to deploy new versions easily as soon as your automated tests pass, thanks to the now publicly-available GitHub Actions.

Alejandro blog post

Deploy a Batch Monitoring Stack With Prometheus PushGateway

Gabriel Duke, a #KUBE100 beta tester, wrote this piece as the foundation for a batch metrics monitoring system using Prometheus PushGateway on Kubernetes. This has uses in, for example, monitoring multiple edge/IoT devices for incoming data, such as Gabriel's idea of building an environmental monitoring system on top of this base.

Gabriel Prometheus Blog Screenshot

Guide to Helm 3 With an Express.js Microservice

Another great guide by the inimitable Alex, this one tackles creating your own Helm chart to deploy a little microservice as a proof of concept. Never not with his finger on the pulse, Alex shows how dealing with Helm 3 is different from the previous iteration, and how you do not need tiller at all.

Alex Helm 3 Screenshot

Flask Restplus API on Civo-Hosted k3s Kubernetes

This is the kind of documentation of a project that makes us at Civo smile. Cello says they're in the process of building an API for a side project and decided to write up deploying it on our managed Kubernetes service. It even uses Rancher's Rio project, which is something we are excited for in 2020 as well, and can't wait to have a play with.

Cello Blog Screenshot

Contribute to the Civo Community

Do you want to contribute a guide about a project you have worked on? Or have you tried a new tool that you are itching to tell the world about? Any Civo user can contribute a Learn Guide here, and we will showcase any posts written about our services - simply submit a Pull Request to our article repository!

Oh, and we have big plans for our community of contributors in 2020. We are looking to unveil our first Civo Ambassadors in the new year, and would love to hear from you. Stay tuned...