microsoft docker meetup - tutum spring 2015
TRANSCRIPT
@tutumcloud tutum.co [email protected]
+
• CEO @ Tutum • Computers, gadgets, hardware… • Telecom, cloud, security… • Started using docker v0.4 • CaaS in Fall 2013 w/ docker v0.6 • Container Platform in Fall 2014
ABOUT ME
@tutumcloud
What is Tutum?
@tutumcloud
Develop Deploy ManageBuild
@tutumcloud
Develop Deploy ManageBuild
CI CD
Code repo
Image repo
Monitoring
Logging
Scaling
Networking
Storage
Service Discovery
Composability
Security
Many Hosts Public Cloud Private CloudAcross: Environments
@tutumcloud
Develop Deploy ManageBuild
CI CD
Code repo
Image repo
Monitoring
Logging
Scaling
Networking
Storage
Service Discovery
Composability
Security
Many Hosts Public Cloud Private CloudAcross: Environments
Develop Deploy ManageBuild
CI CD
Code repo
Image repo
Monitoring
Logging
Scaling
Networking
Storage
Service Discovery
Composability
Security
Many Hosts Public Cloud Private CloudAcross: Environments
TUTUM CONTAINER PLATFORM
TUTUM CONTAINER PLATFORM
Any application
Any infrastructureManagedSimple Flexible
Hybrid/Agnostic
Any Operating
System
Containers +
Other
@tutumcloud
• Public beta • 250,000+ containers deployed on 19,000+ nodes (VMs/hosts) around the World
TUTUM TODAY
@tutumcloud
on
Global presence
11 different regions Worldwide
on
VM-type portfolio
21 different VM types supported
16 CPUs 112 GB RAM
1 CPU 750 MB RAM
on
on
How does it work?
I need 1 small node for staging
on
How does it work?
Staging
on
How does it work?
Deploy my app to Staging
Staging
on
How does it work?
I need 3 large nodes for production
Staging
Production
on
How does it work?
Deploy my app to staging with a load balancer
and make it highly available
Staging
Production
on
1-click Docker Upgrades
Overlay Network
Aggregate-loggingScaling
Monitoring
Image Cleanup
Service Discovery
Log rotation
Continuous Delivery
Free Private Image Registry
Data Volumes0-downtime deployments
Stacks + Docker Compose
docker build
docker exec*
*
on
DEMO
CACHE
APP
LB
LOGICAL REPRESENTATION
@tutumcloud
on
DEMO
STAGING
AZURE A2
CACHE
APP
LB
LOGICAL REPRESENTATION
PRODUCTION
AZURE D3 AZURE D3 AZURE D3
on
Auth/Access DeployConfigure
Behind the scenes: Tutum provisioning infrastructure on Azure
@tutumcloud
on
1. Generate certificate 2. Download certificate 3. Upload certificate
1. Auth/Access
on
network = ConfigurationSet() network.input_endpoints.input_endpoints.append( ConfigurationSetInputEndpoint("docker", "tcp", "2375", "2375")) network.input_endpoints.input_endpoints.append( ConfigurationSetInputEndpoint("weave_tcp", "tcp", "6783", "6783")) network.input_endpoints.input_endpoints.append( ConfigurationSetInputEndpoint("weave_udp", "udp", "6783", "6783")) network.input_endpoints.input_endpoints.append( ConfigurationSetInputEndpoint("ssh", "tcp", "22", "22"))
2. Configure
a. Create new Azure Cloud Service b. Upload custom data (aka cloud-init) c. Create OS Storage + Data Storage d. Configure initial firewall configuration
on
#!/bin/bashset -o pipefail
if [ ! -f /var/lib/docker/.tutum-ebs ] && [ -b /dev/sdc ]; then echo "Formatting new data volume and mounting in /var/lib/docker..." echo -e "o\nn\np\n1\n\n\nw" | fdisk /dev/sdc mkfs -t ext4 /dev/sdc1 mkdir -p /var/lib/docker sed -i "/^\/dev\/sdc/d" /etc/fstab echo "/dev/sdc1 /var/lib/docker ext4 defaults,nofail 0 2" >> /etc/fstab mount -a touch /var/lib/docker/.tutum-ebsfi
MAX_RETRIES=10
echo "Installing tutum-agent..."mkdir -p /var/log/tutumretries_counter=1while :do curl -LSs --retry 30 --retry-delay 10 --connect-timeout 10 {{ NodeProvisioningScript }} 2> /var/log/tutum/install.log | sh -s {{ TutumToken }} {{ TutumUUID }} {{ CertCommonName }} >> /var/log/tutum/install.log 2>&1 RET=$? if [ "$RET" != "0" ] then if [ $retries_counter -le $MAX_RETRIES ] then (( retries_counter += 1 )) else echo "Max retries reached. Aborted." break fi echo "Failed to cURL node provision script with error $RET. Retrying in 5 seconds..." sleep 5 else
set-up /var/lib/docker
install tutum-agent
3. Deploy VM
on
DEMO
CACHE
APP
LB
LOGICAL REPRESENTATION
@tutumcloud
on
DEMO
STAGING
AZURE A2
CACHE
APP
PRODUCTION
AZURE D3 AZURE D3 AZURE D3
CACHE
APP
LB
LOGICAL REPRESENTATION PHYSICAL REPRESENTATION
@tutumcloud
on
DEMO
STAGING
AZURE A2
CACHE
APP
PRODUCTION
AZURE D3 AZURE D3 AZURE D3
APP APP
APP CACHE
APP
APP
APP
LB
CACHE
APP
LB
LOGICAL REPRESENTATION PHYSICAL REPRESENTATION
@tutumcloud
on
Continuous Delivery
Git push
Staging
Build Deploy
@tutumcloud
DEMO
@tutumcloud tutum.co [email protected]
thank you