Slides from the talk given to the Startup Berlin Slack Group that demonstrates how TruckIN is implementing its continuous delivery workflow using technologies and open-source tools.
Topics that are covered: Automated Cloud Provisioning (Network, Subnets, VMs, Kubernetes Cluster, Firewall, Disks, Credentials, Private Docker Registry); Configuration Management (Salt Stack), Continuous Integration (Jenkins CI), Continuous Delivery/Deployment (Salt API/Reactor + Kubernetes) to a Google Cloud Kubernetes Cluster, Remote Application Debugging, Managing Google Cloud Kubernetes Cluster, Logging, Monitoring and ChatOps (Slack and operable.io)
49. Desired State
● 8 VMs
○ Salt Master
○ Operator
○ Builder
○ Postgresql
○ Elasticsearch
○ 3 Kubernetes nodes
● 2 Persistent Data Disks: 500GB attached to PG and ELS
● 1 Kubernetes Cluster
● Network
○ Required Firewall Rules
○ 2 Subnets
● 2 IAM/Service Accounts: Pull/Push Docker Registry
50. Complete Cloud Provision Flow
Network
Firewall, Subnets, Static IPs,
...
Instances
Salt Master, Salt Minion,
Postgresql, Elasticsearch, Builder,
Operator
Kubernetes
Cluster
Nodes, Firewall Rules,
K8S Master and Workers
● $ terraform apply
Salt states are applied just after an
instance is created, based on its
"role" specified in the grains config
Core resources are
created during this
phase
Creates the initial
cluster state based on
the number of nodes
specified
63. Kubernetes Objects
"Kubernetes Objects are persistent entities in the Kubernetes system.
Kubernetes uses these entities to represent the state of your cluster."
64. Kubernetes objects
● Abstracts: deployments, services, replica sets, ingress, ...
● Generated on the fly by Salt using templates
● Final .yaml file compiled including pillars and arguments
● $ kubectl apply -f mysite-development.yaml
● Garbage collector
81. Pick up the right people
"When you get into one of these groups,
there's only a couple of ways you can
get out: one is death, the other is mental
institutions..." - Devops Engineer testimonial
82. Links
Saltstack - https://saltstack.com
Salt States - https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html
Salt Pillars - https://docs.saltstack.com/en/latest/topics/pillar/
Terraform - https://www.terraform.io/intro/index.html
Weavescope - https://www.weave.works/products/weave-scope
Kubernetesio - http://kubernetes.io
Jenkins CI - https://jenkins.io
Docker - https://docker.com
Google Cloud Platform - cloud.google.com
GCP Calculator - https://cloud.google.com/products/calculator/