Factors Driving Cloud
                        Adoption


  Patrick Chanezon
  Developer Relations Manager, Cloud & Apps
  chanezon@google.com                         C4I AFCEA Symposium
  http://twitter.com/chanezon                 May 23 2010
                                                               2

Thursday, May 26, 2011
P@ in a slide



                         • Software Plumber, mix of Enterprise and
                          Consumer

                           • 18 years writing software, backend guy with
                             a taste for javascript

                           • 2 y Accenture (Notes guru), 3 y Netscape/
                             AOL (Servers, Portals), 5 y Sun
                             (ecommerce, blogs, Portals, feeds, open
                             source)

                         • 6 years at Google, API guy (first hired, helped
                          start the team)

                           • Adwords, Checkout, Social, HTML5, Cloud

Thursday, May 26, 2011
P@ & Military Software


    1993 - Software metrics Dod-Std-2167A




  1994 - C3I




Thursday, May 26, 2011
Architecture Changes: 60’s Mainframe




Thursday, May 26, 2011
Architecture Changes: 80’s Client-Server




Thursday, May 26, 2011
Architecture Changes: 90’s Web




Thursday, May 26, 2011
Architecture Changes: 2010’s Cloud, HTML5, Mobile




Thursday, May 26, 2011
Hype warning: Cloudy, with a chance of real innovation




                         Source: Gartner (August 2009)
                                                              8

Thursday, May 26, 2011
Cloud started at Consumer websites solving their needs
   • Google, Amazon, Yahoo, Facebook, Twitter
   • Large Data Sets
   • Storage Capacity growing faster than Moore’s Law
   • Fast Networks
   • Horizontal -> Vertical scalability
   • Open Source Software
   • Virtualization
   • Cloud is a productization of these infrastructures
        • Public Clouds Services: Google, Amazon
        • Open Source Software: Hadoop, Eucalyptus, Cloud Foundry
Thursday, May 26, 2011
Cloud, according to my daughter




                                       10

Thursday, May 26, 2011
Cloud Computing Categories




                         SaaS

                         PaaS


                         IaaS

                                    Source: Gartner AADI Summit Dec 2009
                                             Google Developer Day 2010
Thursday, May 26, 2011
Cloud Computing Categories




                         SaaS

                         PaaS


                         IaaS

                                    Source: Gartner AADI Summit Dec 2009
                                             Google Developer Day 2010
Thursday, May 26, 2011
Cloud Computing Categories




                         SaaS

                         PaaS


                         IaaS

                                    Source: Gartner AADI Summit Dec 2009
                                             Google Developer Day 2010
Thursday, May 26, 2011
Cloud Computing Categories




                         SaaS

                         PaaS


                         IaaS

                                    Source: Gartner AADI Summit Dec 2009
                                             Google Developer Day 2010
Thursday, May 26, 2011
Infrastructure culture
      • Larry and Serguey’s 1998 paper ”The Anatomy of a Large-Scale
         Hypertextual Web Search Engine"
         • http://infolab.stanford.edu/~backrub/google.html

      • Other Google Research papers since then
          • http://research.google.com/pubs/papers.html

      • Build on the shoulders of giants
      • Custom stack made of standards parts: machines, linux, servers
      • Standard infrastructure: sharding, GFS, MapReduce, BigTable
      • Google App Engine: easy cloud, for Googlers and others
         developers

      • Standard languages: c/c++, java, python
      • Horizontal scalability: parallel and asynchronous whenever possible
Thursday, May 26, 2011
Programming the Cloud – The Google Way
      • Fault tolerant distributed storage: Google File System
      • Distributed shared memory: Bigtable
      • New programming abstractions: MapReduce
      • Domain Specific Languages: Sawzall




            Google.stanford.edu (Circa 1997)                                              Current Rack Design

                                               © 2008 Google, Inc. All rights reserved,                         13


Thursday, May 26, 2011
Fault Tolerant Distributed Disk Storage: GFS
      • Data replicated 3 times. Upon failure, software re-replicates.
      • Master: Manages file metadata. Chunk size 64 MB.
      • Optimized for high-bandwidth sequential read / writes
      • Clusters > 5 PB of disk
                                                                                            Client
                                                GFS Master
                                                                                            Client



                         C0   C1              C1                               C0    C5

                         C5   C2     C5       C3               …                     C2
                    Chunkserver 1   Chunkserver 2                           Chunkserver N


                http://research.google.com/archive/gfs-sosp2003.pdf
                                          © 2008 Google, Inc. All rights reserved,                   14


