Simplenetes: magic-free clusters
Welcome to Simplenetes! Let's put the Dev and Ops back into DevOps.
Introducing: Simplenetes clusters
Simplenetes clusters enable setting up and managing a set of node machines for running applications within containers using OS-level virtualization.
The sns
tool is used to manage the full life cycle of your Simplenetes clusters.
Simplenetes integrates with
podc
, the Pod compiler project used to turn Pods into executable units.
Simplenetes compared to Kubernetes:
- Simplenetes has 100x less code than Kubernetes.
- Simplenetes has fewer moving parts:
- No external dependency to distributed data storage solutions such as etcd;
- No complicated network policies and filtering programs such as iptables;
- No requirement for administrative rights, super users or
sudo
to run. Containers are created, executed and managed in rootless mode; - Clusters are also Git repositories. See cluster data right on disk or from source control management systems;
- Everything is managed via SSH;
- No magic involved;
- Very GitOps.
- Simplenetes also supports:
- Multiple replicas of Pods;
- Overlapping versions of Pods;
- Controlled rollout of Pods, allowing continuous deployment and releases;
- Controlled rollback of Pods, complementing disaster recovery plans and state restoration;
- Load balancing;
- Internal proxying of traffic;
- Continuous Integration and Continuous Delivery (CI/CD) pipelines;
- Let's Encrypt certificates;
- Health checks.
- Simplenetes makes it really smooth to work with Pods and microservices in development mode on your laptop (spoiler: no Virtual Machines required!);
- Simplenetes uses
podman
as container runtime.
In short, Simplenetes takes the raisins out of the cake, but it does not have everything Kubernetes offers.
While Kubernetes is "true cloud computing", in the sense that it can expand clusters with more worker machines as needed and it can request resources from the environment as needed (such as persistent disk), Simplenetes doesn't go there because that is when DevOps becomes MagicOps.
When should I use Simplenetes?
In what cases should I really consider using Simplenetes?
- You enjoy the simple things in life;
- You might have struggled getting into a good local development flow using Kubernetes;
- You know you will have a small cluster, between 1 and 20 nodes;
- You are happy just running N replicas of a Pod instead of setting up auto scaling parameters;
- You want a deterministic cluster which you can troubleshoot in detail;
- You want less moving parts in your cluster.
In which cases should I not use Simplenetes over Kubernetes?
- Simplenetes is in beta;
- Because you are anticipating having more than 20 nodes in your cluster;
- You need auto scaling in your cluster;
- You really need things such as namespaces;
- You are not using Linux as your development machine;
- Your boss has pointy hair.
Simplenetes explained
Simplenetes is composed of three parts:
- The simplenetes repository, which is the
sns
tool to setup and manage clusters; - The podc repo, which is the Pod compiler (
podc
) taking a Pod YAML specification and transforming it into a standalone executable shell script used to manage Pods; - The simplenetesd repo, which is the daemon (
simplenetesd
) running on each host to start and stop Pods, according to given state.
Look up in the documentation sections for topics and how to get started working with Simplenetes clusters.
The next section covers more on the base theory, components of Simplenetes and the terminology used.
Simplenetes was built by @bashlund and @filippsen.