Date post: | 13-Jan-2017 |
Category: |
Software |
Upload: | vitor-pellegrino |
View: | 180 times |
Download: | 0 times |
digitalocean.com
Microservices kept simple with
DigitalOceanVitor Pellegrino@pellegrino
Full bleed images
Full bleed images
~ 18 million droplets
digitalocean.com
Droplet
digitalocean.com
Block Storage
digitalocean.com
Networking
http://martinfowler.com/bliki/MicroservicePrerequisites.html
digitalocean.com
Make sure you haveRapid provisioning
Basic monitoring
Rapid application deployment
digitalocean.com
“I’m just starting, why do I need an orchestration/cluster management tool?”
digitalocean.com
Why do I need such a tool?Cattle vs Pets
Easier to provision resources for a given application.
Better utilization of computing resources.
digitalocean.com
"How would I deploy a microservice from scratch in 10 minutes?"
digitalocean.com
Lets explore a few options
dokku
docker-swarm
kubernetes
digitalocean.com
Dokku
digitalocean.com
https://www.digitalocean.com/products/one-click-apps/dokku/
digitalocean.com
digitalocean.com
Dokku
Dokku
digitalocean.com
Good for teams used to herokuOptimised for a single box experiencePre built images on DigitalOceanExtensible using plugins
Dokku
digitalocean.com
Only vertical scaling is possibleYour server may become a single point of
failure
digitalocean.com
digitalocean.com
Docker swarm modeDocker’s built in orchestration for natively managing a cluster of Docker Engines called swarm.
Embedded data storage Built in security out of the boxOrchestration and cluster management By default, also execute work.Typically 3, 5 or 7 in a HA production
cluster
Manager
digitalocean.com
Take work and report status backCan scale to several nodes
Worker nodes
digitalocean.com
digitalocean.com
Security
Docker swarm mode
digitalocean.com
Very simple setupNative built in orchestration Built in security out of the boxNo extra components needed
Docker swarm mode
digitalocean.com
It is not as mature as other toolsDocker only
digitalocean.com
Kubernetes
digitalocean.com
KubernetesKubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
Kubernetes
digitalocean.com
Strong communitySupports different types of containers.Powerful set of constructsUses etcd to store cluster state, other
components are stateless
digitalocean.com
Installing kubernetes
digitalocean.com
https://github.com/Capgemini/kubeform (terraform + ansible, using CoreOS)
https://github.com/kubernetes-incubator/bootkube (self hosted kubernetes bootstrap)
https://github.com/kelseyhightower/kubernetes-the-hard-way
Kubeadm
digitalocean.com
Automates the installation to a couple of commands.
Rapidly evolving (currently alpha)
Still no High Available setup is supported
Kubeadm
digitalocean.com
Still only a single master is supported
Rapidly evolving (currently alpha)
digitalocean.com
"Great! I have my cluster up and running, now what?”
Centralized logging TelemetryProvisioning automation
Next steps
digitalocean.com
Get the output from any container in a central place
Useful for graphs and learning more about your data
ELK stack
Centralized Logging
digitalocean.com
Know how your cluster (and apps) is behaving in real time.
AlertingUseful for knowing when to add more
nodes to your cluster.Prometheus, Grafana, Collectd, cAdvisor,
Fluentd
Telemetry
digitalocean.com
Automate the steps to get from a droplet to a functioning node on your cluster
Downscaling is important too
Terraform, Ansible, Chef, Puppet
Provisioning automation
digitalocean.com
digitalocean.com
Closing notes
digitalocean.com
Do the simplest thing you can do to get started.
digitalocean.com
All tools have pros and cons, consider the context you are in.
Thank you!
Questions?