Thursday, May 26, 2011
Distributed Shared Memory: Bigtable

      • Sparse, distributed, persistent, multidimensional, sorted
      • Not a relational database (RDBMS): no schema, no joins,
        no foreign key constraints, no multi-row transactions
      • Each row can have any number of columns, similar to a
        dictionary data structure for each row.
      • Basic data types: string, counter, byte array
      • Accessed by row key, column name, timestamp
      • Data split into tablets for replication
      • Largest cells are > 700TB


                http://research.google.com/archive/bigtable-osdi06.pdf
                                       © 2008 Google, Inc. All rights reserved,   15


Thursday, May 26, 2011
Datastore layers




                               Complex   Entity Group   Queries on   Key range   Get and set
                               queries   Transactions   properties   scan        by key


                               ✓         ✓              ✓            ✓           ✓
                   Datastore




                                         ✓              ✓            ✓           ✓
                   Megastore




                                                                     ✓           ✓
                   Bigtable




      16



Thursday, May 26, 2011
Megastore API
     • “Give me all rows where the column ‘name’ equals ‘ikai’”
     • “Transactionally write an update to this group of entities”
     • “Do a cross datacenter write of this data such that reads will be
       strongly consistent” (High Replication Datastore)
     • Megastore paper: http://www.cidrdb.org/cidr2011/Papers/
       CIDR11_Paper32.pdf




      17



Thursday, May 26, 2011
Programming Abstraction: MapReduce
      • Represent problems as Map and Reduce step (inspired by
        functional programming)
      • Distribute data among many machines, execute same
        computation at each machine on its dataset
      • Infrastructure manages parallel execution
      • Open source implementation: Hadoop
                                                                                  I npu t            Da t a
           map(in_key, data)
             list(key, value)                                                     Map       Map      Map
                                                                                  Task 1    Task 2   Task 3
           reduce(key, list(values))
            list(out_data)                                                                  key
                                                                                  Sort &             Sort &
                                                                                  Group              Group
                                                                                  Reduce             Reduce
                                                                                  Task 1             Task 2
                   http://research.google.com/archive/mapreduce.html
                                       © 2008 Google, Inc. All rights reserved,                               18


Thursday, May 26, 2011
Language for Parallel Log Processing: Sawzall
      • Commutative and associative operations allow parallel
        execution and aggregation
      • Language avoids specifying order by replacing loops with
        quantifiers (constraints)




       count: table sum of int;                              function(word: string): bool {
       total: table sum of float;                              when(i: some int;
       x: float = input;                                            word[i] != word[$-1-i])
                                                                 return false;
       emit count <- 1;                                        return true;
       emit total <- x;                                      };



                         http://labs.google.com/papers/sawzall.html
                                          © 2008 Google, Inc. All rights reserved,            19


Thursday, May 26, 2011
Internet as a Platform: The Challenges

      Architect’s Dream

    •Loosely coupled
    •Extensible
    •Standards-based
    •Fault tolerant
    •Unlimited computing
     power
    •Ubiquitous


                           © 2008 Google, Inc. All rights reserved,   20


Thursday, May 26, 2011
Internet as a Platform: The Challenges

      Architect’s Dream                       Developer’s Nightmare

    •Loosely coupled                         •NO Call Stack

    •Extensible                              •NO Transactions
    •Standards-based                         •NO Promises
    •Fault tolerant                          •NO Certainty
    •Unlimited computing                     •NO Ordering
     power                                    Constraints
    •Ubiquitous


                           © 2008 Google, Inc. All rights reserved,   20


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic
       • Consistent




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic
       • Consistent
       • Isolated




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic
       • Consistent
       • Isolated
       • Durable




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic                                 • Associative
       • Consistent
       • Isolated
       • Durable




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic                                 • Associative
       • Consistent                             • Commutative
       • Isolated
       • Durable




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic                                 • Associative
       • Consistent                             • Commutative
       • Isolated                               • Idempotent
       • Durable




                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                         ACID (today)
       • Atomic                                 • Associative
       • Consistent                             • Commutative
       • Isolated                               • Idempotent
       • Durable                                • Distributed



                         © 2008 Google, Inc. All rights reserved,   21


