Building GoDaddy.com’s Compute Cloud

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

Cloud computing is used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication.
CloudStack Scalability Testing, Development, Results, and Futures Anthony Xu Apache CloudStack contributor.
SLA-Oriented Resource Provisioning for Cloud Computing
1 NETE4631 Cloud deployment models and migration Lecture Notes #4.
Apache CloudStack Evolution Proposal Alex Huang Software Architect, Citrix Systems.
Google App Engine Cloud B. Ramamurthy 7/11/2014CSE651, B. Ramamurthy1.
Introduction to DoC Private Cloud
VM Role (PaaS)Virtual Machine (IaaS) StorageNon-Persistent StoragePersistent Storage Easily add additional storage DeploymentBuild VHD offsite and upload.
Additional SugarCRM details for complete, functional, and portable deployment.
Yury Kissin Infrastructure Consultant Storage improvements Dynamic Memory Hyper-V Replica VM Mobility New and Improved Networking Capabilities.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 7 2/23/2015.
Windows Azure Virtual Machines Speaker Title Organization.
Raffaele Di Fazio Connecting to the Clouds Cloud Brokers and OCCI.
Chapter 8 Implementing Disaster Recovery and High Availability Hands-On Virtual Computing.
608D CloudStack 3.0 Omer Palo Readiness Specialist, WW Tech Support Readiness May 8, 2012.
@CloudOps_www.cloudops.com Swift UI in CloudStack with Single Sign-On CloudStack Collaboration Conference 2012.
Microsoft Virtual Academy Module 8 Managing the Infrastructure with VMM.
Lugano Microsoft Azure Overview Ken Casada Technical Evangelist Microsoft Switzerland
Tonido Cloud Private, Highly Scalable, Self-Hosted Cloud Storage/Sync Solution.
Server Performance, Scaling, Reliability and Configuration Norman White.
GAAIN Virtual Appliances: Virtual Machine Technology for Scientific Data Analysis Arihant Patawari USC Stevens Neuroimaging and Informatics Institute July.
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
DoC Private IaaS Cloud Thomas Joseph Cloud Manager
System Center Lesson 4: Overview of System Center 2012 Components System Center 2012 Private Cloud Components VMM Overview App Controller Overview.
Zvezdan Pavković. Storage Non-Persistent Storage Persistent Storage Easily add additional storage. Networking Internal and Input Endpoints configured.
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
ICM – API Server Gary Ratcliffe. 2 Agenda Webinar Programme API Server Overview JSON-RPC iCM API Service API Server and Forms New services under.
National IT Industry Promotion Agency E-document System Team.
Windows Azure IaaS and How It Works Corey Sanders Principal Program Manager Lead Microsoft Corporation AZR201.
On Premises Storage Servers Networking O/S Middleware Virtualization Data Applications Runtime You manage Infrastructure (as a Service) Storage Servers.
Lattelecom | Cloud Pakalpojums. 2 | Lattelecom Cloud Platform: Competitive Advantages 3 Hardware infrastructure User Control Panel Customer self-service.
PHD Virtual Technologies “Reader’s Choice” Preferred product.
Apache CloudStack An Introduction Kevin Kluge
ADVANCED HOSTING Adrian Newby, CTO.
Windows 2012R2 Hyper-V and System Center 2012
Virtualization for Cloud Computing
Going Serverless with AWS Lambda
Building ARM IaaS Application Environment
RHEV Platform at LHCb Red Hat at CERN 17-18/1/17
Global Search: An Introduction and Administrator Perspective
Simulating back-end services
Azure Architect – IaaS or PaaS?
Project Target Develop a Web Based Management software suit that will enable users to control Hardware using standard HTTP & Java Applet compatible web.
BEST CLOUD COMPUTING PLATFORM Skype : mukesh.k.bansal.
Platform as a Service (PaaS)
DocFusion 365 Intelligent Template Designer and Document Generation Engine on Azure Enables Your Team to Increase Productivity MICROSOFT AZURE APP BUILDER.
CloudStack 4.0 (Incubating)
Web Development Web Servers.
Web Hosting with OpenShift
Cloud Data platform (Cloud Application Development & Deployment)
Enrico Bonaccorsi, (CERN) Loic Brarda, (CERN) Gary Moine, (CERN)
VIDIZMO Deployment Options
Chapter 18 MobileApp Design
Representational State Transfer
Module 3 Building a web app.
02 | Design and implement database
Hosting Mzd is now offering Web hosting Services and Domain Names.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
HC Hyper-V Module GUI Portal VPS Templates Web Console
UCP v2 Software Infrastructure
Features Overview.
PerformanceBridge Application Suite and Practice 2.0 IT Specifications
Q/ Compare between HTTP & HTTPS? HTTP HTTPS
HC VMware Module
Client/Server Computing and Web Technologies
Client/Server Computing and Web Technologies
Microsoft Azure Services Platform
Presentation transcript:

