The document discusses modern elastic datacenter architecture using Apache Mesos and DC/OS. It provides an introduction to Mesos and DC/OS, explaining how they allow building scalable, fault-tolerant distributed systems. It outlines the benefits of using Mesos and DC/OS, and describes how the speakers have implemented a solution using tools like Packer, Terraform, Ansible, and DC/OS to achieve scalability, automation, and high availability. Demos are presented on deploying and managing applications with DC/OS tools like Marathon and running Spark frameworks.
2. What We Will Discuss
● Elastic Modern Datacenter Architecture
● Quick Introduction to Apache Mesos
● Benefits of Mesos
● Versions
● Why we chose this
● Our Full Solution to Elastic Datacenter
● Demos!!!!
○ Deployment Process
○ A look Around DCOS
○ Orchestrating Apps with Marathon
○ Jenkins CI/CD
○ Running Spark
● Ways To Get Started
2
3. Who We Are
Weston Bassler, Sr SysEng, Cotiviti - Multiple years experience in automation and
Cloud Technologies. Current main focuses around microservices architecture, big data
and automation of all things. (RHCSA, LFCS)
Justin Miller, Sr SysEng, Cotiviti - Hadoop and Big Data Expert with multiple years
experience with high performance distributed systems and java development. Current
main focuses around Spark and multiple other big data components. (CCAH, DCCA)
Tech we have been working on in 2016: AWS, CloudForms, Cloudera, Apache Mesos,
Ansible, Spark, Cassandra, ElasticSearch, StreamSets, Terraform, Packer, Linux (of
course)… on and on...
3
4. Modern Elastic Datacenter Architecture
● Our Vision and What We Would Like to See
○ Speed up ALL aspects of Development and Operations
○ Create High Availability for Infras and Apps
○ Automation of ALL things… Eliminate ALL manual
○ Scalability of All Services -> Up or Down
○ Repeatability and Reliability
○ Declutter and Simplify -> Untangle the mess and complexity of Managing Infra and Apps
○ All workloads coexist -> Big Data, Web Apps, DBs, Other apps
○ Increased Security
○ Staying Agnostics and being able to move out fast
● How do we achieve this?
4
6. Apache Mesos Explained
● What exactly is Mesos?
○ From mesos.apache.com - “Apache Mesos abstracts CPU, memory, storage, and other compute
resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed
systems to easily be built and run effectively.”
○ Cluster Manager (distributed systems kernel) -> 1 Huge Computer
○ Use of “containerizers” for services
● Master/Slave Architecture
○ Zookeeper elects a Leader
○ Masters tell the Agents(s) what to do
○ Agents(s) are the “workers” and doing all the heavy lifting
● Frameworks Manage Tasks/Services
6
9. Benefits of Mesos
● Get the most out of your infrastructure -- Utilization = $$$$$
● High Availability / Fault Tolerance / Peace of Mind
● Containers! -> Speed, Flexibility, Isolation, Docker
● Scalability -> Infra and Apps
● Ease of Use -> Web UI for ALL & Native Clusterting
● Use of Frameworks -> HDFS, Kubernetes, Marathon, Spark, Write your own…
○ Big Data and Microservice Harmony
● APIs for All the Things
● Write Software against your DC
Sound Familiar? Hits almost every aspect of Our Vision
9
10. Versions for Running Mesos
Open Source Apache Mesos DCOS Open DCOS Enterprise
● Completely Open
● Bare Bones
● Mesos UI
● Have to Install All
Frameworks
● Everything from Open Source
Mesos
● DCOS UI
● DCOS CLI
● Auth using oAuth
● Private & Public Agents
● Bootstrap Install/Upgrade
● Built in Marathon
● Universe Package Manager
● Tons of Built in features for
SD, DNS, Exhibitor, VIPs
● Awesome Community
● Everything from DCOS Open
● Vendor Support
● Added Security such as SSL,
Service Groups, Secrets, ACLs
● LDAP/AD
● SSL for Frameworks
10
11. Reasons for Choosing DCOS
● Speed of Deployment and Development
● Move away from Monolith
● PaaS
● Run Big Data Workloads alongside Microservices -> Kafka & Spark alongside
Scala and Web Apps (We have lots of Awesome Data)
● Scale on Demand
● Provide Reliability and HA for Apps and Processing
● Run anywhere -> Bare Metal, Cloud, Hybrid, Mix it up
● Automation of All the Things
● Tons of awesome features out of the box -> Security, SSL, SD, DNS, VIPs, etc...
11
12. Our Solution to Modern Elastic Architecture
● Packer -> For building our machine templates
● Terraform -> for provisioning, upgrading, scaling and rebuilding all aspects of
infra.
● Ansible -> configuration management
● Cloud -> platform for our infrastructure (Current Hybrid: AWS & VMware)
● DCOS -> Platform for Apps and Processing
● Linux -> Current CentOS 7. CoreOS or Ubuntu in the future?
● Gitlab -> Code repo with Webhooks
● Others: ElasticSearch w/ Beats
12
13. Demos!!!!
● Deployment Process -> Packer & Terraform
● Taking a Look Around DC/OS -> Admin UI and CLI
● Marathon
● Jenkins CI/CD
● Running Spark on DC/OS
13
14. Packer for Building Machine Images
● Creating machine and container images across multiple platforms
● Part of our Infrastructure as Code
● Used for OS Versioning and Patching
● Automate All the CONSISTENT Things
● Cuts down deployment Process drastically → Eliminate anything possible
14
15. Terraform Managing Infrastructure
● Part of our Infrastructure as Code -> All aspects of Infrastructure
● Plan, Apply, Destroy -> Completely Automate
● TONs of Cloud Providers
● Node Failure? Terraform to the Rescue
● Integrate with Git to keep track of State
15
16. DCOS UI
● Dashboard of Cluster
● Services List
● Agent Status with Resource Utilization
● Universe Package Manager -> Install, Configure and/or remove Packages
● System Health Checks for all Components of Cluster
● Proxy to All Things -> Mesos & Exhibitor
Demo Links:
● DC/OS UI Part 1
● DC/OS UI Part 2
16
17. Marathon
● Init System For DCOS for Services and Tasks
● Keeps everything HA
● GUI and JSON Input
● Health Checks
● Stateful Apps
Demo Link:
● Intro to Deploying to Marathon
17
18. Jenkins CI/CD
● Master / Slave Architecture -> Jenkins Slaves run the jobs in Docker
● Custumize
● Integrate with Gitlab
● WebHooks
Demo Link:
● Jenkins with Gitlab integration with Deployment to Marathon
18
19. Running Spark
● The first Framework Developed for Mesos
● DCOS CLI for submitting jobs
● Run in Spark jobs in Docker
● S3 and HDFS (on or external DCOS)
● Zepplin Package for some Data Exploration
Demo Link:
● Spark on HDFS using Zepplin Notebooks
19