Thursday, May 26, 2011
New Game Rules

       ACID (before)                                 ACID (today)
       • Atomic                                         • Associative
       • Consistent                                     • Commutative
       • Isolated                                       • Idempotent
       • Durable                                        • Distributed

                    Predictive                                         Flexible
                    Accurate                                          Redundant
                                 © 2008 Google, Inc. All rights reserved,         21


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…




                          © 2008 Google, Inc. All rights reserved,   22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink

       Coffee maker breaks

       Customer cannot pay

                             © 2008 Google, Inc. All rights reserved,   22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink                              Remake drink

       Coffee maker breaks

       Customer cannot pay

                             © 2008 Google, Inc. All rights reserved,     22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink                              Remake drink

       Coffee maker breaks                                 Refund money

       Customer cannot pay

                             © 2008 Google, Inc. All rights reserved,     22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink                              Remake drink

       Coffee maker breaks                                 Refund money

       Customer cannot pay                                 Discard beverage

                             © 2008 Google, Inc. All rights reserved,         22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink                              Remake drink
                                                           Retry
       Coffee maker breaks                                 Refund money

       Customer cannot pay                                 Discard beverage

                             © 2008 Google, Inc. All rights reserved,         22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink                              Remake drink
                                                           Retry
       Coffee maker breaks                                 Refund money
                                                           Compensation
       Customer cannot pay                                 Discard beverage

                             © 2008 Google, Inc. All rights reserved,         22


Thursday, May 26, 2011
Starbucks Does not Use 2-Phase Commit Either

      •Start making coffee before customer pays
      •Reduces latency
      •What happens if…


       Customer rejects drink                              Remake drink
                                                           Retry
       Coffee maker breaks                                 Refund money
                                                           Compensation
       Customer cannot pay                                 Discard beverage
                                                           Write-off
                             © 2008 Google, Inc. All rights reserved,         22


Thursday, May 26, 2011
Commoditization of distributed computing concepts & tools
   • Languages: Erlang concepts -> Go, Scala
   • NoSQL Zoo: BigTable, HBase, MongoDB, Reddis, Cassandra
   • Map/Reduce: Apache Hadoop
   • Paxos, Eventual Consistency, CAP Theorem
   • REST, statelessness, idempotency




Thursday, May 26, 2011
Economic Drivers
   • Proportion of electricity in cost of computing
   • Product -> Service
   • Economies of Scale
   • Moore’s Law
   • Pay as you go utility model




Thursday, May 26, 2011
Cultural Drivers
   • Expectations of corporate IT customers have changed
   • Consumerization of IT
   • Consumer apps more and more like fashion
   • Technology achieves ubiquity by disappearing




Thursday, May 26, 2011
Thursday, May 26, 2011
Access from Anywhere


Thursday, May 26, 2011
Thursday, May 26, 2011
Scales Up, Scales Down, with
    Demand


Thursday, May 26, 2011
Thursday, May 26, 2011
Innovation Not Administration


Thursday, May 26, 2011
Cultural Drivers: Agility
   • Waterfall -> Agile methodologies
   • Cloud enables an Agile culture, driver for innovation



                                                       1




               http://www.yourdomain.com/
Thursday, May 26, 2011
Fail often, fail quickly, and learn




Thursday, May 26, 2011
Fail often, fail quickly, and learn

      • Risk taking/Experimentation is encouraged
        • http://blog.red-bean.com/sussman/?p=96
      • “Do not be afraid of day-to-day failures — learn from them. (As they
         say at Google, “don’t run from failure — fail often, fail quickly, and
         learn.”) Cherish your history, both the successes and mistakes. All of
         these behaviors are the way to get better at programming. If you don’t
         follow them, you’re cheating your own personal development.”

      • Ben Collins-Sussman (Subversion, code.google.com)




Thursday, May 26, 2011
Agile Development Processes




Thursday, May 26, 2011
Agile Development Processes

      • Influences from XP, Agile, Scrum
      • Code reviews
      • Test Driven Development: Testing on the Toilets program and blog
      • Many internal development tools: Mondrian recently open sourced
      • Changed the meaning of beta
      • Teams co-located: 3-15 people, 4/cubicle, all close to each other
      • International offices: manage whole projects, avoid coordination costs




Thursday, May 26, 2011
Open Source Culture




Thursday, May 26, 2011
Open Source Culture

      • Open Source Program Office
      • Summer of Code
      • Open sourcing parts of Google code
        • http://code.google.com/
      • Making the web better: GWT, Gears, OpenSocial, Android




Thursday, May 26, 2011
API Culture




Thursday, May 26, 2011
API Culture

      • Bill Joy: "Innovation happens elsewhere"
      • From 3 to 62 APIs in 3 years
      • Maps on websites
      • Friend Connect: all sites can become social
         • http://code.google.com/ for the list
      • Build an ecosystem around the APIs (my job)
      • User's choice: get their data out




Thursday, May 26, 2011
Data Liberation Front        http://www.dataliberation.org/




       Users should be able to control the data they store in any
       of Google's products. Our team's goal is to make it
       easier to move data in and out.