Building GoDaddy.com’s Compute Cloud - Darren Shepherd, OSCON 2012

About Me – Darren Shepherd Long time Linux user (since 1998?) Absolutely love Xen and Virtualization Happen to program Java Working for GoDaddy.com for about 2 years (since 2010) Lead back-end developer for Cloud Servers Prefers writing code over writing slides

Overview GoDaddy.com Cloud Servers Product Software Architecture Messaging/Orchestration

GoDaddy.com Go Daddy is the world's largest domain name registrar and Web hosting provider More than 53 million domain names under management More than 10.4 million customers DNS, SSL, Web Hosting, VPS, Dedicated, Cloud Servers Go Daddy has more than 40 product offerings

Go Daddy Cloud Servers - Product Focus on usability and simplicity Target SMB's, small development shops, etc.

Go Daddy Cloud Servers - Details Up to 16GB of RAM 40GB root disk Up to 1.2TB of additional storage can be added Ubuntu 12.04, Fedora 16, CentOS 5.8/6.2, Windows Server 2008R2 Networking Private L2 Assign multiple IP's to a network Load Balancing and Port Forwarding Source IP filtering VPN Storage Snapshot/Restore Volume from Snapshot Custom Templates

Control Panel

REST API “Curl Compatible” JSON/HTTPS HTTP Basic Auth Friendly URL's /v1/virtualmachines /v1/virtualmachines/42/volumes Hypermedia as the Engine of Application State (HATEOAS) Introspection capabilities through /v1/schemas HTML REST API UI URL encoded and multipart forms support curl -d 'name=myvm&templateId=42' -X POST … curl -F 'name=myvm -F 'templateId=42' -X POST ...

API - Raw Response

API – When browser is detected

What is this thing made of? Started development 2 years ago with Cloudstack Went live one year ago with a mostly Cloudstack cloud UI and Storage changed Over the last year as we optimized and tailored Cloudstack we've taken a different architectural direction At this point most of Cloudstack has been replaced Future plans – either Open source what we have Converge with a another open source cloud stack

Software Stack PHP – UI Java – Backend Spring, Hibernate, Jackson, and tons of Apache libraries Node.js – Network oriented services or agents

System Engineering Compute Citrix XenServer – PVGRUB and HVM for Windows Networking VLAN's Custom VLAN bridging appliance Storage VHD on NFS

Basics of a Cloud Compute Provisioning Platform Other technologies provide implementation of Compute, Storage, Networking A good platform should at least Provide a good abstraction model Reliably provision resources Recover when possible Fail gracefully when possible Or just fail otherwise

We had two approaches for service orchestration Synchronous create_volume(); setup_network(); start_vm(); JMS Based Workflow

Our Apache ActiveMQ HA Setup

Our Event Driven Architecture No guarantee that events will be received Events should be idempotent Events should not be queued Events should be resent until state is reconciled System is series of states that must be reconciled Desired state should be recorded Services update state or send events indication state should be updated Locks ensure no event single is processed concurrently Crash-only design

Redis & Zookeeper Redis provides basic PUB/SUB Provides almost no features, which is great Zookeeper works as a distributed lock manager

Main loop API service records requested state to DB Sends Redis event to process change Main Loop reads state from DB on interval or triggered from event Main Loop sends events to other systems

Real Architecture About 20-30 events are fired to start a VM

Done, let's have lunch... or Q&A