containerdayvietnam2016: docker at scale with mesos
Post on 20-Mar-2017
194 Views
Preview:
TRANSCRIPT
$ whoami
• Lead engineer at VCCloud Platform Services
• Build & work with large-scale/production platform services for about 6 years
• Services: Storage, DNS, CDN, DDoS Protection, Logging, Private PaaS
https://blog.twitter.com/2016/overview-of-the-twitter-cloud-platform-compute
https://mesosphere.com/blog/2015/04/23/apple-details-j-a-r-v-i-s-the-mesos-framework-that-runs-siri/
Powered by Mesos:• Apple
• Atlassian
• CERN
• Cisco
• Cloudflare
• Foursquare
• Groupon
• HubSpot
• Netflix
• Opera
• Paypal
• Shopee
• Shopify
• Saleforce
• Uber
• Vimeo
• Verizon
• Yelp
• Xiaomi
http://mesos.apache.org/documentation/latest/powered-by-mesos/
Solomon Hykes, Founder & CTO of Docker, said at DockerCon EU 12/2014:
Mesos is the “gold standard” for large-scale production clusters running containers
Mesos is:
• Open source, top-level Apache project
• Proven at massive scale
• Multi-resource (CPU, RAM, Disk, GPU) scheduling
• Simplified operational model
• Cross platform
• Native Docker support
• PaaS: Marathon, Aurora, Kubernetes, Swarm
• Big Data: Hadoop, Spark, Storm
• Database: Cassandra, ArangoDB,
• ElasticSearch, Chronos, Jenkins, Kafka…
Mesos Frameworks:
Features:
• Start, stop, scale, update, rollback apps
• Rolling deploy / restart
• Constraints
• Health checks
• App dependencies
• Highly available, no SPoF
– Immutable Infrastructure / CodeShip
“Some of the major challenges today when building infrastructure are predictability, scalability and automated recovery.”
• Container style
• Service discovery
• Networking
Lessons Learned
• Managing secrets
• App deployment
• Docker annoyances
• Container style
• Service discovery
• Networking
Lessons Learned
• Managing secrets
• App deployment
• Docker annoyances
Services Discovery
• Mesos-DNS:
• <app_id>.<app_group>.marathon.mesos
• record types: A / SRV
• simple & stateless
• Container style
• Service discovery
• Networking
Lessons Learned
• Managing secrets
• App deployment
• Docker annoyances
• Container style
• Service discovery
• Networking
Lessons Learned
• Managing secrets
• App deployment
• Docker annoyances
• Container style
• Service discovery
• Networking
Lessons Learned
• Managing secrets
• App deployment
• Docker annoyances
App deployment
• ansible-playbook
• marathon.json
• docker tag name = git commit hash
• 1 mesos cluster (3 VMs) per dev
• deploy to servers → deploy to marathon
• Container style
• Service discovery
• Networking
Lessons Learned
• Managing secrets
• App deployment
• Docker annoyances
Docker 👎
• restart / upgrade docker without stopping the running containers
• old images / tags cleanup
• container’s stdout / stderr log files
• docker pull
• docker hub
"Normal" container vs cloud-native container:
• No manual steps
• Service discovery friendly
• Config files should be optional
• Using env vars for config
Links
• Mesos: http://mesos.apache.org/
• Marathon: https://mesosphere.github.io/marathon/
• Project Calico: https://www.projectcalico.org/
• Mesos-DNS: https://github.com/mesosphere/mesos-dns
• A Healthy Platform Checklist: https://gist.github.com/andy-pham/04dedff872b33c07a31277afb900950b
top related