Thursday, May 26, 2011
Google Cloud Products




Thursday, May 26, 2011
Google's Cloud Offerings

                                1. Google Apps
                                2. Third party Apps:
                                   Google Apps Marketplace
                         SaaS   3. ________


                                         Google App Engine
                         PaaS

                                             Google Storage
                         IaaS                 Prediction API
                                                  BigQuery

                                           Google Developer Day 2010
Thursday, May 26, 2011
Google's Cloud Offerings
         Your Apps
                                1. Google Apps
                                2. Third party Apps:
                                   Google Apps Marketplace
                         SaaS   3. ________


                                         Google App Engine
                         PaaS

                                             Google Storage
                         IaaS                 Prediction API
                                                  BigQuery

                                           Google Developer Day 2010
Thursday, May 26, 2011
How Google Apps Adds Value

                         Productivity and Innovation
                         Realtime collaboration, constant updates,
                         new features




                         Platform Independence
                         Work anywhere from any computer or mobile
                         device




                         Reduced IT Complexity
                         Least complex, least expensive to license and
                         manage


   41



Thursday, May 26, 2011
How Google Apps Adds Value

                         Security and Availability
                         Same uptime and infrastructure used for
                         Google products



                         Built-in Enterprise Security
                         Features
                         2-Factor Authentication, Single Sign On,
                         Reporting Tools




   42



Thursday, May 26, 2011
How Google Apps Adds Value

                         Security and Availability
                         Same uptime and infrastructure used for
                         Google products



                         Built-in Enterprise Security
                         Features
                         2-Factor Authentication, Single Sign On,
                         Reporting Tools
                         A Toolbox of Administrative
                         APIs
                         Reporting, Compliance, Identity Management
                         and more...


   42



Thursday, May 26, 2011
Why Google App Engine?



                 • Easy to build
                 • Easy to maintain
                 • Easy to scale




Thursday, May 26, 2011
Cloud Development in a Box

   • Downloadable SDK
   • Application runtimes
      o Java, Python
   • Local development tools
      o Eclipse plugin, AppEngine
        Launcher
   • Specialized application
     services
   • Cloud based dashboard
   • Ready to scale
   • Built in fault tolerance, load
     balancing




Thursday, May 26, 2011
Specialized Services


                 Memcache        Datastore    URL Fetch




                 Mail             XMPP        Task Queue




                 Images          Blobstore     User Service




Thursday, May 26, 2011
Language Runtimes




Thursday, May 26, 2011
App Engine Growth




       2008                           2009                            2010                     2011

   App Engine Launch     Batch write/read        Java      Task Queues    Blobstore      Multitenancy Hi-Replication
               Python               Https    DB Import           XMPP      Appstats Instance Console       Datastore
             Datastore            Status-         cron   incoming email      cursors       Always On    Channel API
           Memcache           Dashboard                                     Mapper         hi-perf imag     Files API
           logs export                                                                    10 min tasks   Remote API
                                                                                                        Prosp Search




Thursday, May 26, 2011
By the Numbers



             100,000
             Active Developers
             per Month

Thursday, May 26, 2011
By the Numbers




                  200,000
                  Active apps per
                  week


Thursday, May 26, 2011
By the Numbers




               1.5B
               Pageviews per
               day

Thursday, May 26, 2011
Some App Engine Partners




Thursday, May 26, 2011
Google Cloud In the Government sector




Thursday, May 26, 2011
Google is Committed to Meeting the
    Add'l Challenges of Governments
                         Google Apps for Government
                         • Government only cloud in dedicated CONUS
                           facilities
                         • Government pricing (GSA Schedule 70)

                         ATO Issued by GSA
                         • Certification & Accreditation based on Federal
                           Information Systems Management Act (FISMA)
                         • FIPS 199 Moderate baseline

                         Leader in Public Sector Cloud
                         Computing
                         •   General Services Administration, USAID, Dept of Energy,
                             Colorado, New Mexico, Orlando, Los Angeles, Treasury,
                             Multonomah County, Smithsonian, Tennessee Valley Authority,
                             ACUS, MACPAC, Wyoming


Thursday, May 26, 2011
Select DoD Customers
                         Requirements
                          • Provide common platform for non-classified collaboration
                         The Solution
                          •   Implement Google Apps (eushare.org) to support unclassified
                              communication and coordination across 51 countries throughout the Area
                              of Responsibility
                          •   Used during planning, execution, and after-action reporting of
                              X24Europe, a recent global exercise


                         Requirements
                          • Provide common platform to support HA/DR mission area
                         The Solution
                          •   Implement Google Apps (InRelief.org) to support cross-country, cross-
                              language collaboration; Includes consolidation of social networking
                              signals


                         Requirements
                          • Provide messaging platform for families to connect with deployed service
                             members
                         The Solution
                          •   Garrison Commander's toolkit for communicating to troops and their
                              families.




Thursday, May 26, 2011
Factors to consider for picking a Cloud
   • Price
   • Type: Iaas, Paas, Saas
   • Type of task: Apps, Big Data
   • Public/Private/Hybrid
   • Lock-In: Standards, Open Source




Thursday, May 26, 2011
Issues to solve
   • Cloud Interop: lack of standard
   • Replication of Data across multiple Clouds
   • Data privacy/integrity
        • encryption at rest
        • data auditing
    • Trust, Culture of agility




Thursday, May 26, 2011
Google Cloud Clients
   • Chrome, HTML5
   • ChromeBook, Device as a service $28/user/month
   • Android: phone and tablets




Thursday, May 26, 2011
Q&A




                         58

Thursday, May 26, 2011

AFCEA C4I Symposium: The 4th C in C4I Stands for Cloud:Factors Driving Adoption of Cloud Computing

  • 1.
    Factors Driving Cloud Adoption Patrick Chanezon Developer Relations Manager, Cloud & Apps chanezon@google.com C4I AFCEA Symposium http://twitter.com/chanezon May 23 2010 2 Thursday, May 26, 2011
  • 2.
    P@ in aslide • Software Plumber, mix of Enterprise and Consumer • 18 years writing software, backend guy with a taste for javascript • 2 y Accenture (Notes guru), 3 y Netscape/ AOL (Servers, Portals), 5 y Sun (ecommerce, blogs, Portals, feeds, open source) • 6 years at Google, API guy (first hired, helped start the team) • Adwords, Checkout, Social, HTML5, Cloud Thursday, May 26, 2011
  • 3.
    P@ & MilitarySoftware 1993 - Software metrics Dod-Std-2167A 1994 - C3I Thursday, May 26, 2011
  • 4.
    Architecture Changes: 60’sMainframe Thursday, May 26, 2011
  • 5.
    Architecture Changes: 80’sClient-Server Thursday, May 26, 2011
  • 6.
    Architecture Changes: 90’sWeb Thursday, May 26, 2011
  • 7.
    Architecture Changes: 2010’sCloud, HTML5, Mobile Thursday, May 26, 2011
  • 8.
    Hype warning: Cloudy,with a chance of real innovation Source: Gartner (August 2009) 8 Thursday, May 26, 2011
  • 9.
    Cloud started atConsumer websites solving their needs • Google, Amazon, Yahoo, Facebook, Twitter • Large Data Sets • Storage Capacity growing faster than Moore’s Law • Fast Networks • Horizontal -> Vertical scalability • Open Source Software • Virtualization • Cloud is a productization of these infrastructures • Public Clouds Services: Google, Amazon • Open Source Software: Hadoop, Eucalyptus, Cloud Foundry Thursday, May 26, 2011
  • 10.
    Cloud, according tomy daughter 10 Thursday, May 26, 2011
  • 11.
    Cloud Computing Categories SaaS PaaS IaaS Source: Gartner AADI Summit Dec 2009 Google Developer Day 2010 Thursday, May 26, 2011
  • 12.
    Cloud Computing Categories SaaS PaaS IaaS Source: Gartner AADI Summit Dec 2009 Google Developer Day 2010 Thursday, May 26, 2011
  • 13.
    Cloud Computing Categories SaaS PaaS IaaS Source: Gartner AADI Summit Dec 2009 Google Developer Day 2010 Thursday, May 26, 2011
  • 14.
    Cloud Computing Categories SaaS PaaS IaaS Source: Gartner AADI Summit Dec 2009 Google Developer Day 2010 Thursday, May 26, 2011
  • 15.
    Infrastructure culture • Larry and Serguey’s 1998 paper ”The Anatomy of a Large-Scale Hypertextual Web Search Engine" • http://infolab.stanford.edu/~backrub/google.html • Other Google Research papers since then • http://research.google.com/pubs/papers.html • Build on the shoulders of giants • Custom stack made of standards parts: machines, linux, servers • Standard infrastructure: sharding, GFS, MapReduce, BigTable • Google App Engine: easy cloud, for Googlers and others developers • Standard languages: c/c++, java, python • Horizontal scalability: parallel and asynchronous whenever possible Thursday, May 26, 2011
  • 16.
    Programming the Cloud– The Google Way • Fault tolerant distributed storage: Google File System • Distributed shared memory: Bigtable • New programming abstractions: MapReduce • Domain Specific Languages: Sawzall Google.stanford.edu (Circa 1997) Current Rack Design © 2008 Google, Inc. All rights reserved, 13 Thursday, May 26, 2011
  • 17.
    Fault Tolerant DistributedDisk Storage: GFS • Data replicated 3 times. Upon failure, software re-replicates. • Master: Manages file metadata. Chunk size 64 MB. • Optimized for high-bandwidth sequential read / writes • Clusters > 5 PB of disk Client GFS Master Client C0 C1 C1 C0 C5 C5 C2 C5 C3 … C2 Chunkserver 1 Chunkserver 2 Chunkserver N http://research.google.com/archive/gfs-sosp2003.pdf © 2008 Google, Inc. All rights reserved, 14 Thursday, May 26, 2011
  • 18.
    Distributed Shared Memory:Bigtable • Sparse, distributed, persistent, multidimensional, sorted • Not a relational database (RDBMS): no schema, no joins, no foreign key constraints, no multi-row transactions • Each row can have any number of columns, similar to a dictionary data structure for each row. • Basic data types: string, counter, byte array • Accessed by row key, column name, timestamp • Data split into tablets for replication • Largest cells are > 700TB http://research.google.com/archive/bigtable-osdi06.pdf © 2008 Google, Inc. All rights reserved, 15 Thursday, May 26, 2011
  • 19.
    Datastore layers Complex Entity Group Queries on Key range Get and set queries Transactions properties scan by key ✓ ✓ ✓ ✓ ✓ Datastore ✓ ✓ ✓ ✓ Megastore ✓ ✓ Bigtable 16 Thursday, May 26, 2011
  • 20.
    Megastore API • “Give me all rows where the column ‘name’ equals ‘ikai’” • “Transactionally write an update to this group of entities” • “Do a cross datacenter write of this data such that reads will be strongly consistent” (High Replication Datastore) • Megastore paper: http://www.cidrdb.org/cidr2011/Papers/ CIDR11_Paper32.pdf 17 Thursday, May 26, 2011
  • 21.
    Programming Abstraction: MapReduce • Represent problems as Map and Reduce step (inspired by functional programming) • Distribute data among many machines, execute same computation at each machine on its dataset • Infrastructure manages parallel execution • Open source implementation: Hadoop I npu t Da t a map(in_key, data)  list(key, value) Map Map Map Task 1 Task 2 Task 3 reduce(key, list(values))  list(out_data) key Sort & Sort & Group Group Reduce Reduce Task 1 Task 2 http://research.google.com/archive/mapreduce.html © 2008 Google, Inc. All rights reserved, 18 Thursday, May 26, 2011
  • 22.
    Language for ParallelLog Processing: Sawzall • Commutative and associative operations allow parallel execution and aggregation • Language avoids specifying order by replacing loops with quantifiers (constraints) count: table sum of int; function(word: string): bool { total: table sum of float; when(i: some int; x: float = input; word[i] != word[$-1-i]) return false; emit count <- 1; return true; emit total <- x; }; http://labs.google.com/papers/sawzall.html © 2008 Google, Inc. All rights reserved, 19 Thursday, May 26, 2011
  • 23.
    Internet as aPlatform: The Challenges Architect’s Dream •Loosely coupled •Extensible •Standards-based •Fault tolerant •Unlimited computing power •Ubiquitous © 2008 Google, Inc. All rights reserved, 20 Thursday, May 26, 2011
  • 24.
    Internet as aPlatform: The Challenges Architect’s Dream Developer’s Nightmare •Loosely coupled •NO Call Stack •Extensible •NO Transactions •Standards-based •NO Promises •Fault tolerant •NO Certainty •Unlimited computing •NO Ordering power Constraints •Ubiquitous © 2008 Google, Inc. All rights reserved, 20 Thursday, May 26, 2011
  • 25.
    New Game Rules ACID (before) ACID (today) © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 26.
    New Game Rules ACID (before) ACID (today) • Atomic © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 27.
    New Game Rules ACID (before) ACID (today) • Atomic • Consistent © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 28.
    New Game Rules ACID (before) ACID (today) • Atomic • Consistent • Isolated © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 29.
    New Game Rules ACID (before) ACID (today) • Atomic • Consistent • Isolated • Durable © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 30.
    New Game Rules ACID (before) ACID (today) • Atomic • Associative • Consistent • Isolated • Durable © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 31.
    New Game Rules ACID (before) ACID (today) • Atomic • Associative • Consistent • Commutative • Isolated • Durable © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 32.
    New Game Rules ACID (before) ACID (today) • Atomic • Associative • Consistent • Commutative • Isolated • Idempotent • Durable © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 33.
    New Game Rules ACID (before) ACID (today) • Atomic • Associative • Consistent • Commutative • Isolated • Idempotent • Durable • Distributed © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 34.
    New Game Rules ACID (before) ACID (today) • Atomic • Associative • Consistent • Commutative • Isolated • Idempotent • Durable • Distributed Predictive Flexible Accurate Redundant © 2008 Google, Inc. All rights reserved, 21 Thursday, May 26, 2011
  • 35.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 36.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Coffee maker breaks Customer cannot pay © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 37.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Remake drink Coffee maker breaks Customer cannot pay © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 38.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Remake drink Coffee maker breaks Refund money Customer cannot pay © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 39.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Remake drink Coffee maker breaks Refund money Customer cannot pay Discard beverage © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 40.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Remake drink Retry Coffee maker breaks Refund money Customer cannot pay Discard beverage © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 41.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Remake drink Retry Coffee maker breaks Refund money Compensation Customer cannot pay Discard beverage © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 42.
    Starbucks Does notUse 2-Phase Commit Either •Start making coffee before customer pays •Reduces latency •What happens if… Customer rejects drink Remake drink Retry Coffee maker breaks Refund money Compensation Customer cannot pay Discard beverage Write-off © 2008 Google, Inc. All rights reserved, 22 Thursday, May 26, 2011
  • 43.
    Commoditization of distributedcomputing concepts & tools • Languages: Erlang concepts -> Go, Scala • NoSQL Zoo: BigTable, HBase, MongoDB, Reddis, Cassandra • Map/Reduce: Apache Hadoop • Paxos, Eventual Consistency, CAP Theorem • REST, statelessness, idempotency Thursday, May 26, 2011
  • 44.
    Economic Drivers • Proportion of electricity in cost of computing • Product -> Service • Economies of Scale • Moore’s Law • Pay as you go utility model Thursday, May 26, 2011
  • 45.
    Cultural Drivers • Expectations of corporate IT customers have changed • Consumerization of IT • Consumer apps more and more like fashion • Technology achieves ubiquity by disappearing Thursday, May 26, 2011
  • 46.
  • 47.
  • 48.
  • 49.
    Scales Up, ScalesDown, with Demand Thursday, May 26, 2011
  • 50.
  • 51.
  • 52.
    Cultural Drivers: Agility • Waterfall -> Agile methodologies • Cloud enables an Agile culture, driver for innovation 1 http://www.yourdomain.com/ Thursday, May 26, 2011
  • 53.
    Fail often, failquickly, and learn Thursday, May 26, 2011
  • 54.
    Fail often, failquickly, and learn • Risk taking/Experimentation is encouraged • http://blog.red-bean.com/sussman/?p=96 • “Do not be afraid of day-to-day failures — learn from them. (As they say at Google, “don’t run from failure — fail often, fail quickly, and learn.”) Cherish your history, both the successes and mistakes. All of these behaviors are the way to get better at programming. If you don’t follow them, you’re cheating your own personal development.” • Ben Collins-Sussman (Subversion, code.google.com) Thursday, May 26, 2011
  • 55.
  • 56.
    Agile Development Processes • Influences from XP, Agile, Scrum • Code reviews • Test Driven Development: Testing on the Toilets program and blog • Many internal development tools: Mondrian recently open sourced • Changed the meaning of beta • Teams co-located: 3-15 people, 4/cubicle, all close to each other • International offices: manage whole projects, avoid coordination costs Thursday, May 26, 2011
  • 57.
  • 58.
    Open Source Culture • Open Source Program Office • Summer of Code • Open sourcing parts of Google code • http://code.google.com/ • Making the web better: GWT, Gears, OpenSocial, Android Thursday, May 26, 2011
  • 59.
  • 60.
    API Culture • Bill Joy: "Innovation happens elsewhere" • From 3 to 62 APIs in 3 years • Maps on websites • Friend Connect: all sites can become social • http://code.google.com/ for the list • Build an ecosystem around the APIs (my job) • User's choice: get their data out Thursday, May 26, 2011
  • 61.
    Data Liberation Front http://www.dataliberation.org/ Users should be able to control the data they store in any of Google's products. Our team's goal is to make it easier to move data in and out. Thursday, May 26, 2011
  • 62.
  • 63.
    Google's Cloud Offerings 1. Google Apps 2. Third party Apps: Google Apps Marketplace SaaS 3. ________ Google App Engine PaaS Google Storage IaaS Prediction API BigQuery Google Developer Day 2010 Thursday, May 26, 2011
  • 64.
    Google's Cloud Offerings Your Apps 1. Google Apps 2. Third party Apps: Google Apps Marketplace SaaS 3. ________ Google App Engine PaaS Google Storage IaaS Prediction API BigQuery Google Developer Day 2010 Thursday, May 26, 2011
  • 65.
    How Google AppsAdds Value Productivity and Innovation Realtime collaboration, constant updates, new features Platform Independence Work anywhere from any computer or mobile device Reduced IT Complexity Least complex, least expensive to license and manage 41 Thursday, May 26, 2011
  • 66.
    How Google AppsAdds Value Security and Availability Same uptime and infrastructure used for Google products Built-in Enterprise Security Features 2-Factor Authentication, Single Sign On, Reporting Tools 42 Thursday, May 26, 2011
  • 67.
    How Google AppsAdds Value Security and Availability Same uptime and infrastructure used for Google products Built-in Enterprise Security Features 2-Factor Authentication, Single Sign On, Reporting Tools A Toolbox of Administrative APIs Reporting, Compliance, Identity Management and more... 42 Thursday, May 26, 2011
  • 68.
    Why Google AppEngine? • Easy to build • Easy to maintain • Easy to scale Thursday, May 26, 2011
  • 69.
    Cloud Development ina Box • Downloadable SDK • Application runtimes o Java, Python • Local development tools o Eclipse plugin, AppEngine Launcher • Specialized application services • Cloud based dashboard • Ready to scale • Built in fault tolerance, load balancing Thursday, May 26, 2011
  • 70.
    Specialized Services Memcache Datastore URL Fetch Mail XMPP Task Queue Images Blobstore User Service Thursday, May 26, 2011
  • 71.
  • 72.
    App Engine Growth 2008 2009 2010 2011 App Engine Launch Batch write/read Java Task Queues Blobstore Multitenancy Hi-Replication Python Https DB Import XMPP Appstats Instance Console Datastore Datastore Status- cron incoming email cursors Always On Channel API Memcache Dashboard Mapper hi-perf imag Files API logs export 10 min tasks Remote API Prosp Search Thursday, May 26, 2011
  • 73.
    By the Numbers 100,000 Active Developers per Month Thursday, May 26, 2011
  • 74.
    By the Numbers 200,000 Active apps per week Thursday, May 26, 2011
  • 75.
    By the Numbers 1.5B Pageviews per day Thursday, May 26, 2011
  • 76.
    Some App EnginePartners Thursday, May 26, 2011
  • 77.
    Google Cloud Inthe Government sector Thursday, May 26, 2011
  • 78.
    Google is Committedto Meeting the Add'l Challenges of Governments Google Apps for Government • Government only cloud in dedicated CONUS facilities • Government pricing (GSA Schedule 70) ATO Issued by GSA • Certification & Accreditation based on Federal Information Systems Management Act (FISMA) • FIPS 199 Moderate baseline Leader in Public Sector Cloud Computing • General Services Administration, USAID, Dept of Energy, Colorado, New Mexico, Orlando, Los Angeles, Treasury, Multonomah County, Smithsonian, Tennessee Valley Authority, ACUS, MACPAC, Wyoming Thursday, May 26, 2011
  • 79.
    Select DoD Customers Requirements • Provide common platform for non-classified collaboration The Solution • Implement Google Apps (eushare.org) to support unclassified communication and coordination across 51 countries throughout the Area of Responsibility • Used during planning, execution, and after-action reporting of X24Europe, a recent global exercise Requirements • Provide common platform to support HA/DR mission area The Solution • Implement Google Apps (InRelief.org) to support cross-country, cross- language collaboration; Includes consolidation of social networking signals Requirements • Provide messaging platform for families to connect with deployed service members The Solution • Garrison Commander's toolkit for communicating to troops and their families. Thursday, May 26, 2011
  • 80.
    Factors to considerfor picking a Cloud • Price • Type: Iaas, Paas, Saas • Type of task: Apps, Big Data • Public/Private/Hybrid • Lock-In: Standards, Open Source Thursday, May 26, 2011
  • 81.
    Issues to solve • Cloud Interop: lack of standard • Replication of Data across multiple Clouds • Data privacy/integrity • encryption at rest • data auditing • Trust, Culture of agility Thursday, May 26, 2011
  • 82.
    Google Cloud Clients • Chrome, HTML5 • ChromeBook, Device as a service $28/user/month • Android: phone and tablets Thursday, May 26, 2011
  • 83.
    Q&A 58 Thursday, May 26, 2011