CINXE.COM

Official Google Cloud Blog: Google App Engine

<!DOCTYPE html> <html class='v2 list-page' dir='ltr' itemscope='' itemtype='http://schema.org/Blog' lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <title> Official Google Cloud Blog: Google App Engine </title> <meta content='width=device-width, height=device-height, minimum-scale=1.0, initial-scale=1.0, user-scalable=0' name='viewport'/> <meta content='IE=Edge' http-equiv='X-UA-Compatible'/> <meta content='Official Google Cloud Blog' property='og:title'/> <meta content='en_US' property='og:locale'/> <meta content='https://cloud.googleblog.com/search/label/Google%20App%20Engine' property='og:url'/> <meta content='Official Google Cloud Blog' property='og:site_name'/> <!-- Twitter Card properties --> <meta content='Official Google Cloud Blog' property='og:title'/> <meta content='summary' name='twitter:card'/> <meta content='@gsuite' name='twitter:creator'/> <link href='https://fonts.googleapis.com/css?family=Roboto:400italic,400,500,500italic,700,700italic' rel='stylesheet' type='text/css'/> <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'/> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js' type='text/javascript'></script> <!-- End --> <style id='page-skin-1' type='text/css'><!-- /* <Group description="Header Color" selector="header"> <Variable name="header.background.color" description="Header Background" type="color" default="#ffffff"/> </Group> */ .header-outer { border-bottom: 1px solid #e0e0e0; background: #ffffff; } html, .Label h2, #sidebar .rss a, .BlogArchive h2, .FollowByEmail h2.title, .widget .post h2 { font-family: Roboto, sans-serif; } .plusfollowers h2.title, .post h2.title, .widget h2.title { font-family: Roboto, sans-serif; } .widget-item-control { height: 100%; } .widget.Header, #header { position: relative; height: 100%; width: 100%; } } .widget.Header .header-logo1 { float: left; margin-right: 15px; padding-right: 15px; border-right: 1px solid #ddd; } .header-title h2 { color: rgba(0,0,0,.54); display: inline-block; font-size: 40px; font-family: Roboto, sans-serif; font-weight: normal; line-height: 56px; vertical-align: top; margin-left:5px; } .header-inner { background-repeat: no-repeat; background-position: right 0px; } .post-author, .byline-author { font-size: 14px; font-weight: normal; color: #757575; color: rgba(0,0,0,.54); } .post-content .img-border { border: 1px solid rgb(235, 235, 235); padding: 4px; } .header-title a { text-decoration: none !important; } pre { border: 1px solid #bbbbbb; margin-top: 1em 0 0 0; padding: 0.99em; overflow-x: auto; overflow-y: auto; } pre, code { font-size: 9pt; background-color: #fafafa; line-height: 125%; font-family: monospace; } pre, code { color: #060; font: 13px/1.54 "courier new",courier,monospace; } .header-left .header-logo1 { width: 128px !important; } .header-desc { line-height: 20px; margin-top: 8px; } .fb-custom img, .twitter-custom img, .gplus-share img { cursor: pointer; opacity: 0.54; } .fb-custom img:hover, .twitter-custom img:hover, .gplus-share img:hover { opacity: 0.87; } .fb-like { width: 80px; } .post .share { float: right; } #twitter-share{ border: #CCC solid 1px; border-radius: 3px; background-image: -webkit-linear-gradient(top,#ffffff,#dedede); } .twitter-follow { background: url(//4.bp.blogspot.com/-8O7VcmcY32o/VSYkC2vUj7I/AAAAAAAAHeU/7mzo-JFgTgk/s1600/twitter-bird.png) no-repeat left center; padding-left: 18px; font: normal normal normal 11px/18px 'Helvetica Neue',Arial,sans-serif; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,.5); cursor: pointer; margin-bottom: 10px; } .twitter-fb { padding-top: 2px; } .fb-follow-button { background: -webkit-linear-gradient(#4c69ba, #3b55a0); background: -moz-linear-gradient(#4c69ba, #3b55a0); background: linear-gradient(#4c69ba, #3b55a0); border-radius: 2px; height: 18px; padding: 4px 0 0 3px; width: 57px; border: #4c69ba solid 1px; } .fb-follow-button a { text-decoration: none !important; text-shadow: 0 -1px 0 #354c8c; text-align: center; white-space: nowrap; font-size: 11px; color: white; vertical-align: top; } .fb-follow-button a:visited { color: white; } .fb-follow { padding: 0px 5px 3px 0px; width: 14px; vertical-align: bottom; } .gplus-wrapper { margin-top: 3px; display: inline-block; vertical-align: top; } .twitter-custom, .gplus-share { margin-right: 12px; } .fb-follow-button{ margin: 10px auto; } /** CUSTOM CODE **/ --></style> <style id='template-skin-1' type='text/css'><!-- .header-outer { clear: both; } .header-inner { margin: auto; padding: 0px; } .footer-outer { background: #f5f5f5; clear: both; margin: 0; } .footer-inner { margin: auto; padding: 0px; } .footer-inner-2 { /* Account for right hand column elasticity. */ max-width: calc(100% - 248px); } .google-footer-outer { clear: both; } .cols-wrapper, .google-footer-outer, .footer-inner, .header-inner { max-width: 978px; margin-left: auto; margin-right: auto; } .cols-wrapper { margin: auto; clear: both; margin-top: 60px; margin-bottom: 60px; overflow: hidden; } .col-main-wrapper { float: left; width: 100%; } .col-main { margin-right: 278px; max-width: 660px; } .col-right { float: right; width: 248px; margin-left: -278px; } /* Tweaks for layout mode. */ body#layout .google-footer-outer { display: none; } body#layout .header-outer, body#layout .footer-outer { background: none; } body#layout .header-inner { height: initial; } body#layout .cols-wrapper { margin-top: initial; margin-bottom: initial; } --></style> <!-- start all head --> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='https://cloud.googleblog.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='https://cloud.googleblog.com/search/label/Google%20App%20Engine' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Official Google Cloud Blog - Atom" href="https://cloud.googleblog.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Official Google Cloud Blog - RSS" href="https://cloud.googleblog.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Official Google Cloud Blog - Atom" href="https://www.blogger.com/feeds/6567687196385815607/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='https://cloud.googleblog.com/search/label/Google%20App%20Engine' property='og:url'/> <meta content='Official Google Cloud Blog' property='og:title'/> <meta content='Built in the cloud. Engineered for your enterprise.' property='og:description'/> <!-- end all head --> <base target='_self'/> <style> html { font-family: Roboto, sans-serif; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } body { padding: 0; /* This ensures that the scroll bar is always present, which is needed */ /* because content render happens after page load; otherwise the header */ /* would "bounce" in-between states. */ min-height: 150%; } h2 { font-size: 16px; } h1, h2, h3, h4, h5 { line-height: 2em; } html, h4, h5, h6 { font-size: 14px; } a, a:visited { color: #4184F3; text-decoration: none; } a:focus, a:hover, a:active { text-decoration: none; } .Header { margin-top: 15px; } .Header h1 { font-size: 32px; font-weight: 300; line-height: 32px; height: 42px; } .header-inner .Header .titlewrapper { padding: 0; margin-top: 30px; } .header-inner .Header .descriptionwrapper { padding: 0; margin: 0; } .cols-wrapper { margin-top: 56px; } .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 60px; } .header-inner { height: 256px; position: relative; } html, .header-inner a { color: #212121; color: rgba(0,0,0,.87); } .header-inner .google-logo { display: inline-block; background-size: contain; z-index: 1; height: 50px; overflow: hidden; margin-top: 4px; } .header-left { position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); margin-top: 12px; width: 100%; } .google-logo { margin-left: -4px; } #google-footer { position: relative; font-size: 13px; list-style: none; text-align: right; } #google-footer a { color: #444; } #google-footer ul { margin: 0; padding: 0; height: 144px; line-height: 144px; } #google-footer ul li { display: inline; } #google-footer ul li:before { color: #999; content: "\00b7"; font-weight: bold; margin: 5px; } #google-footer ul li:first-child:before { content: ''; } #google-footer .google-logo-dark { left: 0; margin-top: -16px; position: absolute; top: 50%; } /** Sitemap links. **/ .footer-inner-2 { font-size: 14px; padding-top: 42px; padding-bottom: 74px; } .footer-inner-2 .HTML h2 { color: #212121; color: rgba(0,0,0,.87); font-size: 14px; font-weight: 500; padding-left: 0; margin: 10px 0; } .footer-inner-2 .HTML ul { font-weight: normal; list-style: none; padding-left: 0; } .footer-inner-2 .HTML li { line-height: 24px; padding: 0; } .footer-inner-2 li a { color: rgba(65,132,243,.87); } /** Archive widget. **/ .BlogArchive { font-size: 13px; font-weight: normal; } .BlogArchive .widget-content { display: none; } .BlogArchive h2, .Label h2 { color: #4184F3; text-decoration: none; } .BlogArchive .hierarchy li { display: inline-block; } /* Specificity needed here to override widget CSS defaults. */ .BlogArchive #ArchiveList ul li, .BlogArchive #ArchiveList ul ul li { margin: 0; padding-left: 0; text-indent: 0; } .BlogArchive .intervalToggle { cursor: pointer; } .BlogArchive .expanded .intervalToggle .new-toggle { -ms-transform: rotate(180deg); transform: rotate(180deg); } .BlogArchive .new-toggle { float: right; padding-top: 3px; opacity: 0.87; } #ArchiveList { text-transform: uppercase; } #ArchiveList .expanded > ul:last-child { margin-bottom: 16px; } #ArchiveList .archivedate { width: 100%; } /* Months */ .BlogArchive .items { max-width: 150px; margin-left: -4px; } .BlogArchive .expanded .items { margin-bottom: 10px; overflow: hidden; } .BlogArchive .items > ul { float: left; height: 32px; } .BlogArchive .items a { padding: 0 4px; } .Label { font-size: 13px; font-weight: normal; } .sidebar-icon { display: inline-block; width: 24px; height: 24px; vertical-align: middle; margin-right: 12px; margin-top: -1px } .Label a { margin-right: 4px; } .Label .widget-content { display: none; } .FollowByEmail { font-size: 13px; font-weight: normal; } .FollowByEmail h2 { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: 0 50%; text-indent: 30px; } .FollowByEmail .widget-content { display: none; } .searchBox input { border: 1px solid #eee; color: #212121; color: rgba(0,0,0,.87); font-size: 14px; padding: 8px 8px 8px 40px; width: 164px; font-family: Roboto, sans-serif; background: url("https://www.gstatic.com/images/icons/material/system/1x/search_grey600_24dp.png") 8px center no-repeat; } .searchBox ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: rgba(0,0,0,.54); } .searchBox :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #000; opacity: 0.54; } .searchBox ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #000; opacity: 0.54; } .searchBox :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #757575; } .widget-item-control { margin-top: 0px; } .section { margin: 0; padding: 0; } #sidebar-top { border: 1px solid #eee; } #sidebar-top > div { margin: 16px 0; } .widget ul { line-height: 1.6; } /*main post*/ .post { margin-bottom:30px; } #main .post .title { margin: 0; } #main .post .title a { color: #212121; color: rgba(0,0,0,.87); font-weight: normal; font-size: 24px; } #main .post .title a:hover { text-decoration:none; color:#4184F3; } .message, #main .post .post-header { margin: 0; padding: 0; } #main .post .post-header .caption, #main .post .post-header .labels-caption, #main .post .post-footer .caption, #main .post .post-footer .labels-caption { color: #444; font-weight: 500; } #main .tr-caption-container td { text-align: left; } #main .post .tr-caption { color: #757575; color: rgba(0,0,0,.54); display: block; max-width: 560px; padding-bottom: 20px; } #main .post .tr-caption-container { line-height: 24px; margin: -1px 0 0 0 !important; padding: 4px 0; text-align: left; } #main .post .post-header .published{ font-size:11px; font-weight:bold; } .post-header .publishdate { font-size: 17px; font-weight:normal; color: #757575; color: rgba(0,0,0,.54); } #main .post .post-footer{ font-size:12px; padding-bottom: 21px; } .label-footer { margin-bottom: 12px; margin-top: 12px; } .comment-img { margin-right: 16px; opacity: 0.54; vertical-align: middle; } #main .post .post-header .published { margin-bottom: 40px; margin-top: -2px; } .post .post-content { color: #212121; color: rgba(0,0,0,.87); font-size: 17px; margin: 25px 0 36px 0; line-height: 32px; } .post-body .post-content ul, .post-body .post-content ol { margin: 16px 0; padding: 0 48px; } .post-summary { display: none; } /* Another old-style caption. */ .post-content div i, .post-content div + i { font-size: 14px; font-style: normal; color: #757575; color: rgba(0,0,0,.54); display: block; line-height: 24px; margin-bottom: 16px; text-align: left; } /* Another old-style caption (with link) */ .post-content a > i { color: #4184F3 !important; } /* Old-style captions for images. */ .post-content .separator + div:not(.separator) { margin-top: -16px; } /* Capture section headers. */ .post-content br + br + b, .post-content .space + .space + b, .post-content .separator + b { display: inline-block; margin-bottom: 8px; margin-top: 24px; } .post-content li { line-height: 32px; } /* Override all post images/videos to left align. */ .post-content .separator, .post-content > div { text-align: left; } .post-content .separator > a, .post-content .separator > span { margin-left: 0 !important; } .post-content img { max-width: 100%; height: auto; width: auto; } .post-content .tr-caption-container img { margin-bottom: 12px; } .post-content iframe, .post-content embed { max-width: 100%; } .post-content .carousel-container { margin-bottom: 48px; } #main .post-content b { font-weight: 500; } /* These are the main paragraph spacing tweaks. */ #main .post-content br { content: ' '; display: block; padding: 4px; } .post-content .space { display: block; height: 8px; } .post-content iframe + .space, .post-content iframe + br { padding: 0 !important; } #main .post .jump-link { margin-bottom:10px; } .post-content img, .post-content iframe { margin: 30px 0 20px 0; } .post-content > img:first-child, .post-content > iframe:first-child { margin-top: 0; } .col-right .section { padding: 0 16px; } #aside { background:#fff; border:1px solid #eee; border-top: 0; } #aside .widget { margin:0; } #aside .widget h2, #ArchiveList .toggle + a.post-count-link { color: #212121; color: rgba(0,0,0,.87); font-weight: 400 !important; margin: 0; } #ArchiveList .toggle { float: right; } #ArchiveList .toggle .material-icons { padding-top: 4px; } #sidebar .tab { cursor: pointer; } #sidebar .tab .arrow { display: inline-block; float: right; } #sidebar .tab .icon { display: inline-block; vertical-align: top; height: 24px; width: 24px; margin-right: 13px; margin-left: -1px; margin-top: 1px; color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget-content > :first-child { padding-top: 8px; } #sidebar .active .tab .arrow { -ms-transform: rotate(180deg); transform: rotate(180deg); } #sidebar .arrow { color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget h2 { font-size: 14px; line-height: 24px; display: inline-block; } #sidebar .widget .BlogArchive { padding-bottom: 8px; } #sidebar .widget { border-bottom: 1px solid #eee; box-shadow: 0px 1px 0 white; margin-bottom: 0; padding: 14px 0; min-height: 20px; } #sidebar .widget:last-child { border-bottom: none; box-shadow: none; margin-bottom: 0; } #sidebar ul { margin: 0; padding: 0; } #sidebar ul li { list-style:none; padding:0; } #sidebar ul li a { line-height: 32px; } #sidebar .archive { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUeNpiNDY23s9AAWBioBCwYBM8c+YMVsUmJibEGYBNMS5DaeMFfDYSZQA2v9I3FrB5AZeriI4FmnrBccCT8mhmGs1MwyAzAQQYAKEWG9zm9QFEAAAAAElFTkSuQmCC"); height: 24px; line-height: 24px; padding-left: 30px; } #sidebar .labels { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUxJREFUeNpiNDY23s9AAMycOfM7UF05kHkZmzwTMkdSUhKrIcXFxZy3bt3qBjIN8RrS09PDsHnzZjCNDr58+cKQlpbGDjSoHcg1w2oIyAUODg5gARCNzUVIBrUCuVYYhjx//pzhwIEDYAEQDeJjA1CDWIAGNQK59jBxRuSABbkAlwHIgIeHh2HWrFn/1NTU2oDcvSgBS4wBSC5iArqoCsj1YGIgEyAZVMoEchqlBjEB/cZAiUHg2AEGznpKDAImxOeM////B4VLKtBvEUCngZ1ILKivr3/u6+ubBzJAGZQ9gC5aQoqLgAY8BhkAZL4BuQQkxgXE34A4BuiiZEIuAhrwEGhAEZD5DpzYoIaA2UAM4kQADUrHZRDUgAIg8wO2XAwzbQXQa5OweQ1owB10AyA6gS7BgX1u3ry5397eHow3bdo0EyjGi00tQIABANPgyAH1q1eaAAAAAElFTkSuQmCC"); height: 20px; line-height: 20px; padding-left: 30px; } #sidebar .rss a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAX5JREFUeNqsVDGSgkAQHL2rIiIikohIc/EBRkbwAIwuwgfwAXiAD9AHSI7kEkECRCb6AIyINDLx7K0aa6kT7uq0q7YYtnZ7umdnt7darXbr9Zpegeu61DNNc0dvwCcH4/GYJpMJnc9nOhwOVJbl/4hAAokMECZJQtvt9k+kH7qufyEYDAakqqqYxFdRFBqNRmTbNg2HQ0rTlK7XayvR0xqBdDqdkuM4dE/0ULhYLOh4PHYrknG5XGi/31MYhuL/nkwonM1mlGUZ1XXdrsiyLGEDhY7juJEZ1u5tIixDGdYhmYw+B7CAzPP5nDabjdgIAgCksMX1832/3drtdqPT6SQWapomiGEFNkDEdpDMMAzK81ys/7XYy+XyoQgq2WoURSIJ2iIIgp/WZCCTvFm2wgeAU31aI3Q2GhIDMeB53qPYPIcm5VrxXIOIOxsDMStjVawAc1VViRgN22lNBiuQN3GR+SY07hpOoStmFQAKXRRFY93bnpG+fONfedi+BRgAbkS8Fxp7QQIAAAAASUVORK5CYII="); } #sidebar .subscription a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); } #sidebar-bottom { background: #f5f5f5; border-top:1px solid #eee; } #sidebar-bottom .widget { border-bottom: 1px solid #e0e0e0; padding: 15px 0; text-align: center; } #sidebar-bottom > div:last-child { border-bottom: 0; } #sidebar-bottom .text { line-height: 20px; } /* Home, forward, and backward pagination. */ .blog-pager { border-top : 1px #e0e0e0 solid; padding-top: 10px; margin-top: 15px; text-align: right !important; } #blog-pager { margin-botom: 0; margin-top: -14px; padding: 16px 0 0 0; } #blog-pager a { display: inline-block; } .blog-pager i.disabled { opacity: 0.2 !important; } .blog-pager i { color: black; margin-left: 16px; opacity: 0.54; } .blog-pager i:hover, .blog-pager i:active { opacity: 0.87; } #blog-pager-older-link, #blog-pager-newer-link { float: none; } .gplus-profile { background-color: #fafafa; border: 1px solid #eee; overflow: hidden; width: 212px; } .gplus-profile-inner { margin-left: -1px; margin-top: -1px; } /* Sidebar follow buttons. */ .followgooglewrapper { padding: 12px 0 0 0; } .loading { visibility: hidden; } .detail-page .post-footer .cmt_iframe_holder { padding-top: 40px !important; } /** Desktop **/ @media (max-width: 900px) { .col-right { display: none; } .col-main { margin-right: 0; min-width: initial; } .footer-outer { display: none; } .cols-wrapper { min-width: initial; } .google-footer-outer { background-color: #f5f5f5; } } /** Tablet **/ @media (max-width: 712px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 40px; } } /* An extra breakpoint accommodating for long blog titles. */ @media (max-width: 600px) { .header-left { height: 100%; top: inherit; margin-top: 0; -webkit-transform: initial; transform: initial; } .header-title { margin-top: 18px; } .header-inner .google-logo { height: 40px; margin-top: 3px; } .header-inner .google-logo img { height: 35px; } .header-title h2 { font-size: 32px; line-height: 36px; } .header-desc { bottom: 24px; position: absolute; } } /** Mobile/small desktop window; also landscape. **/ @media (max-width: 480px), (max-height: 480px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 16px; } .cols-wrapper { margin-top: 0; } .post-header .publishdate, .post .post-content { font-size: 16px; } .post .post-content { line-height: 28px; margin-bottom: 30px; } .post { margin-top: 30px; } .byline-author { display: block; font-size: 12px; line-height: 24px; margin-top: 6px; } #main .post .title a { font-weight: 500; color: #4c4c4c; color: rgba(0,0,0,.70); } #main .post .post-header { padding-bottom: 12px; } #main .post .post-header .published { margin-bottom: -8px; margin-top: 3px; } .post .read-more { display: block; margin-top: 14px; } .post .tr-caption { font-size: 12px; } #main .post .title a { font-size: 20px; line-height: 30px; } .post-content iframe { /* iframe won't keep aspect ratio when scaled down. */ max-height: 240px; } .post-content .separator img, .post-content .tr-caption-container img, .post-content iframe { margin-left: -16px; max-width: inherit; width: calc(100% + 32px); } .post-content table, .post-content td { width: 100%; } #blog-pager { margin: 0; padding: 16px 0; } /** List page tweaks. **/ .list-page .post-original { display: none; } .list-page .post-summary { display: block; } .list-page .comment-container { display: none; } .list-page #blog-pager { padding-top: 0; border: 0; margin-top: -8px; } .list-page .label-footer { display: none; } .list-page #main .post .post-footer { border-bottom: 1px solid #eee; margin: -16px 0 0 0; padding: 0 0 20px 0; } .list-page .post .share { display: none; } /** Detail page tweaks. **/ .detail-page .post-footer .cmt_iframe_holder { padding-top: 32px !important; } .detail-page .label-footer { margin-bottom: 0; } .detail-page #main .post .post-footer { padding-bottom: 0; } .detail-page #comments { display: none; } } [data-about-pullquote], [data-is-preview], [data-about-syndication] { display: none; } </style> <noscript> <style> .loading { visibility: visible }</style> </noscript> <script type='text/javascript'> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-18038-3', 'auto', 'blogger'); ga('blogger.send', 'pageview'); </script> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6567687196385815607&amp;zx=580b6054-328e-400b-9c33-8614ef723430' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6567687196385815607&amp;zx=580b6054-328e-400b-9c33-8614ef723430' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body> <script type='text/javascript'> //<![CDATA[ var axel = Math.random() + ""; var a = axel * 10000000000000; document.write('<iframe src="https://2542116.fls.doubleclick.net/activityi;src=2542116;type=gblog;cat=googl0;ord=ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>'); //]]> </script> <noscript> <img alt='' height='1' src='https://ad.doubleclick.net/ddm/activity/src=2542116;type=gblog;cat=googl0;ord=1?' width='1'/> </noscript> <!-- Header --> <div class='header-outer'> <div class='header-inner'> <div class='section' id='header'><div class='widget Header' data-version='1' id='Header1'> <div class='header-left'> <div class='header-title'> <a class='google-logo' href='https://cloud.googleblog.com/?hl=en'> <img height="50" src="//3.bp.blogspot.com/-a3v4BOp6LoU/V-y9lFzsb_I/AAAAAAAATGY/aD_EUNu9X4MHVu3ScQH38S2yvyNAVON9ACK4B/s1600/logo_lockup_cloud_color.png"> </a> <a href='/.'> <h2> Official Blog </h2> </a> </div> <div class='header-desc'> Built in the cloud. Engineered for your enterprise. </div> </div> </div></div> </div> </div> <!-- all content wrapper start --> <div class='cols-wrapper loading'> <div class='col-main-wrapper'> <div class='col-main'> <div class='section' id='main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='post' data-id='3734838543283193337' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html?hl=en' itemprop='url' title='Announcing Google Cloud Platform Education Grants for computer science'> Announcing Google Cloud Platform Education Grants for computer science </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, June 21, 2016 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <span class="byline-author">Posted by Bram Bout, Director, Google for Education</span> <br /> <br /> <i>(Cross-posted on the Google for Education <a href="http://googleforeducation.blogspot.com/2016/06/announcing-google-cloud-platform.html" target="_blank">Blog</a>.)</i><br /> <div class="separator" style="clear: both; text-align: center;"> <br /></div> While university students are on their summer holidays, internships or jobs, their professors are already hard at work planning for fall courses. These course maps will be at the center of student learning, research and academic growth. Google was founded on the basis of the work that Larry and Sergey did as computer science students at Stanford, and we understand the critical role that teachers play in fostering and inspiring the innovation we see today and will see in the years to come. That&#8217;s why we&#8217;re excited to offer <a href="//google.com/edu/products/cloud-platform?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content" target="_blank">Google Cloud Platform Education Grants for computer science</a>. <br /> <br /> Starting today, university faculty in the United States who teach courses in computer science or related subjects can <a href="https://lp.google-mkto.com/CloudEduGrants?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content=" target="_blank">apply</a> for free credits for their students to use across the full suite of <a href="http://cloud.google.com/products" target="_blank">Google Cloud Platform tools</a>, like <a href="https://cloud.google.com/appengine/" target="_blank">App Engine</a> and the <a href="https://cloud.google.com/ml/" target="_blank">Cloud Machine Learning platform</a>. These credits can be used any time during the 2016-17 academic year and give students access to the same tools and infrastructure used by Google engineers.<br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxDjQCUqywo5iiY3faVcCCk2vONg9v3hzcJ8LQa-jKUGaLs_j1CUpowlCMmem5w_lEeRQ8GZXvknfm0WnSvvMJHOMV1eir2c0tzzh5sFFM32N4UgHxhZpRX0ckawGJGJn2W28lrN-sgfg/s1600/GCP_logo_vertical_rgb+copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxDjQCUqywo5iiY3faVcCCk2vONg9v3hzcJ8LQa-jKUGaLs_j1CUpowlCMmem5w_lEeRQ8GZXvknfm0WnSvvMJHOMV1eir2c0tzzh5sFFM32N4UgHxhZpRX0ckawGJGJn2W28lrN-sgfg/s400/GCP_logo_vertical_rgb+copy.png" width="400" /></a></div> Students like Duke University undergrad Brittany Wenger are already taking advantage of cloud computing. After watching several women in her family suffer from breast cancer, Brittany used her knowledge of artificial intelligence to create <a href="https://sites.google.com/a/googlesciencefair.com/science-fair-2012-project-64a91af142a459cfb486ed5cb05f803b2eb41354-1333130785-87/home" target="_blank">Cloud4Cancer</a>, an artificial neural network built on top of Google App Engine. By analyzing uploaded scans of benign and malignant breast cancer tumors, Cloud4Cancer has learned to distinguish between healthy and unhealthy tissue. It&#8217;s providing health care professionals with a powerful diagnostic tool in the fight against cancer.<br /> <br /> <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> offers a range of tools and services that are unique among cloud providers. The tool that Brittany used&nbsp;<span style="font-family: &quot;arial&quot;; font-size: 14.6667px; white-space: pre-wrap;">&#8212;</span>&nbsp;<a href="https://cloud.google.com/appengine/" target="_blank">Google App Engine</a>&nbsp;<span style="font-family: &quot;arial&quot;; font-size: 14.6667px; white-space: pre-wrap;">&#8212;</span>&nbsp;lets you simply build and run an application without having to configure custom infrastructure. Our <a href="https://cloud.google.com/products/machine-learning/" target="_blank">Machine Learning platform</a> allows you to build models for any type of data, at any size, and TensorFlow provides access to an open-source public software library (tinker with that extensive data <a href="http://playground.tensorflow.org/#activation=tanh&amp;batchSize=10&amp;dataset=circle&amp;regDataset=reg-plane&amp;learningRate=0.03&amp;regularizationRate=0&amp;noise=0&amp;networkShape=4,2&amp;seed=0.97551&amp;showTestData=false&amp;discretize=false&amp;percTrainData=50&amp;x=true&amp;y=true&amp;xTimesY=false&amp;xSquared=false&amp;ySquared=false&amp;cosX=false&amp;sinX=false&amp;cosY=false&amp;sinY=false&amp;collectStats=false&amp;problem=classification&amp;initZero=false" target="_blank">here</a>). Students will also be able to get their hands on one of Cloud Platform&#8217;s most popular new innovations: the <a href="https://cloud.google.com/vision/" target="_blank">Cloud Vision API</a>, which allows you to incorporate Google&#8217;s state-of-the-art image recognition capabilities into the most basic web or mobile app.<br /> <br /> We look forward to seeing the creative ways that computer science students will use their Google Cloud Platform Education Grants, and will share stories along the way on this blog.<br /> <br /> Computer science faculty in the United States can <a href="https://lp.google-mkto.com/CloudEduGrants?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content=" target="_blank">apply here</a> for Education Grants. Students and others interested in Cloud Platform for Higher Education, should complete <a href="https://lp.google-mkto.com/CloudEduGrants?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content=" target="_blank">this form</a> to register and stay up to date with the latest from Cloud Platform. For more information on Cloud Platform and its uses for higher education, visit our <a href="//google.com/edu/products/cloud-platform?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content" target="_blank">Google Cloud Platform for Higher Education site</a>.</div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <span class="byline-author">Posted by Bram Bout, Director, Google for Education</span> <br /> <br /> <i>(Cross-posted on the Google for Education <a href="http://googleforeducation.blogspot.com/2016/06/announcing-google-cloud-platform.html" target="_blank">Blog</a>.)</i><br /> <div class="separator" style="clear: both; text-align: center;"> <br /></div> While university students are on their summer holidays, internships or jobs, their professors are already hard at work planning for fall courses. These course maps will be at the center of student learning, research and academic growth. Google was founded on the basis of the work that Larry and Sergey did as computer science students at Stanford, and we understand the critical role that teachers play in fostering and inspiring the innovation we see today and will see in the years to come. That&#8217;s why we&#8217;re excited to offer <a href="//google.com/edu/products/cloud-platform?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content" target="_blank">Google Cloud Platform Education Grants for computer science</a>. <br /> <br /> Starting today, university faculty in the United States who teach courses in computer science or related subjects can <a href="https://lp.google-mkto.com/CloudEduGrants?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content=" target="_blank">apply</a> for free credits for their students to use across the full suite of <a href="http://cloud.google.com/products" target="_blank">Google Cloud Platform tools</a>, like <a href="https://cloud.google.com/appengine/" target="_blank">App Engine</a> and the <a href="https://cloud.google.com/ml/" target="_blank">Cloud Machine Learning platform</a>. These credits can be used any time during the 2016-17 academic year and give students access to the same tools and infrastructure used by Google engineers.<br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxDjQCUqywo5iiY3faVcCCk2vONg9v3hzcJ8LQa-jKUGaLs_j1CUpowlCMmem5w_lEeRQ8GZXvknfm0WnSvvMJHOMV1eir2c0tzzh5sFFM32N4UgHxhZpRX0ckawGJGJn2W28lrN-sgfg/s1600/GCP_logo_vertical_rgb+copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxDjQCUqywo5iiY3faVcCCk2vONg9v3hzcJ8LQa-jKUGaLs_j1CUpowlCMmem5w_lEeRQ8GZXvknfm0WnSvvMJHOMV1eir2c0tzzh5sFFM32N4UgHxhZpRX0ckawGJGJn2W28lrN-sgfg/s400/GCP_logo_vertical_rgb+copy.png" width="400" /></a></div> Students like Duke University undergrad Brittany Wenger are already taking advantage of cloud computing. After watching several women in her family suffer from breast cancer, Brittany used her knowledge of artificial intelligence to create <a href="https://sites.google.com/a/googlesciencefair.com/science-fair-2012-project-64a91af142a459cfb486ed5cb05f803b2eb41354-1333130785-87/home" target="_blank">Cloud4Cancer</a>, an artificial neural network built on top of Google App Engine. By analyzing uploaded scans of benign and malignant breast cancer tumors, Cloud4Cancer has learned to distinguish between healthy and unhealthy tissue. It&#8217;s providing health care professionals with a powerful diagnostic tool in the fight against cancer.<br /> <br /> <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> offers a range of tools and services that are unique among cloud providers. The tool that Brittany used&nbsp;<span style="font-family: &quot;arial&quot;; font-size: 14.6667px; white-space: pre-wrap;">&#8212;</span>&nbsp;<a href="https://cloud.google.com/appengine/" target="_blank">Google App Engine</a>&nbsp;<span style="font-family: &quot;arial&quot;; font-size: 14.6667px; white-space: pre-wrap;">&#8212;</span>&nbsp;lets you simply build and run an application without having to configure custom infrastructure. Our <a href="https://cloud.google.com/products/machine-learning/" target="_blank">Machine Learning platform</a> allows you to build models for any type of data, at any size, and TensorFlow provides access to an open-source public software library (tinker with that extensive data <a href="http://playground.tensorflow.org/#activation=tanh&amp;batchSize=10&amp;dataset=circle&amp;regDataset=reg-plane&amp;learningRate=0.03&amp;regularizationRate=0&amp;noise=0&amp;networkShape=4,2&amp;seed=0.97551&amp;showTestData=false&amp;discretize=false&amp;percTrainData=50&amp;x=true&amp;y=true&amp;xTimesY=false&amp;xSquared=false&amp;ySquared=false&amp;cosX=false&amp;sinX=false&amp;cosY=false&amp;sinY=false&amp;collectStats=false&amp;problem=classification&amp;initZero=false" target="_blank">here</a>). Students will also be able to get their hands on one of Cloud Platform&#8217;s most popular new innovations: the <a href="https://cloud.google.com/vision/" target="_blank">Cloud Vision API</a>, which allows you to incorporate Google&#8217;s state-of-the-art image recognition capabilities into the most basic web or mobile app.<br /> <br /> We look forward to seeing the creative ways that computer science students will use their Google Cloud Platform Education Grants, and will share stories along the way on this blog.<br /> <br /> Computer science faculty in the United States can <a href="https://lp.google-mkto.com/CloudEduGrants?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content=" target="_blank">apply here</a> for Education Grants. Students and others interested in Cloud Platform for Higher Education, should complete <a href="https://lp.google-mkto.com/CloudEduGrants?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content=" target="_blank">this form</a> to register and stay up to date with the latest from Cloud Platform. For more information on Cloud Platform and its uses for higher education, visit our <a href="//google.com/edu/products/cloud-platform?utm_source=edublog&amp;utm_medium=social&amp;utm_campaign=2016-edu-gcp-na-grants-orgsocial-other-crossreg-cs_edu_social&amp;utm_content" target="_blank">Google Cloud Platform for Higher Education site</a>.</div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Announcing Google Cloud Platform Education Grants for computer science&url=https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='3' data-onclick='' data-post-url='https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html?hl=en' data-url='https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2016/06/announcing-Google-Cloud-Platform-Education-Grants-for-computer-science.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Vision%20API?hl=en' rel='tag'> Google Cloud Vision API </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20for%20Education?hl=en' rel='tag'> Google for Education </a> </span> </div> </div> </div> <div class='post' data-id='6864028832012452378' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html?hl=en' itemprop='url' title='GRAS helps build sustainable and ethical supply chains using Google Maps APIs and Google Cloud Platform'> GRAS helps build sustainable and ethical supply chains using Google Maps APIs and Google Cloud Platform </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, March 23, 2016 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Dr. Norbert Schmitz, Managing Director of Meo Carbon Solutions</span> <br /> <br /> <i><b>Editor's note:</b> This is the first in a series of &#8220;Mapping a better world&#8221; blog posts highlighting ways in which organizations are using location data to affect positive local and global change. Google Maps APIs continues to create opportunities and tools to support our community.</i><br /> <br /> <i>Today we hear from Dr. Norbert Schmitz, managing director of Meo Carbon Solutions. Read how <a href="http://meo-carbon.com/index_eng.html" target="_blank">Meo Carbon Solutions</a> and Google for Work Premier Partner <a href="http://www.wabion.com/en/homepage.html" target="_blank">Wabion</a> used Google Maps APIs and Google Cloud Platform to develop Global Risk Assessment Services (<a href="https://www.gras-system.org/" target="_blank">GRAS</a>). The tool provides reliable information about the ecological and social risks of expanding agriculture into natural habitats.<br /> </i> <br /> <br /> In the European Union, companies that sell biofuels must get certifications to show that producing their fuel &#8212; often made from agricultural crops &#8212; does not cause deforestation, the loss of biodiversity or the loss of carbon stocks. We established <a href="http://gst-prod.gras-system.org/webui/index.html#/worldmap/show" target="_blank">GRAS</a> to provide a single tool to gather and visualize this data required to support a credible certification. <br /> <br /> Through GRAS, we&#8217;ve made this information accessible not only to governments and NGOs, but also to businesses, financial institutions and individuals. For example, a U.S. company buying soybean oil from Brazil can use GRAS to verify the ecological and social risk exposure of the mills and the farmers supplying the mills.<br /> <br /> We decided the most effective way to present this complex set of information was to build a web app that would overlay data from multiple sources on top of a map. Using this tool, auditors can compare before-and-after maps of a certain area, and based on changes to the habitat, either grant or deny certifications. <br /> <br /> To build GRAS, we partnered with IT consultant <a href="http://www.wabion.com/en/homepage.html" target="_blank">Wabion</a>, a Google for Work Premier Partner. After testing several map solutions, we chose Google Maps because of its high performance, ability to easily integrate data from multiple sources, flexible APIs, solid support and large user community. <br /> <iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/0A2l6wGovyg" width="640"></iframe><br /> <br /> The GRAS website combines mapping information with data from dozens of government agencies, nongovernmental organizations (NGOs) and other global databases. It uses the <a href="https://developers.google.com/maps/documentation/javascript/" target="_blank">Google Maps JavaScript API</a> to display the base maps for the site. The API also visualizes layers and more than 100 types of data &#8212; including agriculture, deforestation and social welfare &#8212; on top of the maps. <br /> <br /> Users can upload and visualize their own data sets. The <a href="https://developers.google.com/maps/documentation/geocoding/intro" target="_blank">Google Maps Geocoding API</a> verifies map locations, and the <a href="https://developers.google.com/places/" target="_blank">Google Maps Places API</a> autocomplete makes it easy for site users to choose locations that they want to learn about. <br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3RwZ-6yZ5Eecl8MesdGmcKij3myEMbSB-N3gv6QkLzfT2YgqoiKRpKUJFN7fveU1Np-LonnP6EXnauyXs5OrgmxFSW7kVnL4kQmNvFCBeYa1WpA7Q4LZSDEdnn9Dt5hlpm5TATIW5OM/s1600/gras.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3RwZ-6yZ5Eecl8MesdGmcKij3myEMbSB-N3gv6QkLzfT2YgqoiKRpKUJFN7fveU1Np-LonnP6EXnauyXs5OrgmxFSW7kVnL4kQmNvFCBeYa1WpA7Q4LZSDEdnn9Dt5hlpm5TATIW5OM/s640/gras.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">A GRAS visualization of biodiversity risk in Brazil</td></tr> </tbody></table><br /> <br /> <br /> GRAS is powered by the <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> &#8212; specifically, <a href="https://cloud.google.com/appengine/" target="_blank">Google App Engine</a> and <a href="https://cloud.google.com/compute/" target="_blank">Google Compute Engine</a>. Combining these services with the Google Maps APIs lets us handle geodata in a 10-terabyte database, which hosts more than 100 layers, many of them extremely large.<br /> <br /> We&#8217;ve recently expanded GRAS beyond our original mission to provide insights for other industries by expanding the data layered on top of maps. We&#8217;ve included new information on biodiversity, land-use changes, and available carbon stock. We&#8217;ve also been able to incorporate numerous measurements of social health &#8212; ranging from the Global Slavery Index to the Global Hunger Index and the UNICEF index of access to drinking water and sanitation. <br /> <br /> Through GRAS, we&#8217;ve made this information accessible not only to governments and NGOs, but also to businesses, financial institutions and individuals. For example, a U.S. company buying soybean oil from Brazil can use GRAS to verify the ecological and social risk exposure of the mills and the farmers supplying the mills. <br /> <br /> Far exceeding our initial vision, the GRAS website combines transparency with the power of technology to help users in wide-ranging industries, &#8212;from food, to chemicals and energy &#8212; operate environmentally and socially sound supply chains.<br /> <br /> <br /> </div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Dr. Norbert Schmitz, Managing Director of Meo Carbon Solutions</span> <br /> <br /> <i><b>Editor's note:</b> This is the first in a series of &#8220;Mapping a better world&#8221; blog posts highlighting ways in which organizations are using location data to affect positive local and global change. Google Maps APIs continues to create opportunities and tools to support our community.</i><br /> <br /> <i>Today we hear from Dr. Norbert Schmitz, managing director of Meo Carbon Solutions. Read how <a href="http://meo-carbon.com/index_eng.html" target="_blank">Meo Carbon Solutions</a> and Google for Work Premier Partner <a href="http://www.wabion.com/en/homepage.html" target="_blank">Wabion</a> used Google Maps APIs and Google Cloud Platform to develop Global Risk Assessment Services (<a href="https://www.gras-system.org/" target="_blank">GRAS</a>). The tool provides reliable information about the ecological and social risks of expanding agriculture into natural habitats.<br /> </i> <br /> <br /> In the European Union, companies that sell biofuels must get certifications to show that producing their fuel &#8212; often made from agricultural crops &#8212; does not cause deforestation, the loss of biodiversity or the loss of carbon stocks. We established <a href="http://gst-prod.gras-system.org/webui/index.html#/worldmap/show" target="_blank">GRAS</a> to provide a single tool to gather and visualize this data required to support a credible certification. <br /> <br /> Through GRAS, we&#8217;ve made this information accessible not only to governments and NGOs, but also to businesses, financial institutions and individuals. For example, a U.S. company buying soybean oil from Brazil can use GRAS to verify the ecological and social risk exposure of the mills and the farmers supplying the mills.<br /> <br /> We decided the most effective way to present this complex set of information was to build a web app that would overlay data from multiple sources on top of a map. Using this tool, auditors can compare before-and-after maps of a certain area, and based on changes to the habitat, either grant or deny certifications. <br /> <br /> To build GRAS, we partnered with IT consultant <a href="http://www.wabion.com/en/homepage.html" target="_blank">Wabion</a>, a Google for Work Premier Partner. After testing several map solutions, we chose Google Maps because of its high performance, ability to easily integrate data from multiple sources, flexible APIs, solid support and large user community. <br /> <iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/0A2l6wGovyg" width="640"></iframe><br /> <br /> The GRAS website combines mapping information with data from dozens of government agencies, nongovernmental organizations (NGOs) and other global databases. It uses the <a href="https://developers.google.com/maps/documentation/javascript/" target="_blank">Google Maps JavaScript API</a> to display the base maps for the site. The API also visualizes layers and more than 100 types of data &#8212; including agriculture, deforestation and social welfare &#8212; on top of the maps. <br /> <br /> Users can upload and visualize their own data sets. The <a href="https://developers.google.com/maps/documentation/geocoding/intro" target="_blank">Google Maps Geocoding API</a> verifies map locations, and the <a href="https://developers.google.com/places/" target="_blank">Google Maps Places API</a> autocomplete makes it easy for site users to choose locations that they want to learn about. <br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3RwZ-6yZ5Eecl8MesdGmcKij3myEMbSB-N3gv6QkLzfT2YgqoiKRpKUJFN7fveU1Np-LonnP6EXnauyXs5OrgmxFSW7kVnL4kQmNvFCBeYa1WpA7Q4LZSDEdnn9Dt5hlpm5TATIW5OM/s1600/gras.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI3RwZ-6yZ5Eecl8MesdGmcKij3myEMbSB-N3gv6QkLzfT2YgqoiKRpKUJFN7fveU1Np-LonnP6EXnauyXs5OrgmxFSW7kVnL4kQmNvFCBeYa1WpA7Q4LZSDEdnn9Dt5hlpm5TATIW5OM/s640/gras.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">A GRAS visualization of biodiversity risk in Brazil</td></tr> </tbody></table><br /> <br /> <br /> GRAS is powered by the <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> &#8212; specifically, <a href="https://cloud.google.com/appengine/" target="_blank">Google App Engine</a> and <a href="https://cloud.google.com/compute/" target="_blank">Google Compute Engine</a>. Combining these services with the Google Maps APIs lets us handle geodata in a 10-terabyte database, which hosts more than 100 layers, many of them extremely large.<br /> <br /> We&#8217;ve recently expanded GRAS beyond our original mission to provide insights for other industries by expanding the data layered on top of maps. We&#8217;ve included new information on biodiversity, land-use changes, and available carbon stock. We&#8217;ve also been able to incorporate numerous measurements of social health &#8212; ranging from the Global Slavery Index to the Global Hunger Index and the UNICEF index of access to drinking water and sanitation. <br /> <br /> Through GRAS, we&#8217;ve made this information accessible not only to governments and NGOs, but also to businesses, financial institutions and individuals. For example, a U.S. company buying soybean oil from Brazil can use GRAS to verify the ecological and social risk exposure of the mills and the farmers supplying the mills. <br /> <br /> Far exceeding our initial vision, the GRAS website combines transparency with the power of technology to help users in wide-ranging industries, &#8212;from food, to chemicals and energy &#8212; operate environmentally and socially sound supply chains.<br /> <br /> <br /> </div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:GRAS helps build sustainable and ethical supply chains using Google Maps APIs and Google Cloud Platform&url=https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='11' data-onclick='' data-post-url='https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html?hl=en' data-url='https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2016/03/GRAS-helps-build-sustainable-and-ethical-supply-chains-using-Google-Maps-APIs-and-Google-Cloud-Platform.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20for%20Work?hl=en' rel='tag'> Google for Work </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Maps%20API?hl=en' rel='tag'> Google Maps API </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Maps%20for%20Work?hl=en' rel='tag'> Google Maps for Work </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Mapping%20a%20better%20world?hl=en' rel='tag'> Mapping a better world </a> </span> </div> </div> </div> <div class='post' data-id='8538970891931979367' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html?hl=en' itemprop='url' title='Sports Authority handles 2,000 transactions per second with Google Cloud Platform'> Sports Authority handles 2,000 transactions per second with Google Cloud Platform </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, February 19, 2016 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <span class="byline-author">Posted by Jon Byrum, Product Marketing Manager, Google Cloud Platform </span> <br /> <br /> <i>(Cross-posted on the Google Cloud Platform <a href="http://googlecloudplatform.blogspot.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html" target="_blank">Blog</a>.)</i> <br /> <br /> Athletic gear, much like all apparel categories, is quickly shifting to an online sales business. <a href="http://www.sportsauthority.com/home/index.jsp" target="_blank">Sports Authority</a>, seeing the benefits that cloud could offer around agility and speed, turned to <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> to help it respond to its customers faster. <br /> <br /> In 2014, Sports Authority&#8217;s technical team was asked to build a solution that would expose all in-store product inventory to its ecommerce site, <a href="http://sportsauthority.com/" target="_blank">sportsauthority.com</a>, allowing customers to see local store availability of products as they were shopping online. That&#8217;s nearly half a million products to choose from in over 460 stores across the U.S. and Puerto Rico. <br /> <br /> This use case posed a major challenge for the company. Its in-store inventory data was &#8220;locked&#8221; deep inside a mainframe. Exposing millions of products to thousands of customers, 24 hours a day, seven days a week would not be possible using this system. <br /> <br /> The requirements for a new solution included finding the customer&#8217;s location, searching the 90 million record inventory system and returning product availability in just the handful of stores nearest in location to that particular customer. On top of that, the API would need to serve at least 50 customers per second, while returning results in less than 200 milliseconds.<br /> <br /> <h3> Choosing the right cloud provider</h3> At the time this project began, Sports Authority had already been a <a href="https://apps.google.com/" target="_blank">Google Apps for Work</a> (Gmail, Google Sites, Docs) customer since 2011. However, it had never built any custom applications on <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a>. <br /> <br /> After a period of due diligence checking out competing cloud provider options, Sports Authority decided that <a href="https://cloud.google.com/appengine/" target="_blank">Google App Engine</a> and <a href="https://cloud.google.com/datastore/" target="_blank">Google Cloud Datastore</a> had the right combination of attributes &#8212; elastic scaling, resiliency and simplicity of deployment &#8212; to support this new solution. <br /> <br /> Through the combined efforts of a dedicated project team, business partners and three or four talented developers, it was able to build a comprehensive solution on Cloud Platform in about five months. It consisted of multiple modules: 1) batch processes, using Informatica to push millions of product changes from its IBM mainframe to <a href="https://cloud.google.com/storage/" target="_blank">Google Cloud Storage</a> each night, 2) load processes &#8212; python code running on App Engine, which spawn task queue jobs to load Cloud Datastore, and 3) a series of SOAP and REST APIs to expose the search functionality to its ecommerce website. <br /> <br /> Sports Authority used tools including <a href="https://www.soapui.org/" target="_blank">SOAPUI</a> and <a href="https://www.loadui.org/" target="_blank">LOADUI</a> to simulate thousands of virtual users to measure the scalability of SOAP and REST APIs. It found that as the number of transactions grew past 2,000 per second, App Engine and Cloud Datastore continued to scale seamlessly, easily meeting its target response times. <br /> <br /> The company implemented the inventory locator solution just in time for the 2014 holiday season. It performed admirably during that peak selling period and continues to do so today.<br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6wrCRu4-GLbhgbMWio4vpu3RQjDTyCZKMiAlNl3pLH-Wcc65mqfx98-i1pp1VLr6RaeFE_6N3A-9XpFexU8W7TgdC2TMR9_xglBrmCMqHqHaBbta8a_XkpqKk5O9FmihbIL71lu9qA3lm/s1600/sports-authority-1.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="472" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6wrCRu4-GLbhgbMWio4vpu3RQjDTyCZKMiAlNl3pLH-Wcc65mqfx98-i1pp1VLr6RaeFE_6N3A-9XpFexU8W7TgdC2TMR9_xglBrmCMqHqHaBbta8a_XkpqKk5O9FmihbIL71lu9qA3lm/s640/sports-authority-1.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">This screenshot shows what customers see when they shop for products on the website &#8212; a list of local stores, showing the availability of any given product in each store</td></tr> </tbody></table> <br /> <br /> <br /> When a customer finds a product she's interested in buying, the website requests inventory availability from Sports Authority&#8217;s cloud API, which provides a list of stores and product availability to the customer, as exhibited in the running shoe example above.<br /> <br /> <h3> In-store kiosk</h3> As Sports Authority became comfortable building solutions on Cloud Platform, it opened its eyes to other possibilities for creating new solutions to better serve its customers. <br /> <br /> For example, it recently developed an in-store kiosk, which allows customers to search for products that may not be available in that particular store. It also lets them enroll in the loyalty program and purchase gift cards. This kiosk is implemented on a <a href="https://www.google.com/work/chrome/devices/for-meetings/" target="_blank">Google Chromebox</a>, connected to a web application running on App Engine.<br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigtjGZS0JAOxXcu2dDnujMBrQubKZiXryIX9uLFhjiVaiWIXyjs4IiJmUKtOe6Ttk3Uj8lMVKLWZvt7QtIZVAisnTMYk7a8ju3Neys0FCnLsoiDCkXE35gUuqdLIppSHhyphenhyphenpteWfwhNkPp4/s1600/sports-authority-3.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigtjGZS0JAOxXcu2dDnujMBrQubKZiXryIX9uLFhjiVaiWIXyjs4IiJmUKtOe6Ttk3Uj8lMVKLWZvt7QtIZVAisnTMYk7a8ju3Neys0FCnLsoiDCkXE35gUuqdLIppSHhyphenhyphenpteWfwhNkPp4/s640/sports-authority-3.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">This image shows the in-store kiosk that customers use to locate products available in other stores.&nbsp;</td></tr> </tbody></table> <br /> <div style="text-align: left;"> </div> <br /> <br /> <br /> <h3> Internal store portal</h3> Additionally, it built a store portal and task management system, which facilitates communication between the corporate office and its stores. This helps the store team members plan and execute their work more efficiently, allowing them to serve customers better when needs arise. This solution utilizes App Engine, Cloud Datastore and <a href="https://developers.google.com/custom-search/" target="_blank">Google Custom Search</a>, and was built with the help of a local Google partner, <a href="http://tempusnova.com/" target="_blank">Tempus Nova</a>.<br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd4bBgLMdOP2ybnq_cR5kWKMc2z6HpHdnCNo6GXLRYo2qaJCOQt8EeNB4Dsg3Q6A7knXIdktJ7GG_dP5ZygEPaQPwazozrByf5RuGhkik2KvHmzT8J6k4M9mW2VvVHoBTZVITyD9VAElwF/s1600/sports-authority-2.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd4bBgLMdOP2ybnq_cR5kWKMc2z6HpHdnCNo6GXLRYo2qaJCOQt8EeNB4Dsg3Q6A7knXIdktJ7GG_dP5ZygEPaQPwazozrByf5RuGhkik2KvHmzT8J6k4M9mW2VvVHoBTZVITyD9VAElwF/s640/sports-authority-2.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">This screenshot shows the internal store portal that employees use to monitor daily tasks.</td></tr> </tbody></table> <br /> <br /> <br /> <br /> Learning how to build software in any new environment such as Cloud Platform takes time, dedication and a willingness to learn. Once up to speed, the productivity and power of Google Cloud Platform allowed the Sports Authority team to work like a software company and build quickly while wielding great power.<br /> <br /></div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <span class="byline-author">Posted by Jon Byrum, Product Marketing Manager, Google Cloud Platform </span> <br /> <br /> <i>(Cross-posted on the Google Cloud Platform <a href="http://googlecloudplatform.blogspot.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html" target="_blank">Blog</a>.)</i> <br /> <br /> Athletic gear, much like all apparel categories, is quickly shifting to an online sales business. <a href="http://www.sportsauthority.com/home/index.jsp" target="_blank">Sports Authority</a>, seeing the benefits that cloud could offer around agility and speed, turned to <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> to help it respond to its customers faster. <br /> <br /> In 2014, Sports Authority&#8217;s technical team was asked to build a solution that would expose all in-store product inventory to its ecommerce site, <a href="http://sportsauthority.com/" target="_blank">sportsauthority.com</a>, allowing customers to see local store availability of products as they were shopping online. That&#8217;s nearly half a million products to choose from in over 460 stores across the U.S. and Puerto Rico. <br /> <br /> This use case posed a major challenge for the company. Its in-store inventory data was &#8220;locked&#8221; deep inside a mainframe. Exposing millions of products to thousands of customers, 24 hours a day, seven days a week would not be possible using this system. <br /> <br /> The requirements for a new solution included finding the customer&#8217;s location, searching the 90 million record inventory system and returning product availability in just the handful of stores nearest in location to that particular customer. On top of that, the API would need to serve at least 50 customers per second, while returning results in less than 200 milliseconds.<br /> <br /> <h3> Choosing the right cloud provider</h3> At the time this project began, Sports Authority had already been a <a href="https://apps.google.com/" target="_blank">Google Apps for Work</a> (Gmail, Google Sites, Docs) customer since 2011. However, it had never built any custom applications on <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a>. <br /> <br /> After a period of due diligence checking out competing cloud provider options, Sports Authority decided that <a href="https://cloud.google.com/appengine/" target="_blank">Google App Engine</a> and <a href="https://cloud.google.com/datastore/" target="_blank">Google Cloud Datastore</a> had the right combination of attributes &#8212; elastic scaling, resiliency and simplicity of deployment &#8212; to support this new solution. <br /> <br /> Through the combined efforts of a dedicated project team, business partners and three or four talented developers, it was able to build a comprehensive solution on Cloud Platform in about five months. It consisted of multiple modules: 1) batch processes, using Informatica to push millions of product changes from its IBM mainframe to <a href="https://cloud.google.com/storage/" target="_blank">Google Cloud Storage</a> each night, 2) load processes &#8212; python code running on App Engine, which spawn task queue jobs to load Cloud Datastore, and 3) a series of SOAP and REST APIs to expose the search functionality to its ecommerce website. <br /> <br /> Sports Authority used tools including <a href="https://www.soapui.org/" target="_blank">SOAPUI</a> and <a href="https://www.loadui.org/" target="_blank">LOADUI</a> to simulate thousands of virtual users to measure the scalability of SOAP and REST APIs. It found that as the number of transactions grew past 2,000 per second, App Engine and Cloud Datastore continued to scale seamlessly, easily meeting its target response times. <br /> <br /> The company implemented the inventory locator solution just in time for the 2014 holiday season. It performed admirably during that peak selling period and continues to do so today.<br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6wrCRu4-GLbhgbMWio4vpu3RQjDTyCZKMiAlNl3pLH-Wcc65mqfx98-i1pp1VLr6RaeFE_6N3A-9XpFexU8W7TgdC2TMR9_xglBrmCMqHqHaBbta8a_XkpqKk5O9FmihbIL71lu9qA3lm/s1600/sports-authority-1.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="472" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6wrCRu4-GLbhgbMWio4vpu3RQjDTyCZKMiAlNl3pLH-Wcc65mqfx98-i1pp1VLr6RaeFE_6N3A-9XpFexU8W7TgdC2TMR9_xglBrmCMqHqHaBbta8a_XkpqKk5O9FmihbIL71lu9qA3lm/s640/sports-authority-1.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">This screenshot shows what customers see when they shop for products on the website &#8212; a list of local stores, showing the availability of any given product in each store</td></tr> </tbody></table> <br /> <br /> <br /> When a customer finds a product she's interested in buying, the website requests inventory availability from Sports Authority&#8217;s cloud API, which provides a list of stores and product availability to the customer, as exhibited in the running shoe example above.<br /> <br /> <h3> In-store kiosk</h3> As Sports Authority became comfortable building solutions on Cloud Platform, it opened its eyes to other possibilities for creating new solutions to better serve its customers. <br /> <br /> For example, it recently developed an in-store kiosk, which allows customers to search for products that may not be available in that particular store. It also lets them enroll in the loyalty program and purchase gift cards. This kiosk is implemented on a <a href="https://www.google.com/work/chrome/devices/for-meetings/" target="_blank">Google Chromebox</a>, connected to a web application running on App Engine.<br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigtjGZS0JAOxXcu2dDnujMBrQubKZiXryIX9uLFhjiVaiWIXyjs4IiJmUKtOe6Ttk3Uj8lMVKLWZvt7QtIZVAisnTMYk7a8ju3Neys0FCnLsoiDCkXE35gUuqdLIppSHhyphenhyphenpteWfwhNkPp4/s1600/sports-authority-3.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigtjGZS0JAOxXcu2dDnujMBrQubKZiXryIX9uLFhjiVaiWIXyjs4IiJmUKtOe6Ttk3Uj8lMVKLWZvt7QtIZVAisnTMYk7a8ju3Neys0FCnLsoiDCkXE35gUuqdLIppSHhyphenhyphenpteWfwhNkPp4/s640/sports-authority-3.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">This image shows the in-store kiosk that customers use to locate products available in other stores.&nbsp;</td></tr> </tbody></table> <br /> <div style="text-align: left;"> </div> <br /> <br /> <br /> <h3> Internal store portal</h3> Additionally, it built a store portal and task management system, which facilitates communication between the corporate office and its stores. This helps the store team members plan and execute their work more efficiently, allowing them to serve customers better when needs arise. This solution utilizes App Engine, Cloud Datastore and <a href="https://developers.google.com/custom-search/" target="_blank">Google Custom Search</a>, and was built with the help of a local Google partner, <a href="http://tempusnova.com/" target="_blank">Tempus Nova</a>.<br /> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody> <tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd4bBgLMdOP2ybnq_cR5kWKMc2z6HpHdnCNo6GXLRYo2qaJCOQt8EeNB4Dsg3Q6A7knXIdktJ7GG_dP5ZygEPaQPwazozrByf5RuGhkik2KvHmzT8J6k4M9mW2VvVHoBTZVITyD9VAElwF/s1600/sports-authority-2.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd4bBgLMdOP2ybnq_cR5kWKMc2z6HpHdnCNo6GXLRYo2qaJCOQt8EeNB4Dsg3Q6A7knXIdktJ7GG_dP5ZygEPaQPwazozrByf5RuGhkik2KvHmzT8J6k4M9mW2VvVHoBTZVITyD9VAElwF/s640/sports-authority-2.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">This screenshot shows the internal store portal that employees use to monitor daily tasks.</td></tr> </tbody></table> <br /> <br /> <br /> <br /> Learning how to build software in any new environment such as Cloud Platform takes time, dedication and a willingness to learn. Once up to speed, the productivity and power of Google Cloud Platform allowed the Sports Authority team to work like a software company and build quickly while wielding great power.<br /> <br /></div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Sports Authority handles 2,000 transactions per second with Google Cloud Platform&url=https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='2' data-onclick='' data-post-url='https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html?hl=en' data-url='https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2016/02/Sports-Authority-handles-2000-transactions-per-second-with-Google-Cloud-Platform.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/Chrome%20for%20Work?hl=en' rel='tag'> Chrome for Work </a> , <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Apps%20for%20Work?hl=en' rel='tag'> Google Apps for Work </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Datastore?hl=en' rel='tag'> Google Cloud Datastore </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/google%20cloud%20storage?hl=en' rel='tag'> google cloud storage </a> </span> </div> </div> </div> <div class='post' data-id='349465435980162111' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2014/10/radiology-in-cloud.html?hl=en' itemprop='url' title='Radiology in the cloud'> Radiology in the cloud </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, October 20, 2014 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> Posted by Dr. Naoyuki Kitamura, CEO, Japan&#8217;s Medical Network Systems Inc.<br /> <i><br /> </i> <i>Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2014/10/radiology-in-the-cloud.html" target="_blank">Google Cloud Platform blog</a></i><br /> <br /> Japan faces a critical shortage of radiologists. Although major hospitals are well equipped to conduct scans, the scarcity of experts to read them and give patients their diagnoses means that people, especially those in rural areas, often have to wait a long time to discover their results. This can have tragic consequences for people with serious conditions.<br /> <br /> To address this shortage and help people get accurate diagnoses faster, Medical Network Systems Inc. (MNES) in Hiroshima started running a <a href="https://www.lookrec.com/hp/EN/" target="_blank">remote diagnosis service</a> in 2000. Rather than waiting for patients to come to hospitals, we bring the radiology equipment to them. This teleradiology service has helped combat the challenge of getting scanning technology to people in remote areas; however, we are still short on specialists that can read the scans, and we wanted to find ways to give access to patients in areas without specialists. <br /> <br /> Last year, our team started using <a href="https://cloud.google.com/">Google Cloud Platform</a> to power our remote-diagnosis systems. Patients used to be given a hard copy of their scan to take to a doctor or specialist. Moving the process to the cloud speeds everything up. All of our buses are equipped with CT scanning machines, so our technicians upload images and scans right from the bus. Specialists can then log into the system from wherever they&#8217;re working and see the scans and diagnose the patient remotely. <br /> <br /> Reading scans is a very specialized process. Radiologists must examine lots of images and scans in a very particular sequence, and it&#8217;s important that this process isn&#8217;t laggy or slow. One of the benefits of using Google&#8217;s services is that they can handle massive volumes of information. <a href="https://cloud.google.com/appengine/">Google App Engine</a> processes the images and data in the right sequence and enables us to cross reference patient inputs with existing radiographic and pathological information.<br /> <iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/GMGiwOhHW9A" width="640"></iframe><br /> Instead of waiting for a few days or a week for a diagnosis, which was the usual turnaround for our teleradiology service, patients get their results within a few hours. And it&#8217;s not just our patients benefiting from remote diagnosis; enabling our radiologists to work from anywhere has meant that many of our female specialists are able to stay in the workforce &#8212; diagnosing scans while working from home and taking care of their kids. With so few radiologists in Japan, this flexibility helps us keep skilled technicians in the workforce. <br /> <br /> We&#8217;re optimistic about the potential for cloud-based technology to enrich our understanding of pathological issues and believe it signals a new chapter for the healthcare industry by removing geographical barriers between patients and doctors.<br /> <br /></div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> Posted by Dr. Naoyuki Kitamura, CEO, Japan&#8217;s Medical Network Systems Inc.<br /> <i><br /> </i> <i>Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2014/10/radiology-in-the-cloud.html" target="_blank">Google Cloud Platform blog</a></i><br /> <br /> Japan faces a critical shortage of radiologists. Although major hospitals are well equipped to conduct scans, the scarcity of experts to read them and give patients their diagnoses means that people, especially those in rural areas, often have to wait a long time to discover their results. This can have tragic consequences for people with serious conditions.<br /> <br /> To address this shortage and help people get accurate diagnoses faster, Medical Network Systems Inc. (MNES) in Hiroshima started running a <a href="https://www.lookrec.com/hp/EN/" target="_blank">remote diagnosis service</a> in 2000. Rather than waiting for patients to come to hospitals, we bring the radiology equipment to them. This teleradiology service has helped combat the challenge of getting scanning technology to people in remote areas; however, we are still short on specialists that can read the scans, and we wanted to find ways to give access to patients in areas without specialists. <br /> <br /> Last year, our team started using <a href="https://cloud.google.com/">Google Cloud Platform</a> to power our remote-diagnosis systems. Patients used to be given a hard copy of their scan to take to a doctor or specialist. Moving the process to the cloud speeds everything up. All of our buses are equipped with CT scanning machines, so our technicians upload images and scans right from the bus. Specialists can then log into the system from wherever they&#8217;re working and see the scans and diagnose the patient remotely. <br /> <br /> Reading scans is a very specialized process. Radiologists must examine lots of images and scans in a very particular sequence, and it&#8217;s important that this process isn&#8217;t laggy or slow. One of the benefits of using Google&#8217;s services is that they can handle massive volumes of information. <a href="https://cloud.google.com/appengine/">Google App Engine</a> processes the images and data in the right sequence and enables us to cross reference patient inputs with existing radiographic and pathological information.<br /> <iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/GMGiwOhHW9A" width="640"></iframe><br /> Instead of waiting for a few days or a week for a diagnosis, which was the usual turnaround for our teleradiology service, patients get their results within a few hours. And it&#8217;s not just our patients benefiting from remote diagnosis; enabling our radiologists to work from anywhere has meant that many of our female specialists are able to stay in the workforce &#8212; diagnosing scans while working from home and taking care of their kids. With so few radiologists in Japan, this flexibility helps us keep skilled technicians in the workforce. <br /> <br /> We&#8217;re optimistic about the potential for cloud-based technology to enrich our understanding of pathological issues and believe it signals a new chapter for the healthcare industry by removing geographical barriers between patients and doctors.<br /> <br /></div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2014/10/radiology-in-cloud.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Radiology in the cloud&url=https://cloud.googleblog.com/2014/10/radiology-in-cloud.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2014/10/radiology-in-cloud.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='6' data-onclick='' data-post-url='https://cloud.googleblog.com/2014/10/radiology-in-cloud.html?hl=en' data-url='https://cloud.googleblog.com/2014/10/radiology-in-cloud.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2014/10/radiology-in-cloud.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> </span> </div> </div> </div> <div class='post' data-id='2577379997244478183' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html?hl=en' itemprop='url' title='Switch.co launches a business phone system built for — and with help from — Google Apps for Work'> Switch.co launches a business phone system built for &#8212; and with help from &#8212; Google Apps for Work </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, October 2, 2014 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <span class="byline-author"></span>Posted by Brian Peterson and John Rector, co-founders, Switch Communications<br /> <i><br /> </i> <i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2014/10/switchco-dials-in-with-google-cloud.html" target="_blank">Google Cloud Platform blog</a>)</i><br /> <br /> <i>Today&#8217;s guest bloggers are Brian Peterson and John Rector, co-founders of <a href="https://www.switch.co/" target="_blank">Switch Communications</a>, a San Francisco-based voice communications startup.</i><br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipwijc0V8-RUXlz9Sc-UUFgEX22y8JzTjW_87Q9JtUT65Pj2GzwdUN9ZibM9NkJnTHbsKaUowfP3q10eLNFVjQ3nsLm1CHR1jU-bBA5eSy2B9_XZTYwMGXLbjtDe-lNYxNF409u71YXFs/s1600/Switch.co_apps.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipwijc0V8-RUXlz9Sc-UUFgEX22y8JzTjW_87Q9JtUT65Pj2GzwdUN9ZibM9NkJnTHbsKaUowfP3q10eLNFVjQ3nsLm1CHR1jU-bBA5eSy2B9_XZTYwMGXLbjtDe-lNYxNF409u71YXFs/s1600/Switch.co_apps.jpg" width="640" /></a></div> When companies first started using business phones, work was a place you went; today, work is a thing you do, whether you&#8217;re at your desk or in transit. Yet the business phone hasn&#8217;t evolved to work the way that you do. With today&#8217;s mobile worker in mind, we created <a href="https://www.switch.co/" target="_blank">Switch.co</a>, a business phone system built in the cloud, from the ground up. With Switch.co, you can receive calls on any device, whether it&#8217;s your desktop through the Chrome app, on mobile with the Android or iOS apps, or even your old desk phone (if you really, really want to). You can even switch seamlessly between devices, so if you start a call on your cell in your car, you can transfer it to your desk when you get into the office without having to hang up then dial back in.<br /> <br /> On top of that, Switch.co is designed specifically for <a href="https://www.google.com/enterprise/apps/business/" target="_blank">Google Apps for Work</a> users: given its rich set of APIs, Google Apps is deeply integrated into the app, allowing users to view recent <a href="https://www.google.com/enterprise/apps/business/products/gmail/" target="_blank">Gmail</a> messages, see upcoming <a href="https://www.google.com/enterprise/apps/business/products/calendar/" target="_blank">Calendar</a> events, and access recently shared Docs while in the context of a conversation. You can even launch a <a href="https://www.google.com/enterprise/apps/business/products/hangouts/" target="_blank">Hangout</a> directly from a call. We know Google Apps admins expect setup and management to be easy, so we&#8217;ve ensured you can get started with Switch.co over your lunch break.<br /> <br /> We built Switch.co for Google Apps users because we&#8217;re such heavy Google users ourselves: Switch.co <a href="http://googlecloudplatform.blogspot.com/2014/10/switchco-dials-in-with-google-cloud.html" target="_blank">runs on Google App Engine</a> and our team relies on Google Apps internally to keep business running smoothly and efficiently. Because many of our employees work remotely, it&#8217;s vital that we can access information at any time and on any device, then collaborate in real-time, no matter where we are. With single sign-on, we can access all the Google products we need with just one log-in; with <a href="https://www.google.com/enterprise/apps/business/products/drive/" target="_blank">Google Drive</a>, we can store and share all of our files in one place; and with <a href="https://www.google.com/enterprise/apps/business/products/sheets/" target="_blank">Google Sheets</a> and <a href="https://www.google.com/enterprise/apps/business/products/docs/" target="_blank">Google Docs</a>, we can work together on projects without worrying about out of date attachments. <br /> <br /> Drive is particularly powerful in enabling our design and engineering teams to easily share and centralize the many assets required to take a idea from a concept to launch. We deal with a ton of huge files &#8211; hi-res graphics, professional grade videos, Adobe Illustrator files &#8212; and the ability to store and share them from Drive makes working together so much more seamless. Not only are these files too big for email, but they&#8217;d also otherwise splinter into countless versions distributed throughout our employees&#8217; individual hard drives. Plus, the files are backed up by Google so we know they won&#8217;t get lost, and they&#8217;re centralized in one system, so we don&#8217;t have to worry about sensitive data leaving our company&#8217;s domain. And given that Google got its start as a search company, being able to search by document name or the copy within a file makes finding what you need easy and fast.<br /> <br /> We rely on Google Sheets for our highly collaborative projects, like launch planning. Our entire calendar for the development and promotion of Switch.co, for example, was created and constantly updated in a Google spreadsheet. That way, our marketing and PR teams can access the latest version of the go-to-market plan whenever they need it. <br /> <br /> We couldn&#8217;t have launched Switch.co without the power of Google Apps for Work enabling us to collaborate and work with the flexibility that a fast-paced startup needs. Google Apps for Work does for Switch Communications what Switch.co does for callers everywhere &#8212; it enables you to be agile, connected, and always on the go. <br /> <br /></div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <span class="byline-author"></span>Posted by Brian Peterson and John Rector, co-founders, Switch Communications<br /> <i><br /> </i> <i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2014/10/switchco-dials-in-with-google-cloud.html" target="_blank">Google Cloud Platform blog</a>)</i><br /> <br /> <i>Today&#8217;s guest bloggers are Brian Peterson and John Rector, co-founders of <a href="https://www.switch.co/" target="_blank">Switch Communications</a>, a San Francisco-based voice communications startup.</i><br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipwijc0V8-RUXlz9Sc-UUFgEX22y8JzTjW_87Q9JtUT65Pj2GzwdUN9ZibM9NkJnTHbsKaUowfP3q10eLNFVjQ3nsLm1CHR1jU-bBA5eSy2B9_XZTYwMGXLbjtDe-lNYxNF409u71YXFs/s1600/Switch.co_apps.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipwijc0V8-RUXlz9Sc-UUFgEX22y8JzTjW_87Q9JtUT65Pj2GzwdUN9ZibM9NkJnTHbsKaUowfP3q10eLNFVjQ3nsLm1CHR1jU-bBA5eSy2B9_XZTYwMGXLbjtDe-lNYxNF409u71YXFs/s1600/Switch.co_apps.jpg" width="640" /></a></div> When companies first started using business phones, work was a place you went; today, work is a thing you do, whether you&#8217;re at your desk or in transit. Yet the business phone hasn&#8217;t evolved to work the way that you do. With today&#8217;s mobile worker in mind, we created <a href="https://www.switch.co/" target="_blank">Switch.co</a>, a business phone system built in the cloud, from the ground up. With Switch.co, you can receive calls on any device, whether it&#8217;s your desktop through the Chrome app, on mobile with the Android or iOS apps, or even your old desk phone (if you really, really want to). You can even switch seamlessly between devices, so if you start a call on your cell in your car, you can transfer it to your desk when you get into the office without having to hang up then dial back in.<br /> <br /> On top of that, Switch.co is designed specifically for <a href="https://www.google.com/enterprise/apps/business/" target="_blank">Google Apps for Work</a> users: given its rich set of APIs, Google Apps is deeply integrated into the app, allowing users to view recent <a href="https://www.google.com/enterprise/apps/business/products/gmail/" target="_blank">Gmail</a> messages, see upcoming <a href="https://www.google.com/enterprise/apps/business/products/calendar/" target="_blank">Calendar</a> events, and access recently shared Docs while in the context of a conversation. You can even launch a <a href="https://www.google.com/enterprise/apps/business/products/hangouts/" target="_blank">Hangout</a> directly from a call. We know Google Apps admins expect setup and management to be easy, so we&#8217;ve ensured you can get started with Switch.co over your lunch break.<br /> <br /> We built Switch.co for Google Apps users because we&#8217;re such heavy Google users ourselves: Switch.co <a href="http://googlecloudplatform.blogspot.com/2014/10/switchco-dials-in-with-google-cloud.html" target="_blank">runs on Google App Engine</a> and our team relies on Google Apps internally to keep business running smoothly and efficiently. Because many of our employees work remotely, it&#8217;s vital that we can access information at any time and on any device, then collaborate in real-time, no matter where we are. With single sign-on, we can access all the Google products we need with just one log-in; with <a href="https://www.google.com/enterprise/apps/business/products/drive/" target="_blank">Google Drive</a>, we can store and share all of our files in one place; and with <a href="https://www.google.com/enterprise/apps/business/products/sheets/" target="_blank">Google Sheets</a> and <a href="https://www.google.com/enterprise/apps/business/products/docs/" target="_blank">Google Docs</a>, we can work together on projects without worrying about out of date attachments. <br /> <br /> Drive is particularly powerful in enabling our design and engineering teams to easily share and centralize the many assets required to take a idea from a concept to launch. We deal with a ton of huge files &#8211; hi-res graphics, professional grade videos, Adobe Illustrator files &#8212; and the ability to store and share them from Drive makes working together so much more seamless. Not only are these files too big for email, but they&#8217;d also otherwise splinter into countless versions distributed throughout our employees&#8217; individual hard drives. Plus, the files are backed up by Google so we know they won&#8217;t get lost, and they&#8217;re centralized in one system, so we don&#8217;t have to worry about sensitive data leaving our company&#8217;s domain. And given that Google got its start as a search company, being able to search by document name or the copy within a file makes finding what you need easy and fast.<br /> <br /> We rely on Google Sheets for our highly collaborative projects, like launch planning. Our entire calendar for the development and promotion of Switch.co, for example, was created and constantly updated in a Google spreadsheet. That way, our marketing and PR teams can access the latest version of the go-to-market plan whenever they need it. <br /> <br /> We couldn&#8217;t have launched Switch.co without the power of Google Apps for Work enabling us to collaborate and work with the flexibility that a fast-paced startup needs. Google Apps for Work does for Switch Communications what Switch.co does for callers everywhere &#8212; it enables you to be agile, connected, and always on the go. <br /> <br /></div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Switch.co launches a business phone system built for — and with help from — Google Apps for Work&url=https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='2' data-onclick='' data-post-url='https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html?hl=en' data-url='https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2014/10/switchco-launches-business-phone-system.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer?hl=en' rel='tag'> customer </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Apps%20for%20Work?hl=en' rel='tag'> Google Apps for Work </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Hangouts?hl=en' rel='tag'> Google Hangouts </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Maps?hl=en' rel='tag'> Google Maps </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Sheets?hl=en' rel='tag'> Google Sheets </a> </span> </div> </div> </div> <div class='post' data-id='8414885862567896818' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html?hl=en' itemprop='url' title='CI&amp;T uses Google Cloud Platform to power the Coca-Cola “Happiness Flag” unveiled on the pitch at the opening match of the 2014 FIFA World Cup™'> CI&amp;T uses Google Cloud Platform to power the Coca-Cola &#8220;Happiness Flag&#8221; unveiled on the pitch at the opening match of the 2014 FIFA World Cup&#8482; </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Saturday, June 14, 2014 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Daniel Viveiros, CI&amp;T&#8217;s Head of Technology</span> <br /><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/" target="_blank">Google Cloud Platform Blog</a>)</i> <br /><br /><i><b>Editor's note:</b> Today's guest post is from Daniel Viveiros, Head of Technology at <a href="http://www.ciandt.com/google" target="_blank">CI&amp;T</a>, a Google Cloud Platform Partner of the Year LATAM 2013. In this post, Daniel describes how CI&amp;T in partnership with Coca-Cola built the &#8216;Happiness Flag&#8217; for the Coca-Cola 2014 FIFA World Cup&#8482; campaign in Brazil. To learn more about the Happiness flag visit this <a href="http://www.ciandt.com/card/coca-cola-happiness-flag" target="_blank">website</a>. <br /></i> <br /><i><br /></i>As part of the &#8216;The World&#8217;s Cup&#8217; campaign, Coca-Cola wanted to do something that would visually illustrate soccer&#8217;s global reach. Coca-Cola invited fans around the world to share their photos to create the <a href="http://www2.happinessflag.com/?l=en" target="_blank">Happiness Flag</a> -- the world&#8217;s largest mosaic flag crafted from thousands of crowdsourced images submitted by people in more than 200 countries. The flag, 3,015 square meters in size, was unveiled during the opening ceremony of the 2014 FIFA World Cup&#8482;. <br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm-SCHFym9IrCF4snRompGpXIyc2TC8ck7BOnOO-5TMCmLNbpg8j9bZLiV6oXBwdAF2fnveXx_fUtGmOMd7PMsBe8E93d2S8Kpzm2DPkbIfEJuAg2sAUrWxfEN78WqsmXSg6DIooTRM8w/s1600/Screen+Shot+2014-06-14+at+10.51.56+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="355" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm-SCHFym9IrCF4snRompGpXIyc2TC8ck7BOnOO-5TMCmLNbpg8j9bZLiV6oXBwdAF2fnveXx_fUtGmOMd7PMsBe8E93d2S8Kpzm2DPkbIfEJuAg2sAUrWxfEN78WqsmXSg6DIooTRM8w/s1600/Screen+Shot+2014-06-14+at+10.51.56+AM.png" width="640" /></a></div>A project of this scale calls for high performing and reliable technology, so when we started working with Coca-Cola to build the infrastructure for the Happiness Flag campaign, we knew we had to use <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a>. By using Google Cloud Platform, we turned a big, innovative idea into reality on a global scale.<br /><br />To create the <a href="http://www.thinkwithgoogle.com/campaigns/coca-cola-the-happiness-flag.html" target="_blank">Happiness Flag</a>, we leveraged the whole Google Cloud Platform stack as shown below:<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh90JkDDkqsbb5gHjnh_qatHRK3ZBdpXPlhuFkmOVfKyKshY8mo0pUV_agPNThLYzaTY5BhnGfxw9LgYy9rbh9NIYIomzoYkdoOOOAnHvGrU5jy1WvY4Oa4o0IC5tnmvRPpnUB6WNYUkUc/s1600/Screen+Shot+2014-06-14+at+10.50.20+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="491" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh90JkDDkqsbb5gHjnh_qatHRK3ZBdpXPlhuFkmOVfKyKshY8mo0pUV_agPNThLYzaTY5BhnGfxw9LgYy9rbh9NIYIomzoYkdoOOOAnHvGrU5jy1WvY4Oa4o0IC5tnmvRPpnUB6WNYUkUc/s1600/Screen+Shot+2014-06-14+at+10.50.20+AM.png" width="640" /></a></div><a href="https://cloud.google.com/products/app-engine/" target="_blank">Google App Engine</a> enabled us to handle the computing workload, capable of handling millions of images via Twitter, Facebook, Instagram and email, to the searches for images and view requests. The architecture was scalable to meet this kind of transaction demand and the fluctuations in traffic. We stored all the images in <a href="https://cloud.google.com/products/cloud-storage/" target="_blank">Google Cloud Storage</a>, where integrated edge caching support and image services made it an ideal choice for serving the images. Meanwhile, <a href="https://cloud.google.com/products/compute-engine/" target="_blank">Google Compute Engine</a> gave us the capability for long-running processes, such as the Twitter integration and advanced image transformations. We were able to show how powerful the creation of hybrid environments can be, using both Platform-as-a-Service (Google App Engine) and raw virtual machines (Google Compute Engine) in the cloud.<br /><br />We used other out-of-the-box Google Cloud Platform technologies like <a href="https://developers.google.com/appengine/docs/adminconsole/memcache" target="_blank">Memcache</a>, <a href="https://cloud.google.com/products/cloud-datastore/" target="_blank">Datastore</a> and Task Queues to ensure outstanding levels of performance and scalability. We know that many fans will be viewing the Happiness Flag on their mobile devices, so we needed a platform that would offer different capacities of computational power. The system provides amazing user experience with high performance and low latency, regardless of the device and its location. Using Google Cloud Platform, the campaign runs smoothly 24/7 and includes redundancy, failover techniques, backups and state-of-the-art monitoring. Plus, it&#8217;s affordable.<br /><br />After the physical flag was unveiled before the opening match, the digital mosaic was made available with a Google map-like zoom in and out with eleven levels of detail. Anyone who submitted an image can now search for themselves on the virtual flag and the search results will show up as pins in the mosaic, like locations found in a Google map. By clicking on the pin, their photos open up in an overlay and they are taken to the maximum level of zoom in to see the "neighborhood" around their image in the flag. After the match, a link to the <a href="http://www2.happinessflag.com/?l=en" target="_blank">Happiness Flag site</a> was sent to each participant as a souvenir. <br /><br />Our goal was to help Coca-Cola create a project that would celebrate the 2014 FIFA World Cup&#8482; by enabling fans from all over the world to express their creativity in a show of unity and art. What better way to open the games than by displaying the Happiness Flag, which is a symbol of the spirit of the game and its fans. <br /><br /><br /><br /></div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Daniel Viveiros, CI&amp;T&#8217;s Head of Technology</span> <br /><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/" target="_blank">Google Cloud Platform Blog</a>)</i> <br /><br /><i><b>Editor's note:</b> Today's guest post is from Daniel Viveiros, Head of Technology at <a href="http://www.ciandt.com/google" target="_blank">CI&amp;T</a>, a Google Cloud Platform Partner of the Year LATAM 2013. In this post, Daniel describes how CI&amp;T in partnership with Coca-Cola built the &#8216;Happiness Flag&#8217; for the Coca-Cola 2014 FIFA World Cup&#8482; campaign in Brazil. To learn more about the Happiness flag visit this <a href="http://www.ciandt.com/card/coca-cola-happiness-flag" target="_blank">website</a>. <br /></i> <br /><i><br /></i>As part of the &#8216;The World&#8217;s Cup&#8217; campaign, Coca-Cola wanted to do something that would visually illustrate soccer&#8217;s global reach. Coca-Cola invited fans around the world to share their photos to create the <a href="http://www2.happinessflag.com/?l=en" target="_blank">Happiness Flag</a> -- the world&#8217;s largest mosaic flag crafted from thousands of crowdsourced images submitted by people in more than 200 countries. The flag, 3,015 square meters in size, was unveiled during the opening ceremony of the 2014 FIFA World Cup&#8482;. <br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm-SCHFym9IrCF4snRompGpXIyc2TC8ck7BOnOO-5TMCmLNbpg8j9bZLiV6oXBwdAF2fnveXx_fUtGmOMd7PMsBe8E93d2S8Kpzm2DPkbIfEJuAg2sAUrWxfEN78WqsmXSg6DIooTRM8w/s1600/Screen+Shot+2014-06-14+at+10.51.56+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="355" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm-SCHFym9IrCF4snRompGpXIyc2TC8ck7BOnOO-5TMCmLNbpg8j9bZLiV6oXBwdAF2fnveXx_fUtGmOMd7PMsBe8E93d2S8Kpzm2DPkbIfEJuAg2sAUrWxfEN78WqsmXSg6DIooTRM8w/s1600/Screen+Shot+2014-06-14+at+10.51.56+AM.png" width="640" /></a></div>A project of this scale calls for high performing and reliable technology, so when we started working with Coca-Cola to build the infrastructure for the Happiness Flag campaign, we knew we had to use <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a>. By using Google Cloud Platform, we turned a big, innovative idea into reality on a global scale.<br /><br />To create the <a href="http://www.thinkwithgoogle.com/campaigns/coca-cola-the-happiness-flag.html" target="_blank">Happiness Flag</a>, we leveraged the whole Google Cloud Platform stack as shown below:<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh90JkDDkqsbb5gHjnh_qatHRK3ZBdpXPlhuFkmOVfKyKshY8mo0pUV_agPNThLYzaTY5BhnGfxw9LgYy9rbh9NIYIomzoYkdoOOOAnHvGrU5jy1WvY4Oa4o0IC5tnmvRPpnUB6WNYUkUc/s1600/Screen+Shot+2014-06-14+at+10.50.20+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="491" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh90JkDDkqsbb5gHjnh_qatHRK3ZBdpXPlhuFkmOVfKyKshY8mo0pUV_agPNThLYzaTY5BhnGfxw9LgYy9rbh9NIYIomzoYkdoOOOAnHvGrU5jy1WvY4Oa4o0IC5tnmvRPpnUB6WNYUkUc/s1600/Screen+Shot+2014-06-14+at+10.50.20+AM.png" width="640" /></a></div><a href="https://cloud.google.com/products/app-engine/" target="_blank">Google App Engine</a> enabled us to handle the computing workload, capable of handling millions of images via Twitter, Facebook, Instagram and email, to the searches for images and view requests. The architecture was scalable to meet this kind of transaction demand and the fluctuations in traffic. We stored all the images in <a href="https://cloud.google.com/products/cloud-storage/" target="_blank">Google Cloud Storage</a>, where integrated edge caching support and image services made it an ideal choice for serving the images. Meanwhile, <a href="https://cloud.google.com/products/compute-engine/" target="_blank">Google Compute Engine</a> gave us the capability for long-running processes, such as the Twitter integration and advanced image transformations. We were able to show how powerful the creation of hybrid environments can be, using both Platform-as-a-Service (Google App Engine) and raw virtual machines (Google Compute Engine) in the cloud.<br /><br />We used other out-of-the-box Google Cloud Platform technologies like <a href="https://developers.google.com/appengine/docs/adminconsole/memcache" target="_blank">Memcache</a>, <a href="https://cloud.google.com/products/cloud-datastore/" target="_blank">Datastore</a> and Task Queues to ensure outstanding levels of performance and scalability. We know that many fans will be viewing the Happiness Flag on their mobile devices, so we needed a platform that would offer different capacities of computational power. The system provides amazing user experience with high performance and low latency, regardless of the device and its location. Using Google Cloud Platform, the campaign runs smoothly 24/7 and includes redundancy, failover techniques, backups and state-of-the-art monitoring. Plus, it&#8217;s affordable.<br /><br />After the physical flag was unveiled before the opening match, the digital mosaic was made available with a Google map-like zoom in and out with eleven levels of detail. Anyone who submitted an image can now search for themselves on the virtual flag and the search results will show up as pins in the mosaic, like locations found in a Google map. By clicking on the pin, their photos open up in an overlay and they are taken to the maximum level of zoom in to see the "neighborhood" around their image in the flag. After the match, a link to the <a href="http://www2.happinessflag.com/?l=en" target="_blank">Happiness Flag site</a> was sent to each participant as a souvenir. <br /><br />Our goal was to help Coca-Cola create a project that would celebrate the 2014 FIFA World Cup&#8482; by enabling fans from all over the world to express their creativity in a show of unity and art. What better way to open the games than by displaying the Happiness Flag, which is a symbol of the spirit of the game and its fans. <br /><br /><br /><br /></div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:CI&amp;T uses Google Cloud Platform to power the Coca-Cola “Happiness Flag” unveiled on the pitch at the opening match of the 2014 FIFA World Cup™&url=https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html?hl=en' data-url='https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2014/06/ci-uses-google-cloud-platform-to-power.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/google%20cloud%20storage?hl=en' rel='tag'> google cloud storage </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Compute%20Engine?hl=en' rel='tag'> Google Compute Engine </a> </span> </div> </div> </div> <div class='post' data-id='4424960332793108948' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html?hl=en' itemprop='url' title='WebFilings runs on Google Cloud Platform'> WebFilings runs on Google Cloud Platform </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, May 1, 2014 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Jeff Trom, CTO, WebFilings</span> <br /><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2014/05/webfilings-runs-on-google-cloud-platform.html" target="_blank">Google Cloud Platform Blog</a>)</i> <br /><br /><i><b>Editor's note:</b> Today&#8217;s guest post is from Jeff Trom, CTO at <a href="https://www.wdesk.com/" target="_blank">Webfilings</a>, a Software-as-a-Service provider that develops cloud-based solutions for business reporting.</i><br /><br />At Webfilings, we&#8217;re reinventing complex business reporting. <a href="https://www.wdesk.com/wdesk-platform" target="_blank">Wdesk</a>, our flagship product, is an enterprise solution that is transforming how companies manage and report complex business data. It&#8217;s a collective workspace for teams to come together to build documents and reports without having to go to IT for assistance. Using Wdesk, financial teams have quickly become accustomed to how the cloud has simplified collaboration, provided global accessibility and eliminated the replication of data and documents.<br /><br />What started as an idea to automate SEC reporting has now grown to a robust offering that supports more than 60% of the Fortune 500 in just 4 years since launch. We&#8217;ve been able to build a great company and culture where rapid innovation and best-in-class customer service are key.<br /><br />We rely on <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> to make a formerly onerous process seem easy. Cloud Platform replicates our terabytes of data across multiple datacenters seamlessly and allows our developers to focus on innovation, not infrastructure. We deploy updates daily and leverage <a href="//www.google.com/cloud/products/app-engine/index6.html?utm_expid=65704806-5.-7gflVmlTY2Vp-qGIzpcHw.2&amp;utm_referrer=https://cloud.google.com/products/" target="_blank">Google App Engine&#8217;s</a> ability to simultaneously serve traffic from multiple versions to test new features with a few customers before releasing them to everyone. This helps ensure that our customers have the best experience possible each time they log in to Wdesk. Check out the video below to learn more about how we&#8217;re using Cloud Platform.<br /><iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/SU-S2LdJeYo" width="640"></iframe><br />In our product space, the data-in-motion architecture we&#8217;ve chosen is what sets us apart. It requires:<br /><br /><ol style="text-align: left;"><li>Dynamically scalable application servers to handle variable traffic patterns</li><li>Replicated storage that&#8217;s scalable and provides reliable performance under load</li><li>Enterprise-grade reliability to ensure 24 x 7 access for our customers</li></ol><br />We love learning about how our customers innovate with Wdesk inside their own companies, and are constantly impressed by the solutions they produce. The possibilities seem endless. <br /><br /></div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Jeff Trom, CTO, WebFilings</span> <br /><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2014/05/webfilings-runs-on-google-cloud-platform.html" target="_blank">Google Cloud Platform Blog</a>)</i> <br /><br /><i><b>Editor's note:</b> Today&#8217;s guest post is from Jeff Trom, CTO at <a href="https://www.wdesk.com/" target="_blank">Webfilings</a>, a Software-as-a-Service provider that develops cloud-based solutions for business reporting.</i><br /><br />At Webfilings, we&#8217;re reinventing complex business reporting. <a href="https://www.wdesk.com/wdesk-platform" target="_blank">Wdesk</a>, our flagship product, is an enterprise solution that is transforming how companies manage and report complex business data. It&#8217;s a collective workspace for teams to come together to build documents and reports without having to go to IT for assistance. Using Wdesk, financial teams have quickly become accustomed to how the cloud has simplified collaboration, provided global accessibility and eliminated the replication of data and documents.<br /><br />What started as an idea to automate SEC reporting has now grown to a robust offering that supports more than 60% of the Fortune 500 in just 4 years since launch. We&#8217;ve been able to build a great company and culture where rapid innovation and best-in-class customer service are key.<br /><br />We rely on <a href="https://cloud.google.com/" target="_blank">Google Cloud Platform</a> to make a formerly onerous process seem easy. Cloud Platform replicates our terabytes of data across multiple datacenters seamlessly and allows our developers to focus on innovation, not infrastructure. We deploy updates daily and leverage <a href="//www.google.com/cloud/products/app-engine/index6.html?utm_expid=65704806-5.-7gflVmlTY2Vp-qGIzpcHw.2&amp;utm_referrer=https://cloud.google.com/products/" target="_blank">Google App Engine&#8217;s</a> ability to simultaneously serve traffic from multiple versions to test new features with a few customers before releasing them to everyone. This helps ensure that our customers have the best experience possible each time they log in to Wdesk. Check out the video below to learn more about how we&#8217;re using Cloud Platform.<br /><iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/SU-S2LdJeYo" width="640"></iframe><br />In our product space, the data-in-motion architecture we&#8217;ve chosen is what sets us apart. It requires:<br /><br /><ol style="text-align: left;"><li>Dynamically scalable application servers to handle variable traffic patterns</li><li>Replicated storage that&#8217;s scalable and provides reliable performance under load</li><li>Enterprise-grade reliability to ensure 24 x 7 access for our customers</li></ol><br />We love learning about how our customers innovate with Wdesk inside their own companies, and are constantly impressed by the solutions they produce. The possibilities seem endless. <br /><br /></div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:WebFilings runs on Google Cloud Platform&url=https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='0' data-onclick='' data-post-url='https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html?hl=en' data-url='https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2014/05/webfilings-runs-on-google-cloud-platform.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> </span> </div> </div> </div> <div class='post' data-id='181944778828177431' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html?hl=en' itemprop='url' title='Google Compute Engine and App Engine give Evite freedom to expand services anytime'> Google Compute Engine and App Engine give Evite freedom to expand services anytime </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, December 4, 2013 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Dan Mesh, Vice President of Technology, Evite</span> <br /><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/" target="_blank">Google Cloud Platform Blog</a>)</i> <br /><br /><i><b>Editor's note:</b> Today&#8217;s guest blog comes from Dan Mesh, Vice President of Technology at <a href="http://www.evite.com/" target="_blank">Evite</a>, the pioneer in online invitations and social planning. Evite has over 30 million registered users and sends more than 250 million party invitations annually.</i> <br /><br /><div>In the past year, we&#8217;ve introduced a couple of exciting new products at Evite: our <a href="http://www.postmark.com/">Postmark</a> service offers premium online invitations and announcements for milestone events like weddings and births, and <a href="http://www.evite.com/ink/">Evite Ink</a> lets our users design custom paper invitations that we print and mail for a small fee. We couldn&#8217;t have launched these products without <a href="https://cloud.google.com/products/compute-engine">Google Compute Engine</a> and <a href="https://cloud.google.com/appengine">Google App Engine</a>, which gave us the infrastructure needed to scale our services to high demands and analyze large volumes of data they generate.<br /><br />Evite has been around since 1998, but behind this well-known online brand is a small and lean team. Migrating to the cloud has allowed us to focus our time, energy and financial resources on development of new products and services, free from worries of server management, capacity planning and hardware costs.<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-xYSzSV9Wjp1jivePYpGbbF9x6nx6GPqqqs9Sh0fhvkV3zWyWRrvb1JYr9J5BcHxqFilhEU_0Lbqe_GlLqeUJYaTfzteXRuQUv6wzmA5Lao7Jv8jhq3W2Y5wpyG3z5wQ9e5zGmzBEsLp1/s1600/Evite-Cooladata-Workflow-v02-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-xYSzSV9Wjp1jivePYpGbbF9x6nx6GPqqqs9Sh0fhvkV3zWyWRrvb1JYr9J5BcHxqFilhEU_0Lbqe_GlLqeUJYaTfzteXRuQUv6wzmA5Lao7Jv8jhq3W2Y5wpyG3z5wQ9e5zGmzBEsLp1/s640/Evite-Cooladata-Workflow-v02-01.png" width="633" /></a></div>We chose Google Cloud Platform because the combination of App Engine and Compute Engine truly delivers on the cloud&#8217;s promise of scalable and elastic computing. App Engine&#8217;s autoscaling means that as long as our applications are developed in line with the platform API&#8217;s and architecture guidelines, scalability comes for free. This is a huge benefit since we no longer worry about scaling our services to meet heavy demands and are also free from the difficulties and risks inherent in capacity planning.<br /><br />Most online businesses have very consistent daily, weekly and seasonal traffic patterns, and in Evite&#8217;s case, these patterns are even more pronounced. In the past, we used to provision resources to meet peak demand allowing for a healthy margin of error and future growth. Naturally, this resulted in a lot of wasted capital and engineering resources. Now that most of our systems are running on Google Cloud Platform, we see significant savings as application servers expand and shrink elastically in accordance with our web traffic.<br /><br />For example, in the past Evite was hesitant to roll out major application releases in Q4, typically the busiest time of the year for us. During this time, we reach our peak traffic, and operational focus was on making sure nothing went wrong. Any significant releases represented unwanted risk. Cloud Platform greatly simplifies the release process and provides built-in traffic splitting. This has made it possible for Evite product teams to test new features and release products more frequently and with reduced risks, even during the busiest times of year.<br /><br />As we add new products and services, Compute Engine plays a key role in our application infrastructure. We use it to closely monitor and analyze the performance of our products and services. All application data and log files generated by applications running on App Engine flow through a cluster of Compute Engine instances running extract, transform, load (ETL) processes, which feed this data into the data warehouse. There we analyze the collected data to detect errors and usage patterns helping us improve the design of our products and maintain performance levels.<br /><br />Compute Engine gets high marks for interoperability with App Engine and other cloud vendors. We use AWS Redshift as our data warehouse so interoperability is very important. Equally impressive are predictable, high I/O performance and fast instance startup times. For our data processing workloads these two metrics are critical to success.<br /><br />With App Engine powering all of our customer-facing services and Compute Engine helping us monitor and understand application performance, Evite is in great shape to create and release new products. We look forward to many new releases in 2014 knowing we can count on Cloud Platform to make these launches trouble-free.<br /><div></div></div></div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Dan Mesh, Vice President of Technology, Evite</span> <br /><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/" target="_blank">Google Cloud Platform Blog</a>)</i> <br /><br /><i><b>Editor's note:</b> Today&#8217;s guest blog comes from Dan Mesh, Vice President of Technology at <a href="http://www.evite.com/" target="_blank">Evite</a>, the pioneer in online invitations and social planning. Evite has over 30 million registered users and sends more than 250 million party invitations annually.</i> <br /><br /><div>In the past year, we&#8217;ve introduced a couple of exciting new products at Evite: our <a href="http://www.postmark.com/">Postmark</a> service offers premium online invitations and announcements for milestone events like weddings and births, and <a href="http://www.evite.com/ink/">Evite Ink</a> lets our users design custom paper invitations that we print and mail for a small fee. We couldn&#8217;t have launched these products without <a href="https://cloud.google.com/products/compute-engine">Google Compute Engine</a> and <a href="https://cloud.google.com/appengine">Google App Engine</a>, which gave us the infrastructure needed to scale our services to high demands and analyze large volumes of data they generate.<br /><br />Evite has been around since 1998, but behind this well-known online brand is a small and lean team. Migrating to the cloud has allowed us to focus our time, energy and financial resources on development of new products and services, free from worries of server management, capacity planning and hardware costs.<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-xYSzSV9Wjp1jivePYpGbbF9x6nx6GPqqqs9Sh0fhvkV3zWyWRrvb1JYr9J5BcHxqFilhEU_0Lbqe_GlLqeUJYaTfzteXRuQUv6wzmA5Lao7Jv8jhq3W2Y5wpyG3z5wQ9e5zGmzBEsLp1/s1600/Evite-Cooladata-Workflow-v02-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-xYSzSV9Wjp1jivePYpGbbF9x6nx6GPqqqs9Sh0fhvkV3zWyWRrvb1JYr9J5BcHxqFilhEU_0Lbqe_GlLqeUJYaTfzteXRuQUv6wzmA5Lao7Jv8jhq3W2Y5wpyG3z5wQ9e5zGmzBEsLp1/s640/Evite-Cooladata-Workflow-v02-01.png" width="633" /></a></div>We chose Google Cloud Platform because the combination of App Engine and Compute Engine truly delivers on the cloud&#8217;s promise of scalable and elastic computing. App Engine&#8217;s autoscaling means that as long as our applications are developed in line with the platform API&#8217;s and architecture guidelines, scalability comes for free. This is a huge benefit since we no longer worry about scaling our services to meet heavy demands and are also free from the difficulties and risks inherent in capacity planning.<br /><br />Most online businesses have very consistent daily, weekly and seasonal traffic patterns, and in Evite&#8217;s case, these patterns are even more pronounced. In the past, we used to provision resources to meet peak demand allowing for a healthy margin of error and future growth. Naturally, this resulted in a lot of wasted capital and engineering resources. Now that most of our systems are running on Google Cloud Platform, we see significant savings as application servers expand and shrink elastically in accordance with our web traffic.<br /><br />For example, in the past Evite was hesitant to roll out major application releases in Q4, typically the busiest time of the year for us. During this time, we reach our peak traffic, and operational focus was on making sure nothing went wrong. Any significant releases represented unwanted risk. Cloud Platform greatly simplifies the release process and provides built-in traffic splitting. This has made it possible for Evite product teams to test new features and release products more frequently and with reduced risks, even during the busiest times of year.<br /><br />As we add new products and services, Compute Engine plays a key role in our application infrastructure. We use it to closely monitor and analyze the performance of our products and services. All application data and log files generated by applications running on App Engine flow through a cluster of Compute Engine instances running extract, transform, load (ETL) processes, which feed this data into the data warehouse. There we analyze the collected data to detect errors and usage patterns helping us improve the design of our products and maintain performance levels.<br /><br />Compute Engine gets high marks for interoperability with App Engine and other cloud vendors. We use AWS Redshift as our data warehouse so interoperability is very important. Equally impressive are predictable, high I/O performance and fast instance startup times. For our data processing workloads these two metrics are critical to success.<br /><br />With App Engine powering all of our customer-facing services and Compute Engine helping us monitor and understand application performance, Evite is in great shape to create and release new products. We look forward to many new releases in 2014 knowing we can count on Cloud Platform to make these launches trouble-free.<br /><div></div></div></div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Google Compute Engine and App Engine give Evite freedom to expand services anytime&url=https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='2' data-onclick='' data-post-url='https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html?hl=en' data-url='https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2013/12/google-compute-engine-and-app-engine.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Compute%20Engine?hl=en' rel='tag'> Google Compute Engine </a> </span> </div> </div> </div> <div class='post' data-id='6083387082981117103' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html?hl=en' itemprop='url' title='Google App Engine helps MAG Interactive handle explosive growth of word game, Ruzzle'> Google App Engine helps MAG Interactive handle explosive growth of word game, Ruzzle </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, November 5, 2013 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2013/11/google-app-engine-helps-mag-interactive.html">Google Cloud Platform</a> blog)</i> <br /><br /><i><b>Editor's note:</b> Today we hear from Daniel Hasselberg, co-founder and chief executive officer of mobile game development company, <a href="http://www.maginteractive.se/">MAG Interactive</a>, based in Stockholm, Sweden. MAG Interactive produces some of the most popular games in the world, including <a href="http://www.ruzzle-game.com/">Ruzzle</a>, which has more than 45 million players in 142 different countries.</i><br /><br />When we launched our word game Ruzzle in 2012, we had no idea it would become an international sensation almost overnight. We initially promoted the game only to our family and friends, but within two weeks of our launch, Ruzzle was the No.1 game on the Swedish App Store.<br /><br />I believe if we hadn&#8217;t used <a href="https://developers.google.com/appengine/">Google App Engine</a> to build the backend of Ruzzle, we wouldn&#8217;t have been able to scale fast enough with our own servers, which would have killed the app in the marketplace. There were about a million downloads of Ruzzle per month in the Nordic region, Holland, Spain and Italy through 2012. As we refined the game&#8217;s social integration through channels like Facebook and Twitter, we grew rapidly in Italy and the United States. In 2013, Ruzzle became the No. 1 game download on Google Play and the App Store in Italy, Sweden, the United States and many other countries.<br /><br />Things were especially crazy at the end of last year. We were seeing about 700,000 new players each day from December 2012 through January 2013. We added 20 million users in a single month! It was incredible to see App Engine scale &#8211; and just keep on working &#8211; as we grew from about 5 million players to 25 million players in just a few weeks.<br /><br />Our decision to use App Engine as the platform for Ruzzle and our new game, QuizCross, was strategic. Some of us at MAG Interactive helped develop the server platform for one of the most popular music download services in the Nordic region, so we knew about the challenges of having to scale quickly. While we didn&#8217;t anticipate Ruzzle&#8217;s popularity, we did recognize even before creating the game that we could face scaling problems if we were successful. So we decided from day one to use a cloud solution.<br /><br />We looked at Amazon&#8217;s platform but preferred Google&#8217;s approach to cloud solutions. Google&#8217;s scalability was an important factor in our decision, but we also appreciated the company&#8217;s transparent pricing. The more efficient we became with App Engine, the less we paid.<br /><br />The Google Cloud Platform team has been great to work with, as well. They are very supportive and appreciate our feedback. The technical support experts at Google are amazing, too &#8211; very hands-on. They know the platform extremely well and can help us work through any challenge.<br /><br />We&#8217;re also using <a href="https://developers.google.com/bigquery/">Google BigQuery</a> for business intelligence. We track millions of events in the game every day so we know what users are doing &#8211; or not doing &#8211; and how we should improve the experience. We really like that we can throw enormous amounts of data at BigQuery, and it still performs. It only takes a few seconds to get results, and there are no scaling issues. It&#8217;s also easy to use. We have just one data analyst doing all the work with BigQuery but could probably use more people. If there are a few brilliant data mining experts out there who can imagine a future in Stockholm, please give us a call!<br /><br />One thing we&#8217;ve learned from our BigQuery analysis is that the more users play Ruzzle, the more they improve their skills. New players typically find about 18 words in the two-minute time frame they&#8217;re given. After they play 100 games, they can find about 50 words, on average. I think that tracking player improvement is what keeps people playing and has helped to make Ruzzle so popular.<br /><br />BigQuery offers our company a lot of insight into the use of our games and how we can improve them. We&#8217;re looking forward to expanding our relationship with Google as App Engine and Cloud Platform evolves.</div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2013/11/google-app-engine-helps-mag-interactive.html">Google Cloud Platform</a> blog)</i> <br /><br /><i><b>Editor's note:</b> Today we hear from Daniel Hasselberg, co-founder and chief executive officer of mobile game development company, <a href="http://www.maginteractive.se/">MAG Interactive</a>, based in Stockholm, Sweden. MAG Interactive produces some of the most popular games in the world, including <a href="http://www.ruzzle-game.com/">Ruzzle</a>, which has more than 45 million players in 142 different countries.</i><br /><br />When we launched our word game Ruzzle in 2012, we had no idea it would become an international sensation almost overnight. We initially promoted the game only to our family and friends, but within two weeks of our launch, Ruzzle was the No.1 game on the Swedish App Store.<br /><br />I believe if we hadn&#8217;t used <a href="https://developers.google.com/appengine/">Google App Engine</a> to build the backend of Ruzzle, we wouldn&#8217;t have been able to scale fast enough with our own servers, which would have killed the app in the marketplace. There were about a million downloads of Ruzzle per month in the Nordic region, Holland, Spain and Italy through 2012. As we refined the game&#8217;s social integration through channels like Facebook and Twitter, we grew rapidly in Italy and the United States. In 2013, Ruzzle became the No. 1 game download on Google Play and the App Store in Italy, Sweden, the United States and many other countries.<br /><br />Things were especially crazy at the end of last year. We were seeing about 700,000 new players each day from December 2012 through January 2013. We added 20 million users in a single month! It was incredible to see App Engine scale &#8211; and just keep on working &#8211; as we grew from about 5 million players to 25 million players in just a few weeks.<br /><br />Our decision to use App Engine as the platform for Ruzzle and our new game, QuizCross, was strategic. Some of us at MAG Interactive helped develop the server platform for one of the most popular music download services in the Nordic region, so we knew about the challenges of having to scale quickly. While we didn&#8217;t anticipate Ruzzle&#8217;s popularity, we did recognize even before creating the game that we could face scaling problems if we were successful. So we decided from day one to use a cloud solution.<br /><br />We looked at Amazon&#8217;s platform but preferred Google&#8217;s approach to cloud solutions. Google&#8217;s scalability was an important factor in our decision, but we also appreciated the company&#8217;s transparent pricing. The more efficient we became with App Engine, the less we paid.<br /><br />The Google Cloud Platform team has been great to work with, as well. They are very supportive and appreciate our feedback. The technical support experts at Google are amazing, too &#8211; very hands-on. They know the platform extremely well and can help us work through any challenge.<br /><br />We&#8217;re also using <a href="https://developers.google.com/bigquery/">Google BigQuery</a> for business intelligence. We track millions of events in the game every day so we know what users are doing &#8211; or not doing &#8211; and how we should improve the experience. We really like that we can throw enormous amounts of data at BigQuery, and it still performs. It only takes a few seconds to get results, and there are no scaling issues. It&#8217;s also easy to use. We have just one data analyst doing all the work with BigQuery but could probably use more people. If there are a few brilliant data mining experts out there who can imagine a future in Stockholm, please give us a call!<br /><br />One thing we&#8217;ve learned from our BigQuery analysis is that the more users play Ruzzle, the more they improve their skills. New players typically find about 18 words in the two-minute time frame they&#8217;re given. After they play 100 games, they can find about 50 words, on average. I think that tracking player improvement is what keeps people playing and has helped to make Ruzzle so popular.<br /><br />BigQuery offers our company a lot of insight into the use of our games and how we can improve them. We&#8217;re looking forward to expanding our relationship with Google as App Engine and Cloud Platform evolves.</div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Google App Engine helps MAG Interactive handle explosive growth of word game, Ruzzle&url=https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='8' data-onclick='' data-post-url='https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html?hl=en' data-url='https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2013/11/google-app-engine-helps-mag-interactive.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/Big%20Query?hl=en' rel='tag'> Big Query </a> , <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> </span> </div> </div> </div> <div class='post' data-id='5686884057183493293' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html?hl=en' itemprop='url' title='Google Cloud Platform Powers Minyanville’s Buzz and Banter'> Google Cloud Platform Powers Minyanville&#8217;s Buzz and Banter </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, July 3, 2013 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: left;"><span style="color: #444444;"><span class="byline-author">Posted by&nbsp;</span><span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;">Philip Talamas, CIO o</span></span><span style="background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;">f&nbsp;<a href="http://www.minyanville.com/" style="color: #7759ae; text-decoration: none;">Minyanville Media</a>, </span><span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;"><span style="color: #444444;">Inc</span></span></div><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2013/06/google-cloud-platform-powers-minyanville-buzz-and-banter.html" target="_blank">Cloud Platform blog</a>)</i><br /><br /><i><b>Editor's note:</b>&nbsp;</i><i style="background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;">Today&#8217;s post is from Philip Talamas, CIO of&nbsp;<a href="http://www.minyanville.com/" style="color: #7759ae; text-decoration: none;">Minyanville Media</a>, Inc., a New York based financial media company. In this post, Philip looks at the benefits his company received from switching from a major public cloud provider to Google Cloud Platform.</i><br /><br /></div>At Minyanville Media, our goal is to create branded business content that informs, entertains, and educates all generations about the worlds of business and finance. We designed our premium <a href="http://mvp.minyanville.com/buzz-banter-landing-page-navbar/?utm_source=navigation/buzzandbanterutm_medium=website/buzzandbanterutm_content=navigation/buzzandbanterutm_campaign=buzz" target="_blank">Buzz &amp; Banter app</a> app to serve this need. The Buzz ran on a competing cloud platform that presented increasing technical challenges as we expanded our customer base and feature set. We wanted a higher performing platform offering a more flexible and deeper feature set; we wanted to be certain we were serving our longtime clients as best as we could. <br /><br />We consulted our strategic technology partner <a href="http://www.mediaagility.com/" target="_blank">MediaAgility</a>, and the company advised us to move to Google Cloud Platform. There were two obvious benefits to switching to <a href="http://cloud.google.com/" target="_blank">Google Cloud Platform</a> from our old provider: better reliability and automatic demand-based scaling of the application. <br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0TN58fMmk0KuayUAR7wzKKxq7wzT8mYTvWrjax2rchTMyaXR-P9VrreeXNbTDXlZxT4eXjxQS-wR9335ZBR6zf3Um5EISHbvRBDjyLKIlVbwXxuah1EINAYVDL2rBnlQdF9FE_bCo3A/s718/buzz_sc.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0TN58fMmk0KuayUAR7wzKKxq7wzT8mYTvWrjax2rchTMyaXR-P9VrreeXNbTDXlZxT4eXjxQS-wR9335ZBR6zf3Um5EISHbvRBDjyLKIlVbwXxuah1EINAYVDL2rBnlQdF9FE_bCo3A/s400/buzz_sc.png" width="225" /></a></div>Every day, thousands of investors access our system globally, everywhere from Syracuse to Switzerland. They turn to us for reliable market intelligence and investing ideas. Today's economic uncertainty, coupled with high frequency trading, keeps us on our toes. When a central bank unexpectedly cuts interest rates or a hacked tweet sends markets into a tailspin, seconds matter. We are timely, or we are out of business. It&#8217;s as simple as that. Additionally, we serve two major online brokerage firms, which have very high standards for performance and reliability. <br /><br />Hence, we decided to move Buzz and Banter to the Google Cloud Platform. The improvement and increase in operational speed was drastic. New Buzz, running on <a href="http://cloud.google.com/appengine" target="_blank">Google App Engine</a>, updates content instantaneously -- even before our content management system refreshes to confirm publication. The icing on the cake is that our operating costs are significantly lower than what they were under our old provider. <br /><br />It&#8217;s rare that everyone wins in a technology transition, but that&#8217;s exactly what&#8217;s been accomplished in our move to Google App Engine. With a better customer experience, lower operating costs, and fewer technological headaches, we only wish that we&#8217;d made the switch sooner. </div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: left;"><span style="color: #444444;"><span class="byline-author">Posted by&nbsp;</span><span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;">Philip Talamas, CIO o</span></span><span style="background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;">f&nbsp;<a href="http://www.minyanville.com/" style="color: #7759ae; text-decoration: none;">Minyanville Media</a>, </span><span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;"><span style="color: #444444;">Inc</span></span></div><br /><i>(Cross-posted on the <a href="http://googlecloudplatform.blogspot.com/2013/06/google-cloud-platform-powers-minyanville-buzz-and-banter.html" target="_blank">Cloud Platform blog</a>)</i><br /><br /><i><b>Editor's note:</b>&nbsp;</i><i style="background-color: white; color: #444444; font-family: arial, sans-serif; font-size: 13px; line-height: 20px; text-align: start;">Today&#8217;s post is from Philip Talamas, CIO of&nbsp;<a href="http://www.minyanville.com/" style="color: #7759ae; text-decoration: none;">Minyanville Media</a>, Inc., a New York based financial media company. In this post, Philip looks at the benefits his company received from switching from a major public cloud provider to Google Cloud Platform.</i><br /><br /></div>At Minyanville Media, our goal is to create branded business content that informs, entertains, and educates all generations about the worlds of business and finance. We designed our premium <a href="http://mvp.minyanville.com/buzz-banter-landing-page-navbar/?utm_source=navigation/buzzandbanterutm_medium=website/buzzandbanterutm_content=navigation/buzzandbanterutm_campaign=buzz" target="_blank">Buzz &amp; Banter app</a> app to serve this need. The Buzz ran on a competing cloud platform that presented increasing technical challenges as we expanded our customer base and feature set. We wanted a higher performing platform offering a more flexible and deeper feature set; we wanted to be certain we were serving our longtime clients as best as we could. <br /><br />We consulted our strategic technology partner <a href="http://www.mediaagility.com/" target="_blank">MediaAgility</a>, and the company advised us to move to Google Cloud Platform. There were two obvious benefits to switching to <a href="http://cloud.google.com/" target="_blank">Google Cloud Platform</a> from our old provider: better reliability and automatic demand-based scaling of the application. <br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0TN58fMmk0KuayUAR7wzKKxq7wzT8mYTvWrjax2rchTMyaXR-P9VrreeXNbTDXlZxT4eXjxQS-wR9335ZBR6zf3Um5EISHbvRBDjyLKIlVbwXxuah1EINAYVDL2rBnlQdF9FE_bCo3A/s718/buzz_sc.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY0TN58fMmk0KuayUAR7wzKKxq7wzT8mYTvWrjax2rchTMyaXR-P9VrreeXNbTDXlZxT4eXjxQS-wR9335ZBR6zf3Um5EISHbvRBDjyLKIlVbwXxuah1EINAYVDL2rBnlQdF9FE_bCo3A/s400/buzz_sc.png" width="225" /></a></div>Every day, thousands of investors access our system globally, everywhere from Syracuse to Switzerland. They turn to us for reliable market intelligence and investing ideas. Today's economic uncertainty, coupled with high frequency trading, keeps us on our toes. When a central bank unexpectedly cuts interest rates or a hacked tweet sends markets into a tailspin, seconds matter. We are timely, or we are out of business. It&#8217;s as simple as that. Additionally, we serve two major online brokerage firms, which have very high standards for performance and reliability. <br /><br />Hence, we decided to move Buzz and Banter to the Google Cloud Platform. The improvement and increase in operational speed was drastic. New Buzz, running on <a href="http://cloud.google.com/appengine" target="_blank">Google App Engine</a>, updates content instantaneously -- even before our content management system refreshes to confirm publication. The icing on the cake is that our operating costs are significantly lower than what they were under our old provider. <br /><br />It&#8217;s rare that everyone wins in a technology transition, but that&#8217;s exactly what&#8217;s been accomplished in our move to Google App Engine. With a better customer experience, lower operating costs, and fewer technological headaches, we only wish that we&#8217;d made the switch sooner. </div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Google Cloud Platform Powers Minyanville’s Buzz and Banter&url=https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html?hl=en' data-url='https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2013/07/google-cloud-platform-powers.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en' rel='tag'> Google Cloud Platform </a> </span> </div> </div> </div> <div class='post' data-id='8556325028476208747' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html?hl=en' itemprop='url' title='News Ltd’s Traderoo Powered by Google App Engine'> News Ltd&#8217;s Traderoo Powered by Google App Engine </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, May 9, 2013 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Joshua Lowcock, Head of Commercial Platforms and Products for News Limited</span><br /><br /><i>(Cross-posted on the <a href="http://google-au.blogspot.com.au/2013/05/news-ltds-traderoo-powered-by-google.html" target="_blank">Official Google Australia Blog</a>)</i> <br /><br /><i><b>Editor's note:&nbsp;</b>Today&#8217;s guest blogger is Joshua Lowcock, Head of Commercial Platforms and Products for News Limited, an Australian media company. See what other organizations that have gone Google <a href="//www.google.com/enterprise/apps/business/customers.html?utm_campaign=entblog&amp;utm_source=NewsLTD05092013&amp;utm_medium=blog" target="_blank">have to say</a>.</i><br /><br />News Limited is one of Australia&#8217;s largest media companies, spanning newspapers, magazines, online, and subscription TV. We publish over 140 online and printed newspapers in major Australian cities including Sydney, Melbourne, Brisbane, Adelaide, and Perth, as well as in suburban areas. <br /><br />Classified advertising is a key revenue stream across all our markets, but traditionally booking and billing classifieds had been a manual and time-consuming process. We wanted to implement a solution that would allow customers to serve themselves by placing ads online. <br /><br />Google App Engine has enabled customers to do just that. We chose Google App Engine as the application because it is easy to build, easy to maintain and simple to scale as the user base and data storage grows. Functionalities within the Google App Engine environment, such as Google BigQuery, have also been useful. We can do an in-depth analysis of our ads and item pricing, as well as provide an internal reporting tool, all using BigQuery. <br /><br />The end result is a self-service, production booking and billing system - <a href="http://www.traderoo.com.au/">www.traderoo.com.au</a> - which we have developed on Google App Engine. It&#8217;s proving to be a real winner for both our business and our customers. It&#8217;s fundamentally changed the way customers engage with our company, creating a more usable experience and superb responsiveness. It&#8217;s easy to use, and gives more control over ad content, as well as the ability to publish ads online immediately. Online ads are free, while print ads are optional and require a small fee, but complement online ads by extending the advertiser&#8217;s reach. <br /><br />When customers book ads using the Traderoo website, they get automatic email notification from the platform that tells them how their advertisement is performing. Traderoo is optimised for PC, laptop, smartphone and tablet, so the browser and ad placement remain consistent, no matter what device our customers are using. <br /><br />The real advantage for us is that our classified business has achieved faster time to market, lower costs and less overheads in the form of call centre time and manual data entry. The site has been a huge success, and we look forward to continuing to use Google App Engine as we develop Traderoo further.</div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Joshua Lowcock, Head of Commercial Platforms and Products for News Limited</span><br /><br /><i>(Cross-posted on the <a href="http://google-au.blogspot.com.au/2013/05/news-ltds-traderoo-powered-by-google.html" target="_blank">Official Google Australia Blog</a>)</i> <br /><br /><i><b>Editor's note:&nbsp;</b>Today&#8217;s guest blogger is Joshua Lowcock, Head of Commercial Platforms and Products for News Limited, an Australian media company. See what other organizations that have gone Google <a href="//www.google.com/enterprise/apps/business/customers.html?utm_campaign=entblog&amp;utm_source=NewsLTD05092013&amp;utm_medium=blog" target="_blank">have to say</a>.</i><br /><br />News Limited is one of Australia&#8217;s largest media companies, spanning newspapers, magazines, online, and subscription TV. We publish over 140 online and printed newspapers in major Australian cities including Sydney, Melbourne, Brisbane, Adelaide, and Perth, as well as in suburban areas. <br /><br />Classified advertising is a key revenue stream across all our markets, but traditionally booking and billing classifieds had been a manual and time-consuming process. We wanted to implement a solution that would allow customers to serve themselves by placing ads online. <br /><br />Google App Engine has enabled customers to do just that. We chose Google App Engine as the application because it is easy to build, easy to maintain and simple to scale as the user base and data storage grows. Functionalities within the Google App Engine environment, such as Google BigQuery, have also been useful. We can do an in-depth analysis of our ads and item pricing, as well as provide an internal reporting tool, all using BigQuery. <br /><br />The end result is a self-service, production booking and billing system - <a href="http://www.traderoo.com.au/">www.traderoo.com.au</a> - which we have developed on Google App Engine. It&#8217;s proving to be a real winner for both our business and our customers. It&#8217;s fundamentally changed the way customers engage with our company, creating a more usable experience and superb responsiveness. It&#8217;s easy to use, and gives more control over ad content, as well as the ability to publish ads online immediately. Online ads are free, while print ads are optional and require a small fee, but complement online ads by extending the advertiser&#8217;s reach. <br /><br />When customers book ads using the Traderoo website, they get automatic email notification from the platform that tells them how their advertisement is performing. Traderoo is optimised for PC, laptop, smartphone and tablet, so the browser and ad placement remain consistent, no matter what device our customers are using. <br /><br />The real advantage for us is that our classified business has achieved faster time to market, lower costs and less overheads in the form of call centre time and manual data entry. The site has been a huge success, and we look forward to continuing to use Google App Engine as we develop Traderoo further.</div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:News Ltd’s Traderoo Powered by Google App Engine&url=https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html?hl=en' data-url='https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2013/05/news-ltds-traderoo-powered-by-google.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/big%20data?hl=en' rel='tag'> big data </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Big%20Query?hl=en' rel='tag'> Big Query </a> , <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> </span> </div> </div> </div> <div class='post' data-id='7907925342052770348' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html?hl=en' itemprop='url' title='Google Cloud Platform introduces new support packages'> Google Cloud Platform introduces new support packages </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, February 21, 2013 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Brett McCully, Google Cloud Platform Team</span><br /><br />Support is as important as product features when choosing a platform for your applications. And let&#8217;s face it, sometimes we all need a bit of help. No matter which <a href="https://cloud.google.com/">Google Cloud Platform</a> services you are using&#8212;App Engine, Compute Engine, Cloud Storage, Cloud SQL, BigQuery, etc.&#8212;or what time of day, you should be able to get the answers you need. While you can go to Stack Overflow or Google Groups, we realize some of you may need 24x7 coverage, phone support or direct access to a Technical Account Manager team. <br /><br />To meet your support requirements, we&#8217;re introducing a comprehensive collection of support packages for services on Google Cloud Platform, so you can decide what level best fits your needs:<br /><br /><ul style="text-align: left;"><li><b>Bronze</b>: All customers get access to online documentation, community forums, and billing support. (Free)&nbsp;</li><li><b>Silver</b>: In addition to Bronze, you can email our support team for questions related to product functionality, best practices, and service errors. ($150/month)&nbsp;</li><li><b>Gold</b>: In addition to Silver, you'll receive 24x7 phone support and consultation on application development, best practices or architecture for your specific use case. (Starts at $400/month)&nbsp;</li><li><b>Platinum</b>: The most comprehensive and personalized support. In addition to Gold, you&#8217;ll get direct access to a Technical Account Manager team. (<a href="https://cloud.google.com/support/signup">Contact Sales</a> for more information)</li></ul><br /><a href="https://cloud.google.com/support/signup">Sign up</a> or click <a href="https://cloud.google.com/support/packages">here</a> to find out more information about the new Google Cloud Platform support options. </div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Brett McCully, Google Cloud Platform Team</span><br /><br />Support is as important as product features when choosing a platform for your applications. And let&#8217;s face it, sometimes we all need a bit of help. No matter which <a href="https://cloud.google.com/">Google Cloud Platform</a> services you are using&#8212;App Engine, Compute Engine, Cloud Storage, Cloud SQL, BigQuery, etc.&#8212;or what time of day, you should be able to get the answers you need. While you can go to Stack Overflow or Google Groups, we realize some of you may need 24x7 coverage, phone support or direct access to a Technical Account Manager team. <br /><br />To meet your support requirements, we&#8217;re introducing a comprehensive collection of support packages for services on Google Cloud Platform, so you can decide what level best fits your needs:<br /><br /><ul style="text-align: left;"><li><b>Bronze</b>: All customers get access to online documentation, community forums, and billing support. (Free)&nbsp;</li><li><b>Silver</b>: In addition to Bronze, you can email our support team for questions related to product functionality, best practices, and service errors. ($150/month)&nbsp;</li><li><b>Gold</b>: In addition to Silver, you'll receive 24x7 phone support and consultation on application development, best practices or architecture for your specific use case. (Starts at $400/month)&nbsp;</li><li><b>Platinum</b>: The most comprehensive and personalized support. In addition to Gold, you&#8217;ll get direct access to a Technical Account Manager team. (<a href="https://cloud.google.com/support/signup">Contact Sales</a> for more information)</li></ul><br /><a href="https://cloud.google.com/support/signup">Sign up</a> or click <a href="https://cloud.google.com/support/packages">here</a> to find out more information about the new Google Cloud Platform support options. </div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Google Cloud Platform introduces new support packages&url=https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html?hl=en' data-url='https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2013/02/google-cloud-platform-introduces-new.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/bigquery?hl=en' rel='tag'> bigquery </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20computing?hl=en' rel='tag'> cloud computing </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20platform?hl=en' rel='tag'> cloud platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20services?hl=en' rel='tag'> cloud services </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20sql?hl=en' rel='tag'> cloud sql </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/google%20cloud%20storage?hl=en' rel='tag'> google cloud storage </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Compute%20Engine?hl=en' rel='tag'> Google Compute Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/support?hl=en' rel='tag'> support </a> </span> </div> </div> </div> <div class='post' data-id='4400636864371831559' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html?hl=en' itemprop='url' title='Cloud computing enabling entrepreneurship in Africa'> Cloud computing enabling entrepreneurship in Africa </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, December 20, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author">Posted by Zafir Khan, Google App Engine Team</span><br><br><i>(Cross-posted on the <a href="http://googleblog.blogspot.com/2012/12/cloud-computing-enabling.html">Official Google Blog</a>.)</i> <br><br>In 2007, 33-year-old Vuyile moved to Cape Town from rural South Africa in search of work. Unable to complete high school, he worked as a night shift security guard earning $500/month to support his family. During the rush hour commute from his home in Khayelitsha, Vuyile realized that he could earn extra income by selling prepaid mobile airtime vouchers to other commuters on the train. <br><br>In rural areas, it&#8217;s common to use prepaid vouchers to pay for basic services such as electricity, insurance and airtime for mobile phones. But it&#8217;s often difficult to distribute physical vouchers because of the risk of theft and fraud. <br><br><a href="http://www.nomanini.com/">Nomanini</a>, a startup based in South Africa, built a device that enables local entrepreneurs like Vuyile to sell prepaid mobile services in their communities. The Lula (which means &#8220;easy&#8221; in colloquial Zulu), is a portable voucher sales terminal that is used on-the-go by people ranging from taxi drivers to street vendors. It generates and prints codes which people purchase to add minutes to their mobile phones. <br><br>Today, Vuyile sells vouchers on the train for cash payment, and earns a commission weekly. Since he started using the Lula, he&#8217;s seen his monthly income increase by 20 percent. <br><br><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzOj3qRXJ5O7W5vWa2EHw5dFrMi4jbNzuMGZjs2ioNGF9pwh4JagQyVBLYSIgigp0RWX7DkUDxDP5u_24_zAgpGP89DugjhYk9Hp8lNMrVlbPTwPDT3tcYizkXO1qGdANOr3_U0pZG-Q/s1600/vuyile+(1).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzOj3qRXJ5O7W5vWa2EHw5dFrMi4jbNzuMGZjs2ioNGF9pwh4JagQyVBLYSIgigp0RWX7DkUDxDP5u_24_zAgpGP89DugjhYk9Hp8lNMrVlbPTwPDT3tcYizkXO1qGdANOr3_U0pZG-Q/s400/vuyile+(1).jpg" width="300" /></a></div><div style="text-align: center;"><i>Vuyile prints a voucher from his Lula</i></div><br>Nomanini founders Vahid and Ali Monadjem wanted to make mobile services widely available in areas where they had been inaccessible, or where&#8212;in a region where the average person makes less than $200/month&#8212;people simply couldn&#8217;t afford them. By creating a low-cost and easy-to-use product, Nomanini could enable entrepreneurs in Africa to go to deep rural areas and create businesses for themselves. <br><br>In order to build a scalable and reliable backend system to keep the Lula running, Nomanini chose to run on <a href="https://cloud.google.com/products/?utm_source=ogb&amp;utm_medium=blog&amp;utm_campaign=nomanini">Google App Engine</a>. Their development team doesn&#8217;t have to spend time setting up their own servers and can instead run on the same infrastructure that powers Google&#8217;s own applications. They can focus on building their backend systems and easily deploy code to Google&#8217;s data centers. When Vuyile makes a sale, he presses a few buttons, App Engine processes the request, and the voucher prints in seconds. <br><br>Last month, 40,000 people bought airtime through the Lula, and Nomanini hopes to grow this number to 1 million per month next year. While platforms like App Engine are typically used to build web or smartphone apps, entrepreneurs like Vahid and Ali are finding innovative ways to leverage this technology by building their own devices and connecting them to App Engine. Vahid tells us: &#8220;We&#8217;re a uniquely born and bred African solution, and we have great potential to take this to the rest of Africa and wider emerging markets. We could not easily scale this fast without running on Google App Engine.&#8221; <br><br>To learn more about the technical implementation used by Nomanini, read their guest post on the <a href="http://googleappengine.blogspot.com/2012/12/developer-insights-mobile-voucher-sales.html">Google App Engine blog</a>. </script> <noscript> <span class="byline-author">Posted by Zafir Khan, Google App Engine Team</span><br><br><i>(Cross-posted on the <a href="http://googleblog.blogspot.com/2012/12/cloud-computing-enabling.html">Official Google Blog</a>.)</i> <br><br>In 2007, 33-year-old Vuyile moved to Cape Town from rural South Africa in search of work. Unable to complete high school, he worked as a night shift security guard earning $500/month to support his family. During the rush hour commute from his home in Khayelitsha, Vuyile realized that he could earn extra income by selling prepaid mobile airtime vouchers to other commuters on the train. <br><br>In rural areas, it&#8217;s common to use prepaid vouchers to pay for basic services such as electricity, insurance and airtime for mobile phones. But it&#8217;s often difficult to distribute physical vouchers because of the risk of theft and fraud. <br><br><a href="http://www.nomanini.com/">Nomanini</a>, a startup based in South Africa, built a device that enables local entrepreneurs like Vuyile to sell prepaid mobile services in their communities. The Lula (which means &#8220;easy&#8221; in colloquial Zulu), is a portable voucher sales terminal that is used on-the-go by people ranging from taxi drivers to street vendors. It generates and prints codes which people purchase to add minutes to their mobile phones. <br><br>Today, Vuyile sells vouchers on the train for cash payment, and earns a commission weekly. Since he started using the Lula, he&#8217;s seen his monthly income increase by 20 percent. <br><br><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzOj3qRXJ5O7W5vWa2EHw5dFrMi4jbNzuMGZjs2ioNGF9pwh4JagQyVBLYSIgigp0RWX7DkUDxDP5u_24_zAgpGP89DugjhYk9Hp8lNMrVlbPTwPDT3tcYizkXO1qGdANOr3_U0pZG-Q/s1600/vuyile+(1).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzOj3qRXJ5O7W5vWa2EHw5dFrMi4jbNzuMGZjs2ioNGF9pwh4JagQyVBLYSIgigp0RWX7DkUDxDP5u_24_zAgpGP89DugjhYk9Hp8lNMrVlbPTwPDT3tcYizkXO1qGdANOr3_U0pZG-Q/s400/vuyile+(1).jpg" width="300" /></a></div><div style="text-align: center;"><i>Vuyile prints a voucher from his Lula</i></div><br>Nomanini founders Vahid and Ali Monadjem wanted to make mobile services widely available in areas where they had been inaccessible, or where&#8212;in a region where the average person makes less than $200/month&#8212;people simply couldn&#8217;t afford them. By creating a low-cost and easy-to-use product, Nomanini could enable entrepreneurs in Africa to go to deep rural areas and create businesses for themselves. <br><br>In order to build a scalable and reliable backend system to keep the Lula running, Nomanini chose to run on <a href="https://cloud.google.com/products/?utm_source=ogb&amp;utm_medium=blog&amp;utm_campaign=nomanini">Google App Engine</a>. Their development team doesn&#8217;t have to spend time setting up their own servers and can instead run on the same infrastructure that powers Google&#8217;s own applications. They can focus on building their backend systems and easily deploy code to Google&#8217;s data centers. When Vuyile makes a sale, he presses a few buttons, App Engine processes the request, and the voucher prints in seconds. <br><br>Last month, 40,000 people bought airtime through the Lula, and Nomanini hopes to grow this number to 1 million per month next year. While platforms like App Engine are typically used to build web or smartphone apps, entrepreneurs like Vahid and Ali are finding innovative ways to leverage this technology by building their own devices and connecting them to App Engine. Vahid tells us: &#8220;We&#8217;re a uniquely born and bred African solution, and we have great potential to take this to the rest of Africa and wider emerging markets. We could not easily scale this fast without running on Google App Engine.&#8221; <br><br>To learn more about the technical implementation used by Nomanini, read their guest post on the <a href="http://googleappengine.blogspot.com/2012/12/developer-insights-mobile-voucher-sales.html">Google App Engine blog</a>. </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Cloud computing enabling entrepreneurship in Africa&url=https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='20' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html?hl=en' data-url='https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/12/cloud-computing-enabling.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20platform?hl=en' rel='tag'> cloud platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> </span> </div> </div> </div> <div class='post' data-id='2549519728227837872' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html?hl=en' itemprop='url' title='Google Cloud Platform: new features, lower prices, extending European datacenters'> Google Cloud Platform: new features, lower prices, extending European datacenters </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, November 26, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author">Posted by Jessie Jiang, Product Management Director</span><br><br><i>(Cross-posted on the <a href="http://googledevelopers.blogspot.com/">Google Developers Blog</a>.)</i> <br><br>We're constantly making updates to our Google Cloud Platform products&#8212;Google App Engine, Cloud Storage, Big Query, Compute Engine and others&#8212;based on user feedback and to improve the overall experience. For example, two weeks ago we <a href="http://googledevelopers.blogspot.com/2012/11/get-started-at-no-cost-with-faster.html">introduced</a> a major update to Google Cloud SQL providing faster performance, larger databases (100GB), an EU zone, and a <a href="http://cloud.google.com/sql">no-cost trial</a>. But, we know there is more to do. Today, we&#8217;re continuing to improve the platform with new storage and compute capabilities, significantly lower prices, and more European Datacenter support. <br><br><b>Lower storage prices and new Durable Reduced Availability (DRA) Storage</b><br>To give you more flexibility in your storage options and prices, we&#8217;re <a href="https://cloud.google.com/pricing/cloud-storage">reducing the price of standard Google Cloud Storage by over 20%</a> and introducing a limited preview of <a href="//goo.gl/AibNX">Durable Reduced Availability</a> (DRA) storage. DRA storage lowers prices by trading off some data availability while maintaining the same latency performance and durability as standard Google Cloud Storage. DRA can be used for things like batch compute jobs that can easily be rescheduled or for data back-up where quick access to your data is important. DRA achieves cost savings by keeping fewer redundant replicas of data. Unlike other reduced redundancy cloud storage offerings, DRA is implemented in a manner that maintains data durability so you don't have to worry about losing your data in the cloud. <br><br>And, to automatically keep a history of old versions of your data, we&#8217;re introducing <a href="https://developers.google.com/storage/docs/object-versioning">Object Versioning</a>. You can also use it to help protect against deleting or overwriting your data by mistake or due to an application error. <br><br><b>More European Datacenter support</b><br>We are continuing to roll out our <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?formkey=dDllb3FHLS1IdXVIcjVKR3FScklka1E6MQ#gid=0">European Datacenter support</a>. Now, customers using Google App Engine, Google Cloud Storage, Google Cloud SQL and (soon) Google Compute Engine can deploy their applications, data and virtual machines to European Datacenters. This helps bring your solutions even closer to your customers for faster performance and enables international redundancy. <br><br><b>36 New Compute Engine instance types and overall reduced prices</b><br>Earlier this year we <a href="http://googleenterprise.blogspot.com/2012/06/google-compute-engine-computing-without.html">introduced</a> a Limited Preview of Google Compute Engine with four standard instance types. Today, we are announcing <a href="https://cloud.google.com/pricing/compute-engine">36 additional instance types</a> and are <a href="https://cloud.google.com/pricing/compute-engine">reducing the price of our original 4 standard instances</a> by about 5% for those currently in our preview. In the coming weeks, the following will be available: <br><br><ul><li><b>High Memory Instance</b> - High performance instances tailored for applications that demand large amounts of memory.</li><li><b>High CPU Instance</b> - Reduced cost option when applications don&#8217;t require as much memory.</li><li><b>Diskless Configurations</b> - Lower cost options for applications that do not require ephemeral disk and can exclusively utilize persistent disk. </li></ul><br> We are also introducing <a href="https://developers.google.com/compute/docs/reference/v1beta13/snapshots">Persistent Disk Snapshotting</a> which makes it simple to instantly create a backup of your disk, move it around Google datacenters, and use the snapshot to start up a new VM. <br><br>We want to thank you, the community of developers and businesses who are pushing the platform into new areas and building innovative applications. We look forward to seeing where you take it next. Find out more about the new <a href="https://cloud.google.com/pricing/cloud-storage">Cloud Storage pricing</a> and <a href="https://cloud.google.com/pricing/compute-engine">Compute Engine instances</a>. <a href="http://cloud.google.com/">Sign up now</a> and get started today. </script> <noscript> <span class="byline-author">Posted by Jessie Jiang, Product Management Director</span><br><br><i>(Cross-posted on the <a href="http://googledevelopers.blogspot.com/">Google Developers Blog</a>.)</i> <br><br>We're constantly making updates to our Google Cloud Platform products&#8212;Google App Engine, Cloud Storage, Big Query, Compute Engine and others&#8212;based on user feedback and to improve the overall experience. For example, two weeks ago we <a href="http://googledevelopers.blogspot.com/2012/11/get-started-at-no-cost-with-faster.html">introduced</a> a major update to Google Cloud SQL providing faster performance, larger databases (100GB), an EU zone, and a <a href="http://cloud.google.com/sql">no-cost trial</a>. But, we know there is more to do. Today, we&#8217;re continuing to improve the platform with new storage and compute capabilities, significantly lower prices, and more European Datacenter support. <br><br><b>Lower storage prices and new Durable Reduced Availability (DRA) Storage</b><br>To give you more flexibility in your storage options and prices, we&#8217;re <a href="https://cloud.google.com/pricing/cloud-storage">reducing the price of standard Google Cloud Storage by over 20%</a> and introducing a limited preview of <a href="//goo.gl/AibNX">Durable Reduced Availability</a> (DRA) storage. DRA storage lowers prices by trading off some data availability while maintaining the same latency performance and durability as standard Google Cloud Storage. DRA can be used for things like batch compute jobs that can easily be rescheduled or for data back-up where quick access to your data is important. DRA achieves cost savings by keeping fewer redundant replicas of data. Unlike other reduced redundancy cloud storage offerings, DRA is implemented in a manner that maintains data durability so you don't have to worry about losing your data in the cloud. <br><br>And, to automatically keep a history of old versions of your data, we&#8217;re introducing <a href="https://developers.google.com/storage/docs/object-versioning">Object Versioning</a>. You can also use it to help protect against deleting or overwriting your data by mistake or due to an application error. <br><br><b>More European Datacenter support</b><br>We are continuing to roll out our <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?formkey=dDllb3FHLS1IdXVIcjVKR3FScklka1E6MQ#gid=0">European Datacenter support</a>. Now, customers using Google App Engine, Google Cloud Storage, Google Cloud SQL and (soon) Google Compute Engine can deploy their applications, data and virtual machines to European Datacenters. This helps bring your solutions even closer to your customers for faster performance and enables international redundancy. <br><br><b>36 New Compute Engine instance types and overall reduced prices</b><br>Earlier this year we <a href="http://googleenterprise.blogspot.com/2012/06/google-compute-engine-computing-without.html">introduced</a> a Limited Preview of Google Compute Engine with four standard instance types. Today, we are announcing <a href="https://cloud.google.com/pricing/compute-engine">36 additional instance types</a> and are <a href="https://cloud.google.com/pricing/compute-engine">reducing the price of our original 4 standard instances</a> by about 5% for those currently in our preview. In the coming weeks, the following will be available: <br><br><ul><li><b>High Memory Instance</b> - High performance instances tailored for applications that demand large amounts of memory.</li><li><b>High CPU Instance</b> - Reduced cost option when applications don&#8217;t require as much memory.</li><li><b>Diskless Configurations</b> - Lower cost options for applications that do not require ephemeral disk and can exclusively utilize persistent disk. </li></ul><br> We are also introducing <a href="https://developers.google.com/compute/docs/reference/v1beta13/snapshots">Persistent Disk Snapshotting</a> which makes it simple to instantly create a backup of your disk, move it around Google datacenters, and use the snapshot to start up a new VM. <br><br>We want to thank you, the community of developers and businesses who are pushing the platform into new areas and building innovative applications. We look forward to seeing where you take it next. Find out more about the new <a href="https://cloud.google.com/pricing/cloud-storage">Cloud Storage pricing</a> and <a href="https://cloud.google.com/pricing/compute-engine">Compute Engine instances</a>. <a href="http://cloud.google.com/">Sign up now</a> and get started today. </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Google Cloud Platform: new features, lower prices, extending European datacenters&url=https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='3' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html?hl=en' data-url='https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/11/google-cloud-platform-new-features.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20platform?hl=en' rel='tag'> cloud platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20services?hl=en' rel='tag'> cloud services </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/google%20cloud%20storage?hl=en' rel='tag'> google cloud storage </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Compute%20Engine?hl=en' rel='tag'> Google Compute Engine </a> </span> </div> </div> </div> <div class='post' data-id='3891301632579727128' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html?hl=en' itemprop='url' title='About today’s App Engine outage'> About today&#8217;s App Engine outage </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, October 26, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author">Posted by Peter S. Magnusson, Engineering Director, Google App Engine</span><br><br><i><b>Editors note:</b> This morning we failed to live up to our promise, and Google App Engine applications experienced increased latencies and time-out errors. For a full report of the incident, visit the <a href="http://googleappengine.blogspot.com/2012/10/about-todays-app-engine-outage.html">Google App Engine blog</a>.</i><br><br>We know you rely on App Engine to create applications that are easy to develop and manage without having to worry about downtime. App Engine is not supposed to go down, and our engineers work diligently to ensure that it doesn&#8217;t. However, from approximately 7:30 to 11:30 AM US/Pacific today, about 50% of requests to App Engine applications failed. <br><br>During this incident, no application data was lost and application behavior was restored without any manual intervention by developers. There is no need to make any code or configuration changes to your applications. <br><br>We will proactively issue credits to all paid applications for ten percent of their usage for the month of October to cover any SLA violations. This will appear on applications&#8217; November bills. There is no need to take any action to receive this credit. <br><br>We apologize for this outage, and in particular for its duration and severity. Since launching the <a href="http://googleappengine.blogspot.com/2011/01/announcing-high-replication-datastore.html">High Replication Datastore</a> in January 2011, App Engine has not experienced a widespread system outage. We know that hundreds of thousands of developers rely on App Engine to provide a stable, scalable infrastructure for their applications, and we will continue to improve our systems and processes to live up to this expectation. </script> <noscript> <span class="byline-author">Posted by Peter S. Magnusson, Engineering Director, Google App Engine</span><br><br><i><b>Editors note:</b> This morning we failed to live up to our promise, and Google App Engine applications experienced increased latencies and time-out errors. For a full report of the incident, visit the <a href="http://googleappengine.blogspot.com/2012/10/about-todays-app-engine-outage.html">Google App Engine blog</a>.</i><br><br>We know you rely on App Engine to create applications that are easy to develop and manage without having to worry about downtime. App Engine is not supposed to go down, and our engineers work diligently to ensure that it doesn&#8217;t. However, from approximately 7:30 to 11:30 AM US/Pacific today, about 50% of requests to App Engine applications failed. <br><br>During this incident, no application data was lost and application behavior was restored without any manual intervention by developers. There is no need to make any code or configuration changes to your applications. <br><br>We will proactively issue credits to all paid applications for ten percent of their usage for the month of October to cover any SLA violations. This will appear on applications&#8217; November bills. There is no need to take any action to receive this credit. <br><br>We apologize for this outage, and in particular for its duration and severity. Since launching the <a href="http://googleappengine.blogspot.com/2011/01/announcing-high-replication-datastore.html">High Replication Datastore</a> in January 2011, App Engine has not experienced a widespread system outage. We know that hundreds of thousands of developers rely on App Engine to provide a stable, scalable infrastructure for their applications, and we will continue to improve our systems and processes to live up to this expectation. </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:About today’s App Engine outage&url=https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html?hl=en' data-url='https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/10/about-todays-app-engine-outage.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> </span> </div> </div> </div> <div class='post' data-id='3090843766180461882' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html?hl=en' itemprop='url' title='Streak powers their business on Google Cloud Platform'> Streak powers their business on Google Cloud Platform </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, October 9, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Aleem Mawani, co-founder of Streak</span><br /><br /><i><b>Editors note:</b> Today&#8217;s guest blogger is Aleem Mawani, co-founder of <a href="http://www.streak.com/">Streak</a>, a startup alum of <a href="http://ycombinator.com/">Y Combinator</a>, a Silicon Valley incubator. Streak is a CRM tool built into Gmail. Aleem shares why Streak chose Google Cloud Platform to run their business.</i><br /><br />Everyone relies on email to get work done &#8211; yet most people use separate applications from their email to help them with various business processes. Streak fixes this problem by letting you do sales, hiring, fundraising, bug tracking, product development, deal flow, project management and almost any other business process right inside Gmail. We decided to build Streak on <a href="http://cloud.google.com/">Google Cloud Platform</a> to operate at scale, to understand our users and improve the application over time, and to rapidly grow our business. <br /><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="//1.bp.blogspot.com/-kramU27E_Uc/UHRS-JY6ILI/AAAAAAAAAsw/nF-KREAn7S0/s1600/screen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="//1.bp.blogspot.com/-kramU27E_Uc/UHRS-JY6ILI/AAAAAAAAAsw/nF-KREAn7S0/s400/screen.png" width="500"></a></div><br /></div><br />We chose to build Streak with <a href="https://cloud.google.com/products/index">Google App Engine</a> for many reasons: it can handle tons of load; it requires no maintenance; and it guarantees 99.95% uptime. Streak&#8217;s user base grew 30% week over week for 4 consecutive months after launch. Being able to handle the load and data requirements at our scale would have required us to hire a full team of backend engineers just to keep the application running. Instead, the Streak backend on App Engine is built and maintained by a single engineer. <br /><br />All of our data is stored in the <a href="https://developers.google.com/appengine/docs/java/datastore/">App Engine Datastore</a>, but we also mirror our data using <a href="https://cloud.google.com/products/cloud-storage">Google Cloud Storage</a>. As a result, Cloud Storage is a conduit to route this data to other Google cloud services, such as BigQuery and the <a href="https://cloud.google.com/products/more-products">Prediction API</a>. <br /><br />Last, we use <a href="https://cloud.google.com/products/big-query">Google BigQuery</a> to better understand our users. It allows us to analyze large amounts of data from our usage logs and query it to answer complex questions such as: <br /><br />How much does the average request cost broken down by type? How many users are running an old version of Streak? Are there currently any abnormal error rates in our application? On average, if a user is working in a 3 person team, how many deals do they have assigned to them? <br /><br />We bundle the insights gained from BigQuery and use it to power our dashboards with key business metrics.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="//1.bp.blogspot.com/-5w18VEZCInY/UHRUaNhqrNI/AAAAAAAAAs4/NLO6MqEaJ9M/s1600/map+(1).jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="318" src="//1.bp.blogspot.com/-5w18VEZCInY/UHRUaNhqrNI/AAAAAAAAAs4/NLO6MqEaJ9M/s400/map+(1).jpg" width="400"></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><b id="internal-source-marker_0.011406981851905584" style="text-align: -webkit-auto;"><span style="background-color: white; color: #222222; font-family: Arial; font-size: small; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">One of many Streak dashboards powered by BigQuery showing current usage statistics</span></b></td></tr></tbody></table></div></div><br />When we first launched our business, we had gigabytes worth of data. Now, we anticipate growing to terabytes of data in just a few months. We couldn&#8217;t have scaled this easily without Google Cloud Platform. To learn more, check out our <a href="https://cloud.google.com/files/Streak.pdf">case study</a> and our post on the <a href="http://googleappengine.blogspot.com/2012/10/streak-brings-crm-to-inbox-with-google.html" target="_blank">App Engine blog</a> for a detailed technical explaination.</div> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><span class="byline-author">Posted by Aleem Mawani, co-founder of Streak</span><br /><br /><i><b>Editors note:</b> Today&#8217;s guest blogger is Aleem Mawani, co-founder of <a href="http://www.streak.com/">Streak</a>, a startup alum of <a href="http://ycombinator.com/">Y Combinator</a>, a Silicon Valley incubator. Streak is a CRM tool built into Gmail. Aleem shares why Streak chose Google Cloud Platform to run their business.</i><br /><br />Everyone relies on email to get work done &#8211; yet most people use separate applications from their email to help them with various business processes. Streak fixes this problem by letting you do sales, hiring, fundraising, bug tracking, product development, deal flow, project management and almost any other business process right inside Gmail. We decided to build Streak on <a href="http://cloud.google.com/">Google Cloud Platform</a> to operate at scale, to understand our users and improve the application over time, and to rapidly grow our business. <br /><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="//1.bp.blogspot.com/-kramU27E_Uc/UHRS-JY6ILI/AAAAAAAAAsw/nF-KREAn7S0/s1600/screen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="//1.bp.blogspot.com/-kramU27E_Uc/UHRS-JY6ILI/AAAAAAAAAsw/nF-KREAn7S0/s400/screen.png" width="500"></a></div><br /></div><br />We chose to build Streak with <a href="https://cloud.google.com/products/index">Google App Engine</a> for many reasons: it can handle tons of load; it requires no maintenance; and it guarantees 99.95% uptime. Streak&#8217;s user base grew 30% week over week for 4 consecutive months after launch. Being able to handle the load and data requirements at our scale would have required us to hire a full team of backend engineers just to keep the application running. Instead, the Streak backend on App Engine is built and maintained by a single engineer. <br /><br />All of our data is stored in the <a href="https://developers.google.com/appengine/docs/java/datastore/">App Engine Datastore</a>, but we also mirror our data using <a href="https://cloud.google.com/products/cloud-storage">Google Cloud Storage</a>. As a result, Cloud Storage is a conduit to route this data to other Google cloud services, such as BigQuery and the <a href="https://cloud.google.com/products/more-products">Prediction API</a>. <br /><br />Last, we use <a href="https://cloud.google.com/products/big-query">Google BigQuery</a> to better understand our users. It allows us to analyze large amounts of data from our usage logs and query it to answer complex questions such as: <br /><br />How much does the average request cost broken down by type? How many users are running an old version of Streak? Are there currently any abnormal error rates in our application? On average, if a user is working in a 3 person team, how many deals do they have assigned to them? <br /><br />We bundle the insights gained from BigQuery and use it to power our dashboards with key business metrics.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="//1.bp.blogspot.com/-5w18VEZCInY/UHRUaNhqrNI/AAAAAAAAAs4/NLO6MqEaJ9M/s1600/map+(1).jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="318" src="//1.bp.blogspot.com/-5w18VEZCInY/UHRUaNhqrNI/AAAAAAAAAs4/NLO6MqEaJ9M/s400/map+(1).jpg" width="400"></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><b id="internal-source-marker_0.011406981851905584" style="text-align: -webkit-auto;"><span style="background-color: white; color: #222222; font-family: Arial; font-size: small; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">One of many Streak dashboards powered by BigQuery showing current usage statistics</span></b></td></tr></tbody></table></div></div><br />When we first launched our business, we had gigabytes worth of data. Now, we anticipate growing to terabytes of data in just a few months. We couldn&#8217;t have scaled this easily without Google Cloud Platform. To learn more, check out our <a href="https://cloud.google.com/files/Streak.pdf">case study</a> and our post on the <a href="http://googleappengine.blogspot.com/2012/10/streak-brings-crm-to-inbox-with-google.html" target="_blank">App Engine blog</a> for a detailed technical explaination.</div> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Streak powers their business on Google Cloud Platform&url=https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html?hl=en' data-url='https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/10/streak-powers-their-business-on-google.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20computing?hl=en' rel='tag'> cloud computing </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20platform?hl=en' rel='tag'> cloud platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20services?hl=en' rel='tag'> cloud services </a> , <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/guest%20post?hl=en' rel='tag'> guest post </a> </span> </div> </div> </div> <div class='post' data-id='4753539645470503833' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html?hl=en' itemprop='url' title='BBH fosters international collaboration with the help of Google Apps'> BBH fosters international collaboration with the help of Google Apps </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, August 30, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author">Posted by Ian Dobb, Interim Global CIO at BBH</span><br><br><i><b>Editors note:</b>Today&#8217;s guest blogger is Ian Dobb, Interim Global CIO at the renowned advertising agency <a href="http://www.bartleboglehegarty.com/">Bartle Bogle Hegarty (BBH)</a>. Ian led the implementation of Google Apps for Business across five different countries for BBH&#8217;s 1,000-strong workforce. Ian Dobb is co-founder of <a href="http://www.ionico.co.uk">Ionico</a>. He was brought in to BBH to lead its IT change programme.</i><br><br><div class="separator" style="clear: both; text-align: center;"><a href="//1.bp.blogspot.com/-AFGXAfqaDws/UD9x2rAB9LI/AAAAAAAAAs4/McSI7A0yE6A/s1600/BBH_LOGO_TYPE.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="200" src="//1.bp.blogspot.com/-AFGXAfqaDws/UD9x2rAB9LI/AAAAAAAAAs4/McSI7A0yE6A/s200/BBH_LOGO_TYPE.jpg" width="152"></a></div> At BBH, collaboration is the cornerstone of developing award-winning advertising campaigns. As BBH expands its global coverage, staff are increasingly required to work on projects that have team members in multiple countries. Our international workforce of creative thinkers wants to operate without boundaries and not be held back by clunky email systems and restrictive mailboxes. The previous email system, Lotus Notes, did not live up to the demands of this modern and vibrant workforce.<br><br> With the help of Google Apps deployment expert and partner <a href="http://www.appsbroker.com/">Appsbroker</a>, we implemented <a href="//www.google.com/enterprise/apps/business/#utm_campaign=gogoogle&amp;utm_source=en-entblog-na-us-bbh08302012&amp;utm_medium=blog">Google Apps</a> throughout the organisation across 1,000 staff, a move that completely transformed the way our teams now work together and share ideas.<br><br> In addition to email and calendar, many employees now use Google Talk to chat with each other, and they hold multi-person video chats through the Hangouts feature in Google+. For instance, the global executive team, including the Group CEO, recently held a meeting via a Google Hangout. This spanned multiple time zones and three continents. Cutting back on using a third party video conferencing service and associated data comms circuits will save BBH approximately &#163;100,000 a year.<br><br> Google Apps also proved its worth as a mobile working and business contingency tool. Last winter BBH employees in London arrived to work to discover the basement was filled 5 metres deep with water due to a broken sprinkler valve, leaving the main building without power, where 450 people work. Google Apps was invaluable in keeping staff up and running. With the help of Gmail, Google Chat, Hangouts and Docs, work continued with minimal disruption while staff worked from home or from local cafes.<br><br> With the help of Appsbroker, we&#8217;re now building a custom app on Google App Engine to help feed creative thought at BBH. The app will help teams search and browse the vast BBH database of ideas and inspiration, making sure nothing is forgotten and lost in an archive file. It&#8217;s an exciting prospect for a business where intellectual property is the key currency.<br><br> With so many benefits and some exciting future prospects, we are confident that Google Apps and its constantly expanding range of collaborative features will aid the creative process for BBH staff by making it simpler for them to share ideas, streamlining processes for fast-paced teamwork, and giving clients a more responsive, dynamic service. <br><br> </script> <noscript> <span class="byline-author">Posted by Ian Dobb, Interim Global CIO at BBH</span><br><br><i><b>Editors note:</b>Today&#8217;s guest blogger is Ian Dobb, Interim Global CIO at the renowned advertising agency <a href="http://www.bartleboglehegarty.com/">Bartle Bogle Hegarty (BBH)</a>. Ian led the implementation of Google Apps for Business across five different countries for BBH&#8217;s 1,000-strong workforce. Ian Dobb is co-founder of <a href="http://www.ionico.co.uk">Ionico</a>. He was brought in to BBH to lead its IT change programme.</i><br><br><div class="separator" style="clear: both; text-align: center;"><a href="//1.bp.blogspot.com/-AFGXAfqaDws/UD9x2rAB9LI/AAAAAAAAAs4/McSI7A0yE6A/s1600/BBH_LOGO_TYPE.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="200" src="//1.bp.blogspot.com/-AFGXAfqaDws/UD9x2rAB9LI/AAAAAAAAAs4/McSI7A0yE6A/s200/BBH_LOGO_TYPE.jpg" width="152"></a></div> At BBH, collaboration is the cornerstone of developing award-winning advertising campaigns. As BBH expands its global coverage, staff are increasingly required to work on projects that have team members in multiple countries. Our international workforce of creative thinkers wants to operate without boundaries and not be held back by clunky email systems and restrictive mailboxes. The previous email system, Lotus Notes, did not live up to the demands of this modern and vibrant workforce.<br><br> With the help of Google Apps deployment expert and partner <a href="http://www.appsbroker.com/">Appsbroker</a>, we implemented <a href="//www.google.com/enterprise/apps/business/#utm_campaign=gogoogle&amp;utm_source=en-entblog-na-us-bbh08302012&amp;utm_medium=blog">Google Apps</a> throughout the organisation across 1,000 staff, a move that completely transformed the way our teams now work together and share ideas.<br><br> In addition to email and calendar, many employees now use Google Talk to chat with each other, and they hold multi-person video chats through the Hangouts feature in Google+. For instance, the global executive team, including the Group CEO, recently held a meeting via a Google Hangout. This spanned multiple time zones and three continents. Cutting back on using a third party video conferencing service and associated data comms circuits will save BBH approximately &#163;100,000 a year.<br><br> Google Apps also proved its worth as a mobile working and business contingency tool. Last winter BBH employees in London arrived to work to discover the basement was filled 5 metres deep with water due to a broken sprinkler valve, leaving the main building without power, where 450 people work. Google Apps was invaluable in keeping staff up and running. With the help of Gmail, Google Chat, Hangouts and Docs, work continued with minimal disruption while staff worked from home or from local cafes.<br><br> With the help of Appsbroker, we&#8217;re now building a custom app on Google App Engine to help feed creative thought at BBH. The app will help teams search and browse the vast BBH database of ideas and inspiration, making sure nothing is forgotten and lost in an archive file. It&#8217;s an exciting prospect for a business where intellectual property is the key currency.<br><br> With so many benefits and some exciting future prospects, we are confident that Google Apps and its constantly expanding range of collaborative features will aid the creative process for BBH staff by making it simpler for them to share ideas, streamlining processes for fast-paced teamwork, and giving clients a more responsive, dynamic service. <br><br> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:BBH fosters international collaboration with the help of Google Apps&url=https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html?hl=en' data-url='https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/08/bbh-fosters-international-collaboration.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en' rel='tag'> customer love </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/gonegoogle?hl=en' rel='tag'> gonegoogle </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Apps?hl=en' rel='tag'> Google Apps </a> </span> </div> </div> </div> <div class='post' data-id='1877621188699687843' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html?hl=en' itemprop='url' title='Neural Network for Breast Cancer Data Built on Google App Engine'> Neural Network for Breast Cancer Data Built on Google App Engine </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, August 7, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author" style="font-weight: normal; ">Posted by Brittany Wenger, Winner of Google Science Fair 2012</span><br /><br /><i style="font-weight: normal; ">(Cross-posted from <a href="http://googleappengine.blogspot.com/2012/08/neural-network-for-breast-cancer-data.html">Google App Engine Blog</a>)</i><br /><br /><i style="font-weight: normal; "><b>Editors note:</b> Today&#8217;s guest blog post comes from 17-year-old Brittany Wenger, the winner of this year&#8217;s <a href="//www.google.com/intl/en/events/sciencefair/index.html">Google Science Fair</a>. Brittany built an application on Google App Engine called the Global Neural Network Cloud Service for Breast Cancer. This artificial neural network can detect complex patterns in data, learning how to classify malignant or cancerous cells it hasn&#8217;t seen before. <a href="//www.google.com/intl/en/events/sciencefair/projects/gsf83.html">Learn more about her project</a>. </i><br /><br /><img height="131" src="https://lh5.googleusercontent.com/sYFBBiw6XB2uEkQBTLCDqQvfi1vzId7q-EFvGIkeEqgaq-c7Q7HEaT5tdUIM8rU7l5-a9E_8gZzqDhnFEu7xV8MnXAeez41Ckq9DN0wO_S8nEY0rqek" width="200" /><img height="131" src="https://lh5.googleusercontent.com/OpQSE0LmsWmYTahY3XAwb0RTPUluMhwT_FEbKhF7OU27iVxHk6on9VTruCW2loeks6HICe3Chjg4zXZxp9ko0rQhC3X_QeThTZFyaQc87RTZaGzoc7Y" width="200" /><br /><br />When a patient has a palpable breast lump, the first step a doctor takes is to determine whether the mass is malignant or benign. One relatively simple diagnostic procedure is a form of biopsy called fine needle aspiration (FNA). Though these tests are less invasive than others, they are historically less accurate as well. My goal was to create a tool for doctors to use when interpreting test results from these procedures.<br /><br />For this project, I decided to create a neural network built on Google App Engine, using <a href="http://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Original)">data</a> published to the <a href="http://archive.ics.uci.edu/ml/index.html">Machine Learning Repository</a> by the University of Wisconsin. A neural network attempts to replicate the brain as a form of artificial intelligence through networks of computers and can be used to detect extremely complex patterns. It learns from its mistakes, so it can classify a case it hasn&#8217;t seen before as malignant or cancerous based on specific criteria like clump thickness or bland chromatin. Because the diagnostic power of the network improves the more data it has, building on App Engine is a way to ensure the app can continue to scale easily, no matter how much information goes into the system. <br /> <br />I got started integrating my neural network application code, written in Java, with App Engine in a few hours using the <a href="https://developers.google.com/appengine/downloads">SDK&#8217;s Greeting Service</a> sample code as a starting point. The application has two main parts, a training module, that implements the neural network itself and runs the training process over the input data stored in static files, and a web interface that takes input data and returns the network&#8217;s analysis.<br /><br />Google App Engine provides the scalable infrastructure I need to collect information from every hospital in the world and run when there are many concurrent requests, as usage of my application increases. Because my network is built as a cloud service, not only is my app working on the web, but mobile tablets, smartphones, old PC systems, or new technologies can also easily access the service from any hospital with an internet connection. <br /><br />The neural network I developed is 99.11% sensitive to malignancy when using <a href="http://en.wikipedia.org/wiki/Cross-validation_(statistics)#Leave-one-out_cross-validation">leave-one-out testing</a> with original data. Thus far, I have run 7.6 million trials. Moving forward my goal is to make the application accessible to the global medical community so more data can be deposited and used to improve the diagnostic power of the network. </script> <noscript> <span class="byline-author" style="font-weight: normal; ">Posted by Brittany Wenger, Winner of Google Science Fair 2012</span><br /><br /><i style="font-weight: normal; ">(Cross-posted from <a href="http://googleappengine.blogspot.com/2012/08/neural-network-for-breast-cancer-data.html">Google App Engine Blog</a>)</i><br /><br /><i style="font-weight: normal; "><b>Editors note:</b> Today&#8217;s guest blog post comes from 17-year-old Brittany Wenger, the winner of this year&#8217;s <a href="//www.google.com/intl/en/events/sciencefair/index.html">Google Science Fair</a>. Brittany built an application on Google App Engine called the Global Neural Network Cloud Service for Breast Cancer. This artificial neural network can detect complex patterns in data, learning how to classify malignant or cancerous cells it hasn&#8217;t seen before. <a href="//www.google.com/intl/en/events/sciencefair/projects/gsf83.html">Learn more about her project</a>. </i><br /><br /><img height="131" src="https://lh5.googleusercontent.com/sYFBBiw6XB2uEkQBTLCDqQvfi1vzId7q-EFvGIkeEqgaq-c7Q7HEaT5tdUIM8rU7l5-a9E_8gZzqDhnFEu7xV8MnXAeez41Ckq9DN0wO_S8nEY0rqek" width="200" /><img height="131" src="https://lh5.googleusercontent.com/OpQSE0LmsWmYTahY3XAwb0RTPUluMhwT_FEbKhF7OU27iVxHk6on9VTruCW2loeks6HICe3Chjg4zXZxp9ko0rQhC3X_QeThTZFyaQc87RTZaGzoc7Y" width="200" /><br /><br />When a patient has a palpable breast lump, the first step a doctor takes is to determine whether the mass is malignant or benign. One relatively simple diagnostic procedure is a form of biopsy called fine needle aspiration (FNA). Though these tests are less invasive than others, they are historically less accurate as well. My goal was to create a tool for doctors to use when interpreting test results from these procedures.<br /><br />For this project, I decided to create a neural network built on Google App Engine, using <a href="http://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Original)">data</a> published to the <a href="http://archive.ics.uci.edu/ml/index.html">Machine Learning Repository</a> by the University of Wisconsin. A neural network attempts to replicate the brain as a form of artificial intelligence through networks of computers and can be used to detect extremely complex patterns. It learns from its mistakes, so it can classify a case it hasn&#8217;t seen before as malignant or cancerous based on specific criteria like clump thickness or bland chromatin. Because the diagnostic power of the network improves the more data it has, building on App Engine is a way to ensure the app can continue to scale easily, no matter how much information goes into the system. <br /> <br />I got started integrating my neural network application code, written in Java, with App Engine in a few hours using the <a href="https://developers.google.com/appengine/downloads">SDK&#8217;s Greeting Service</a> sample code as a starting point. The application has two main parts, a training module, that implements the neural network itself and runs the training process over the input data stored in static files, and a web interface that takes input data and returns the network&#8217;s analysis.<br /><br />Google App Engine provides the scalable infrastructure I need to collect information from every hospital in the world and run when there are many concurrent requests, as usage of my application increases. Because my network is built as a cloud service, not only is my app working on the web, but mobile tablets, smartphones, old PC systems, or new technologies can also easily access the service from any hospital with an internet connection. <br /><br />The neural network I developed is 99.11% sensitive to malignancy when using <a href="http://en.wikipedia.org/wiki/Cross-validation_(statistics)#Leave-one-out_cross-validation">leave-one-out testing</a> with original data. Thus far, I have run 7.6 million trials. Moving forward my goal is to make the application accessible to the global medical community so more data can be deposited and used to improve the diagnostic power of the network. </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Neural Network for Breast Cancer Data Built on Google App Engine&url=https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='1' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html?hl=en' data-url='https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/08/neural-network-for-breast-cancer-data.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20computing?hl=en' rel='tag'> cloud computing </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20platform?hl=en' rel='tag'> cloud platform </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> </span> </div> </div> </div> <div class='post' data-id='4293648994889655954' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html?hl=en' itemprop='url' title='Announcing Google App Engine education awards'> Announcing Google App Engine education awards </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, July 30, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author">Posted by the Google App Engine Team</span><br><br><i>(Cross-posted on the <a href="http://googleappengine.blogspot.com/2012/07/announcing-google-app-engine-education.html">Google App Engine blog</a>.)</i> <br><br>In addition to the startups and businesses we frequently highlight on our blog, we have seen educational institutions and their students build amazing applications, using Google App Engine as a platform for teaching and groundbreaking research. <br><br>Earlier this year we <a href="http://googleappengine.blogspot.com/2012/03/announcing-app-engine-research-awards.html">announced</a> funding for researchers looking to use App Engine for scientific discovery. Today we are introducing the Google App Engine Education Awards to foster continued innovation from educational institutions in areas outside of research. Through this program we are inviting faculty members, initially from the United States, to submit proposals for using App Engine for their course development, educational research, university tools or for student projects. A selection of the proposals we receive will receive $1,000 in App Engine credits to assist in making the proposal a reality. <br><br>App Engine allows you to build scalable applications using the same technology that powers Google&#8217;s global-scale web applications. With no hardware to setup, App Engine makes it simple to learn how to write a simple web application or to build an application that handles millions of hits a day. If you haven&#8217;t already tried App Engine, we encourage you to <a href="https://developers.google.com/appengine/downloads">download the SDK</a>, follow the <a href="https://developers.google.com/appengine/docs/java/gettingstarted/">Getting Started Guide</a> and take advantage of our free tier to deploy your first application. <br><br>If you teach at an accredited college, university or community college in the United States, we encourage you to apply. You can submit a proposal by filling out <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?formkey=dE15dWQ2eWlTc01wS0tYWnZsTlhBMkE6MQ#gid=0">this form</a>. Applications must be received by midnight PST August 31, 2012. </script> <noscript> <span class="byline-author">Posted by the Google App Engine Team</span><br><br><i>(Cross-posted on the <a href="http://googleappengine.blogspot.com/2012/07/announcing-google-app-engine-education.html">Google App Engine blog</a>.)</i> <br><br>In addition to the startups and businesses we frequently highlight on our blog, we have seen educational institutions and their students build amazing applications, using Google App Engine as a platform for teaching and groundbreaking research. <br><br>Earlier this year we <a href="http://googleappengine.blogspot.com/2012/03/announcing-app-engine-research-awards.html">announced</a> funding for researchers looking to use App Engine for scientific discovery. Today we are introducing the Google App Engine Education Awards to foster continued innovation from educational institutions in areas outside of research. Through this program we are inviting faculty members, initially from the United States, to submit proposals for using App Engine for their course development, educational research, university tools or for student projects. A selection of the proposals we receive will receive $1,000 in App Engine credits to assist in making the proposal a reality. <br><br>App Engine allows you to build scalable applications using the same technology that powers Google&#8217;s global-scale web applications. With no hardware to setup, App Engine makes it simple to learn how to write a simple web application or to build an application that handles millions of hits a day. If you haven&#8217;t already tried App Engine, we encourage you to <a href="https://developers.google.com/appengine/downloads">download the SDK</a>, follow the <a href="https://developers.google.com/appengine/docs/java/gettingstarted/">Getting Started Guide</a> and take advantage of our free tier to deploy your first application. <br><br>If you teach at an accredited college, university or community college in the United States, we encourage you to apply. You can submit a proposal by filling out <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?formkey=dE15dWQ2eWlTc01wS0tYWnZsTlhBMkE6MQ#gid=0">this form</a>. Applications must be received by midnight PST August 31, 2012. </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:Announcing Google App Engine education awards&url=https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='2' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html?hl=en' data-url='https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/07/announcing-google-app-engine-education.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/education?hl=en' rel='tag'> education </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> </span> </div> </div> </div> <div class='post' data-id='8301129518485333951' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html?hl=en' itemprop='url' title='A new future: hitting “Refresh” on business technology'> A new future: hitting &#8220;Refresh&#8221; on business technology </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, July 3, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span class="byline-author">Posted by Amit Singh, Vice President, Google Enterprise</span><br><br>Over the last two months I had the opportunity to spend time with hundreds of CIOs as we took <a href="http://www.atmosphereontour.com ">Atmosphere</a> &#8211; our annual cloud event &#8211; to 20 cities globally. What I heard from them boiled down to one simple idea: they&#8217;re looking for <a href="//www.youtube.com/watch?v=kcOUWjkGBUY&amp;feature=relmfu">a better way to do things</a>. Their employees want to work in collaborative environments without being tethered to their desks, and their IT departments are eager to shift resources from maintaining old technology to developing new ones. <br><br>These business leaders have experienced the power of living in the cloud and they want to bring that experience to the workplace. The cloud has certainly transformed my life by allowing my family to stay connected from all around the world. For example, at the São Paolo Atmosphere event, I joined a <a href="//www.google.com/+">Google+ Hangout</a> from my Android phone to wish my dad a happy birthday. This magic doesn&#8217;t need to be constrained to our personal lives. After all, we&#8217;re the same person at home and at work, and we like having access to the same devices and tools regardless. <br><br><b>A fundamental shift...</b><br>There was a time when business technology was at the forefront of innovation and productivity. Industries began to standardize around certain platforms that automated an individual&#8217;s work. But with complicated enterprise agreements, customer lock-in and limited competition, business technology lost its edge. IT professionals stopped innovating and relied on a handful of vendors who designed bloated software that was released every few <i>years</i>. At the same time, consumer technology took off. With the power of massive data centers, modern browsers and smart mobile devices at their fingertips, people found it easier than ever to communicate, create, and collaborate. Many people have fallen in love with the simplicity and freedom of these services, and they want to use them everywhere. <br><br><b>&#8230;to working in the future</b><br>This is where Google comes in. To provide a seamless transition from home to work (and back to home), we extended our popular consumer products&#8211;like Gmail and <a href="http://googleenterprise.blogspot.com/2012/04/introducing-google-drive-newest-member.html">Google Drive</a>&#8211;to meet the needs of businesses. For instance, <a href="//www.google.com/enterprise/apps/business/">Google Apps for Business</a> provides an additional layer of enterprise features like delegated mailboxes, granular administrative controls, a 99.9% SLA, 24x7 support, migration tools, and an ecosystem of certified resellers. <br><br>We&#8217;ve also applied the same formula to other products that were born in the cloud: <a href="http://googleenterprise.blogspot.com/2012/06/introducing-google-maps-coordinate.html">Google Maps Coordinate</a> helps companies easily manage mobile workers; <a href="//www.google.com/intl/en/chrome/business/browser/">Chrome for Business</a> gives you a consistent, personalized web experience on any device; <a href="http://cloud.google.com/products/">Google App Engine</a> lets you to build and host your own applications in the cloud; and <a href="http://googleenterprise.blogspot.com/2012/06/google-compute-engine-computing-without.html">Google Compute Engine</a> allows you to rent Google&#8217;s infrastructure to operate at scale. With each of these offerings, you can access the latest innovation by clicking &#8220;refresh&#8221; in your browser. <br><br>We&#8217;re humbled that 5 million businesses (including <a href="http://googleenterprise.blogspot.com/2012/01/bbva-banks-on-google-apps.html ">BBVA</a> and <a href="http://googleenterprise.blogspot.com/2012/02/roche-group-goes-google.html">Roche</a>), 66 of the top 100 U.S. universities, and government institutions in 45 of the 50 U.S. states have <a href="//www.google.com/campaigns/gonegoogle/index.html#utm_medium=blog&amp;utm_source=ogb&amp;utm_campaign=gg">gone Google</a> by choosing Google Apps to live and work in the cloud. We hear from these customers that alongside improving IT administration and individual productivity, Google Apps also helps teams of employees work better <i>together</i>. For example, Google documents let users collaborate in real-time and see each other&#8217;s edits as they happen. And now, with <a href="http://googleenterprise.blogspot.com/2012/06/get-things-done-anytime-anywhere.html">offline editing</a>, users can continue working even without an internet connection. <br><br>As people have begun to embrace the cloud, some legacy enterprise vendors have started to offer their own cloud-labeled offerings. They claim to offer a bridge between legacy solutions and the cloud. But these offerings still rely on desktop products and on-premise servers, require heavy IT investment, have limited support for mobile devices, come with complicated pricing and licences&#8211;and ultimately they&#8217;re still focused on individual productivity. If anything, they offer a bridge to the past. <br><br>With the explosion of computing devices, ubiquitous high-speed internet, and mobile workforces, there&#8217;s a fundamental shift happening in business. The question is: do you want to cross a bridge to continue working in the past...or move to the cloud so you can live and work seamlessly in the future? <br><br><i><a href="//www.google.com/a">Get started</a> with Google Apps or <a href="//google.com/gonegoogle/masters">collaborate in real-time today</a> with literary masters: Shakespeare, Nietzsche, Poe and more.</i> </script> <noscript> <span class="byline-author">Posted by Amit Singh, Vice President, Google Enterprise</span><br><br>Over the last two months I had the opportunity to spend time with hundreds of CIOs as we took <a href="http://www.atmosphereontour.com ">Atmosphere</a> &#8211; our annual cloud event &#8211; to 20 cities globally. What I heard from them boiled down to one simple idea: they&#8217;re looking for <a href="//www.youtube.com/watch?v=kcOUWjkGBUY&amp;feature=relmfu">a better way to do things</a>. Their employees want to work in collaborative environments without being tethered to their desks, and their IT departments are eager to shift resources from maintaining old technology to developing new ones. <br><br>These business leaders have experienced the power of living in the cloud and they want to bring that experience to the workplace. The cloud has certainly transformed my life by allowing my family to stay connected from all around the world. For example, at the São Paolo Atmosphere event, I joined a <a href="//www.google.com/+">Google+ Hangout</a> from my Android phone to wish my dad a happy birthday. This magic doesn&#8217;t need to be constrained to our personal lives. After all, we&#8217;re the same person at home and at work, and we like having access to the same devices and tools regardless. <br><br><b>A fundamental shift...</b><br>There was a time when business technology was at the forefront of innovation and productivity. Industries began to standardize around certain platforms that automated an individual&#8217;s work. But with complicated enterprise agreements, customer lock-in and limited competition, business technology lost its edge. IT professionals stopped innovating and relied on a handful of vendors who designed bloated software that was released every few <i>years</i>. At the same time, consumer technology took off. With the power of massive data centers, modern browsers and smart mobile devices at their fingertips, people found it easier than ever to communicate, create, and collaborate. Many people have fallen in love with the simplicity and freedom of these services, and they want to use them everywhere. <br><br><b>&#8230;to working in the future</b><br>This is where Google comes in. To provide a seamless transition from home to work (and back to home), we extended our popular consumer products&#8211;like Gmail and <a href="http://googleenterprise.blogspot.com/2012/04/introducing-google-drive-newest-member.html">Google Drive</a>&#8211;to meet the needs of businesses. For instance, <a href="//www.google.com/enterprise/apps/business/">Google Apps for Business</a> provides an additional layer of enterprise features like delegated mailboxes, granular administrative controls, a 99.9% SLA, 24x7 support, migration tools, and an ecosystem of certified resellers. <br><br>We&#8217;ve also applied the same formula to other products that were born in the cloud: <a href="http://googleenterprise.blogspot.com/2012/06/introducing-google-maps-coordinate.html">Google Maps Coordinate</a> helps companies easily manage mobile workers; <a href="//www.google.com/intl/en/chrome/business/browser/">Chrome for Business</a> gives you a consistent, personalized web experience on any device; <a href="http://cloud.google.com/products/">Google App Engine</a> lets you to build and host your own applications in the cloud; and <a href="http://googleenterprise.blogspot.com/2012/06/google-compute-engine-computing-without.html">Google Compute Engine</a> allows you to rent Google&#8217;s infrastructure to operate at scale. With each of these offerings, you can access the latest innovation by clicking &#8220;refresh&#8221; in your browser. <br><br>We&#8217;re humbled that 5 million businesses (including <a href="http://googleenterprise.blogspot.com/2012/01/bbva-banks-on-google-apps.html ">BBVA</a> and <a href="http://googleenterprise.blogspot.com/2012/02/roche-group-goes-google.html">Roche</a>), 66 of the top 100 U.S. universities, and government institutions in 45 of the 50 U.S. states have <a href="//www.google.com/campaigns/gonegoogle/index.html#utm_medium=blog&amp;utm_source=ogb&amp;utm_campaign=gg">gone Google</a> by choosing Google Apps to live and work in the cloud. We hear from these customers that alongside improving IT administration and individual productivity, Google Apps also helps teams of employees work better <i>together</i>. For example, Google documents let users collaborate in real-time and see each other&#8217;s edits as they happen. And now, with <a href="http://googleenterprise.blogspot.com/2012/06/get-things-done-anytime-anywhere.html">offline editing</a>, users can continue working even without an internet connection. <br><br>As people have begun to embrace the cloud, some legacy enterprise vendors have started to offer their own cloud-labeled offerings. They claim to offer a bridge between legacy solutions and the cloud. But these offerings still rely on desktop products and on-premise servers, require heavy IT investment, have limited support for mobile devices, come with complicated pricing and licences&#8211;and ultimately they&#8217;re still focused on individual productivity. If anything, they offer a bridge to the past. <br><br>With the explosion of computing devices, ubiquitous high-speed internet, and mobile workforces, there&#8217;s a fundamental shift happening in business. The question is: do you want to cross a bridge to continue working in the past...or move to the cloud so you can live and work seamlessly in the future? <br><br><i><a href="//www.google.com/a">Get started</a> with Google Apps or <a href="//google.com/gonegoogle/masters">collaborate in real-time today</a> with literary masters: Shakespeare, Nietzsche, Poe and more.</i> </noscript> </div> </div> <div class='share'> <span class='gplus-share social-wrapper' data-href='https://plus.google.com/share?url=https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html?hl=en'> <img alt='Share on Google+' height='24' src='https://www.gstatic.com/images/branding/google_plus/2x/ic_w_post_gplus_black_24dp.png' width='24'/> </span> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Cloud Blog:A new future: hitting “Refresh” on business technology&url=https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html?hl=en&via=gsuite'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html?hl=en'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='comment-container'> <i class='comment-img material-icons'> &#57529; </i> <span class='cmt_count_iframe_holder' data-count='0' data-onclick='' data-post-url='https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html?hl=en' data-url='https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html' style='color: #4184F3;'></span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://cloud.googleblog.com/2012/07/a-new-future-hitting-refresh-on.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://cloud.googleblog.com/search/label/Chrome?hl=en' rel='tag'> Chrome </a> , <a class='label' href='https://cloud.googleblog.com/search/label/cloud%20computing?hl=en' rel='tag'> cloud computing </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en' rel='tag'> Gone Google </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl=en' rel='tag'> Google App Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Apps?hl=en' rel='tag'> Google Apps </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Compute%20Engine?hl=en' rel='tag'> Google Compute Engine </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Enterprise?hl=en' rel='tag'> Google Enterprise </a> , <a class='label' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Coordinate?hl=en' rel='tag'> Google Maps Coordinate </a> </span> </div> </div> </div> <div class='blog-pager' id='blog-pager'> <a class='home-link' href='https://cloud.googleblog.com/?hl=en'> <i class='material-icons'> &#59530; </i> </a> <i class='material-icons disabled'> &#58820; </i> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://cloud.googleblog.com/search/label/Google%20App%20Engine?updated-max=2012-07-03T12:30:00-07:00&max-results=20&start=20&by-date=false&hl=en' id='Blog1_blog-pager-older-link' title='Older Posts'> <i class='material-icons'> &#58824; </i> </a> </span> </div> <div class='clear'></div> </div></div> </div> </div> <div class='col-right'> <div class='section' id='sidebar-top'><div class='widget HTML' data-version='1' id='HTML8'> <div class='widget-content'> <div class='searchBox'> <input type='text' title='Search This Blog' placeholder='Search blog ...' /> </div> </div> <div class='clear'></div> </div></div> <div id='aside'> <div class='section' id='sidebar'><div class='widget Label' data-version='1' id='Label1'> <div class='tab'> <img class='sidebar-icon' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYpJREFUeNrs2aFuwzAQBmAvKRkMKRjZA4QMDJaWFgyMjuzFRg37DIUlA3uFkoGQSaWzJU+tpri5O9+l/zSfdFJlpe59yTmyVedq1PjfcZMZ70NuQnaF8w8htyE/rABtpviXkLcK88c5HhLkMBfgVan43zfFBNGMjHVGT/s55KP2pAvidbGHd+nzKt1RKSLG3rKF1iPFv6UWiPke8i7kEqGdGsI1O+LYVdqJAjgirwkKYD0ytkJBUNbAMvX8V3q9PhUsYvU1sWD8SO/sQvx2ahxOiNoJCSBCoAHYCEQAC4EKICOQASQEOmAS8RcAFxFN5hiIiugpgC3wk9hQAHH/70EBHXUN7IER5EWMiBgo2+nzOKQv9SCAeEM/OQAkhE/ncccFICB87qzQMia5FsJfOui0zMnmRvipU1ormHQuxGTxUsAcCFLxJQBLBLn4UoAFglW8BkATwS5eC6CBEBWvCShBiIvXBkgQRcVbADiI4uKtABSESvGWgB9EzHt3+tNwyO0qa9SoIYtvAQYAqDJhaWWeMecAAAAASUVORK5CYII='/> <h2> Labels </h2> <i class='material-icons arrow'> &#58821; </i> </div> <div class='widget-content list-label-widget-content'> <ul> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23innovationupgrade?hl=en'> #innovationupgrade </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23InspireGirls?hl=en'> #InspireGirls </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23moregoogleapps?hl=en'> #moregoogleapps </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23SysAdminDay?hl=en'> #SysAdminDay </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23tbt?hl=en'> #tbt </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23throwbackthursday?hl=en'> #throwbackthursday </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/%23top10trust?hl=en'> #top10trust </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/100%25%20web?hl=en'> 100% web </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/50states?hl=en'> 50states </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/ad%20contest?hl=en'> ad contest </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/add-ons?hl=en'> add-ons </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/admin?hl=en'> admin </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Admin%20console?hl=en'> Admin console </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/admin%20sdk?hl=en'> admin sdk </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/AirPlay?hl=en'> AirPlay </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android?hl=en'> Android </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android%20for%20Work?hl=en'> Android for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android%20for%20Work%20Live?hl=en'> Android for Work Live </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android%20Marshmellow?hl=en'> Android Marshmellow </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android%20Nougat?hl=en'> Android Nougat </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android%20security?hl=en'> Android security </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Android%20security%20tips?hl=en'> Android security tips </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Apps%20Adventures?hl=en'> Apps Adventures </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/apps%20script?hl=en'> apps script </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/apptuesday?hl=en'> apptuesday </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Armed%20Forces%20Day?hl=en'> Armed Forces Day </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Asia%20Pacific?hl=en'> Asia Pacific </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Atmosphere%20Live?hl=en'> Atmosphere Live </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Audi?hl=en'> Audi </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Audi%20Connect?hl=en'> Audi Connect </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/audit?hl=en'> audit </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Australia?hl=en'> Australia </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/big%20data?hl=en'> big data </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Big%20Query?hl=en'> Big Query </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/bigquery?hl=en'> bigquery </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Boston?hl=en'> Boston </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/browser?hl=en'> browser </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chomebox%20for%20Meetings?hl=en'> Chomebox for Meetings </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome?hl=en'> Chrome </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome%20Device%20Management?hl=en'> Chrome Device Management </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome%20digital%20signage?hl=en'> Chrome digital signage </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome%20for%20Business?hl=en'> Chrome for Business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome%20for%20Work?hl=en'> Chrome for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome%20Frame?hl=en'> Chrome Frame </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chrome%20OS?hl=en'> Chrome OS </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebit?hl=en'> Chromebit </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebooks?hl=en'> Chromebooks </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebooks%20for%20Business?hl=en'> Chromebooks for Business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebooks%20for%20Education?hl=en'> Chromebooks for Education </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebooks%20for%20Work?hl=en'> Chromebooks for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebox%20for%20digital%20signage?hl=en'> Chromebox for digital signage </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebox%20for%20meetings?hl=en'> Chromebox for meetings </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromebox%20for%20signage?hl=en'> Chromebox for signage </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromeboxes?hl=en'> Chromeboxes </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Chromecast?hl=en'> Chromecast </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/City%2024%2F7?hl=en'> City 24/7 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Classroom?hl=en'> Classroom </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Clearing%20Kosovo?hl=en'> Clearing Kosovo </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Cloud?hl=en'> Cloud </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20computing?hl=en'> cloud computing </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20computing%20gonegoogle?hl=en'> cloud computing gonegoogle </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20computing%20gonegoogle%20Google%20Apps?hl=en'> cloud computing gonegoogle Google Apps </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20computing%20gonegoogle%20Google%20Apps%20google%20docs%20small%20business%20success%20story?hl=en'> cloud computing gonegoogle Google Apps google docs small business success story </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20computing%20gonegoogle%20Google%20Apps%20google%20docs%20small%20business%20success%20story%20switch?hl=en'> cloud computing gonegoogle Google Apps google docs small business success story switch </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20datastore?hl=en'> cloud datastore </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20platform?hl=en'> cloud platform </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Cloud%20Platform%20Live?hl=en'> Cloud Platform Live </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20print?hl=en'> cloud print </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20series?hl=en'> cloud series </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20services?hl=en'> cloud services </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/cloud%20sql?hl=en'> cloud sql </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/collaboration?hl=en'> collaboration </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Colorado?hl=en'> Colorado </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Connectors?hl=en'> Connectors </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/contacts?hl=en'> contacts </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Control%20Panel?hl=en'> Control Panel </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/customer?hl=en'> customer </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/customer%20love?hl=en'> customer love </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Customer%20story?hl=en'> Customer story </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Customer%20support?hl=en'> Customer support </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Customer%20testimonial?hl=en'> Customer testimonial </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/data%20centers?hl=en'> data centers </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/data%20processing%20amendment?hl=en'> data processing amendment </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/data%20protection?hl=en'> data protection </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Developer?hl=en'> Developer </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/developers?hl=en'> developers </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Digital%20Learning%20Day?hl=en'> Digital Learning Day </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Docs?hl=en'> Docs </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/documents?hl=en'> documents </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/DPA?hl=en'> DPA </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Drawings?hl=en'> Drawings </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Drive%20for%20Education?hl=en'> Drive for Education </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/drive%20sharing?hl=en'> drive sharing </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Earth?hl=en'> Earth </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/earth%20and%20maps?hl=en'> earth and maps </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/EC?hl=en'> EC </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/education?hl=en'> education </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Education%20on%20Air?hl=en'> Education on Air </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/EMC?hl=en'> EMC </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/EMM?hl=en'> EMM </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Energy?hl=en'> Energy </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/enterprise?hl=en'> enterprise </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/EU?hl=en'> EU </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/events?hl=en'> events </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/FedEx?hl=en'> FedEx </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Fedex.com?hl=en'> Fedex.com </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Finance?hl=en'> Finance </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Firebase?hl=en'> Firebase </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Forms?hl=en'> Forms </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/franchises?hl=en'> franchises </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/GAFE?hl=en'> GAFE </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Gartner?hl=en'> Gartner </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/GE?hl=en'> GE </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/geo?hl=en'> geo </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Global%20Partner%20Summit?hl=en'> Global Partner Summit </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/gmail?hl=en'> gmail </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Gone%20Google?hl=en'> Gone Google </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/gonegoogle?hl=en'> gonegoogle </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20AdWords?hl=en'> Google AdWords </a> </li> <li> <span dir='ltr'> Google App Engine </span> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps?hl=en'> Google Apps </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20Blog?hl=en'> Google Apps Blog </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20for%20Business?hl=en'> Google Apps for Business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20for%20Education?hl=en'> Google Apps for Education </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20for%20Government?hl=en'> Google Apps for Government </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20for%20Work?hl=en'> Google Apps for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20Marketplace?hl=en'> Google Apps Marketplace </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20Reseller?hl=en'> Google Apps Reseller </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20Script?hl=en'> Google Apps Script </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Apps%20Vault?hl=en'> Google Apps Vault </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20BigQuery?hl=en'> Google BigQuery </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Calendar?hl=en'> Google Calendar </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Calendar%20app?hl=en'> Google Calendar app </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Certified%20Teachers?hl=en'> Google Certified Teachers </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Chrome?hl=en'> Google Chrome </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Chromebases?hl=en'> Google Chromebases </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Classroom?hl=en'> Google Classroom </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Datastore?hl=en'> Google Cloud Datastore </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20DNS?hl=en'> Google Cloud DNS </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Platform?hl=en'> Google Cloud Platform </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20cloud%20storage?hl=en'> google cloud storage </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Cloud%20Vision%20API?hl=en'> Google Cloud Vision API </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20commerce%20search?hl=en'> google commerce search </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Compute%20Engine?hl=en'> Google Compute Engine </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Doc?hl=en'> Google Doc </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Docs?hl=en'> Google Docs </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Domains?hl=en'> Google Domains </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Draw?hl=en'> Google Draw </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Drive?hl=en'> Google Drive </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Drive%20for%20Work?hl=en'> Google Drive for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Earth?hl=en'> Google Earth </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Earth%20Engine?hl=en'> Google Earth Engine </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Earth%20Enterprise?hl=en'> Google Earth Enterprise </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Earth%20Images?hl=en'> Google Earth Images </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Earth%20Pro?hl=en'> Google Earth Pro </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Email%20Security%20and%20Archiving?hl=en'> Google Email Security and Archiving </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Enterprise?hl=en'> Google Enterprise </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Enterprise%20Search?hl=en'> Google Enterprise Search </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Expeditions?hl=en'> Google Expeditions </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Education?hl=en'> Google for Education </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Education%20Partner%20Program?hl=en'> Google for Education Partner Program </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Education%20Training%20Center?hl=en'> Google for Education Training Center </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Entrepreneurs?hl=en'> Google for Entrepreneurs </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Work?hl=en'> Google for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Work%20and%20Google%20for%20Education%20Partner%20Program?hl=en'> Google for Work and Google for Education Partner Program </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20for%20Work%20partner%20program?hl=en'> Google for Work partner program </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Forms?hl=en'> Google Forms </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Green?hl=en'> Google Green </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20groups?hl=en'> google groups </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Hangout?hl=en'> Google Hangout </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Hangouts?hl=en'> Google Hangouts </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20I%2FO?hl=en'> Google I/O </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Keep?hl=en'> Google Keep </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps?hl=en'> Google Maps </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20API?hl=en'> Google Maps API </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20APIs?hl=en'> Google Maps APIs </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Coordinate?hl=en'> Google Maps Coordinate </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Engine?hl=en'> Google Maps Engine </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Engine%20Pro?hl=en'> Google Maps Engine Pro </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Engine%20public%20data%20program?hl=en'> Google Maps Engine public data program </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20for%20Business?hl=en'> Google Maps for Business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20for%20Work?hl=en'> Google Maps for Work </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Gallery?hl=en'> Google Maps Gallery </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Maps%20Tracks%20API?hl=en'> Google Maps Tracks API </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Message%20Continuity?hl=en'> Google Message Continuity </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20message%20security?hl=en'> google message security </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Mobile%20Device%20Management?hl=en'> Google Mobile Device Management </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20My%20Maps?hl=en'> Google My Maps </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20My%20Maps%20Pro?hl=en'> Google My Maps Pro </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Places%20API?hl=en'> Google Places API </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Play?hl=en'> Google Play </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20play%20for%20education?hl=en'> google play for education </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Prediction%20API?hl=en'> Google Prediction API </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Research%20tool?hl=en'> Google Research tool </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Science%20Fair?hl=en'> Google Science Fair </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Search%20Appliance?hl=en'> Google Search Appliance </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Security%20Key?hl=en'> Google Security Key </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Sheets?hl=en'> Google Sheets </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Site%20Search?hl=en'> Google Site Search </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20sites?hl=en'> google sites </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Slides%20API?hl=en'> Google Slides API </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Smart%20Lock?hl=en'> Google Smart Lock </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20spreadsheets?hl=en'> Google spreadsheets </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Springboard?hl=en'> Google Springboard </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%20storage?hl=en'> google storage </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Storage%20for%20Developers?hl=en'> Google Storage for Developers </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Translate?hl=en'> Google Translate </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Vault?hl=en'> Google Vault </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Video?hl=en'> Google Video </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%20Wave?hl=en'> Google Wave </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/google%2B?hl=en'> google+ </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%2B%20api?hl=en'> Google+ api </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Google%2B%20Communities?hl=en'> Google+ Communities </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/googlenew?hl=en'> googlenew </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/government?hl=en'> government </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/GSA?hl=en'> GSA </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/GSA%207.0?hl=en'> GSA 7.0 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/GSA%20for%20Commerce?hl=en'> GSA for Commerce </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/guest%20post?hl=en'> guest post </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/HALO%20Trust?hl=en'> HALO Trust </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Hangout%20on%20Air?hl=en'> Hangout on Air </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Hangouts%20on%20Air?hl=en'> Hangouts on Air </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/HEAT?hl=en'> HEAT </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/hints%20and%20tips?hl=en'> hints and tips </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/HIPAA?hl=en'> HIPAA </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Inbox?hl=en'> Inbox </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Inbox%20by%20Gmail?hl=en'> Inbox by Gmail </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/innovation?hl=en'> innovation </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/international%20trade?hl=en'> international trade </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Internet%20Explorer?hl=en'> Internet Explorer </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/intranet?hl=en'> intranet </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/io2011?hl=en'> io2011 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/iOS?hl=en'> iOS </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/iPad?hl=en'> iPad </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/IT?hl=en'> IT </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/K-12?hl=en'> K-12 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Kubernetes?hl=en'> Kubernetes </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/large%20business?hl=en'> large business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/MAM?hl=en'> MAM </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/manufacturing?hl=en'> manufacturing </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Mapping%20a%20better%20world?hl=en'> Mapping a better world </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/marketplace?hl=en'> marketplace </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/marketplace%20highlights?hl=en'> marketplace highlights </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/mashups?hl=en'> mashups </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/MCCs?hl=en'> MCCs </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/MDM?hl=en'> MDM </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/medium%20business?hl=en'> medium business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/migration?hl=en'> migration </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/mobile?hl=en'> mobile </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/mobile%20management?hl=en'> mobile management </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/model%20contract%20clauses?hl=en'> model contract clauses </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/moms?hl=en'> moms </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Mother%27s%20Day?hl=en'> Mother&#39;s Day </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/mpstaffpick?hl=en'> mpstaffpick </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/MyHEAT?hl=en'> MyHEAT </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/NAVMAN?hl=en'> NAVMAN </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/new%20features?hl=en'> new features </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/news?hl=en'> news </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Niagara%20International%20Transportation%20Technology%20Coalition?hl=en'> Niagara International Transportation Technology Coalition </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/non-profit?hl=en'> non-profit </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/noteworthy?hl=en'> noteworthy </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/offline?hl=en'> offline </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/OpenID%20Connect?hl=en'> OpenID Connect </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Parters?hl=en'> Parters </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/partner?hl=en'> partner </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Partner%20Showcase?hl=en'> Partner Showcase </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/partners?hl=en'> partners </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Place%20Summaries?hl=en'> Place Summaries </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Postini?hl=en'> Postini </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/privacy?hl=en'> privacy </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/product%20ideas?hl=en'> product ideas </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/productivity?hl=en'> productivity </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Quickoffice?hl=en'> Quickoffice </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Receptionist%27s%20Day?hl=en'> Receptionist&#39;s Day </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/reports?hl=en'> reports </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Reseller?hl=en'> Reseller </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/retail?hl=en'> retail </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/RSA?hl=en'> RSA </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Safer%20Internet%20Day?hl=en'> Safer Internet Day </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/SBW2013?hl=en'> SBW2013 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/SBW2014?hl=en'> SBW2014 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/sbweek?hl=en'> sbweek </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/SCCs?hl=en'> SCCs </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Search?hl=en'> Search </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Security?hl=en'> Security </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Security%20Key?hl=en'> Security Key </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/small%20business?hl=en'> small business </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Small%20Business%20Week?hl=en'> Small Business Week </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Small%20businesses?hl=en'> Small businesses </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/SMB?hl=en'> SMB </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/spam%20and%20security%20trends?hl=en'> spam and security trends </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Startups?hl=en'> Startups </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/success%20story?hl=en'> success story </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/support?hl=en'> support </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/switch?hl=en'> switch </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/System%20Admin?hl=en'> System Admin </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/T%20Dispatch?hl=en'> T Dispatch </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Teamwork%202015?hl=en'> Teamwork 2015 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Thanksgiving?hl=en'> Thanksgiving </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Transport%20and%20Logistics?hl=en'> Transport and Logistics </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Trust?hl=en'> Trust </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/UK?hl=en'> UK </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/university?hl=en'> university </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/University%20of%20Calgary?hl=en'> University of Calgary </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Updates?hl=en'> Updates </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/utilities?hl=en'> utilities </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Veteran%20Owned%20Businesses?hl=en'> Veteran Owned Businesses </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Veterans%20Day?hl=en'> Veterans Day </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Veterans%20Day%202013?hl=en'> Veterans Day 2013 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Veterans%20Day%202014?hl=en'> Veterans Day 2014 </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/viewpoint?hl=en'> viewpoint </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/VNX?hl=en'> VNX </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/wallet?hl=en'> wallet </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/webinar?hl=en'> webinar </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/webmaster?hl=en'> webmaster </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Winter?hl=en'> Winter </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/women%20in%20tech?hl=en'> women in tech </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Women%27s%20History%20Month?hl=en'> Women&#39;s History Month </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/Work%20Resolutions?hl=en'> Work Resolutions </a> </li> <li> <a dir='ltr' href='https://cloud.googleblog.com/search/label/World%20Bank?hl=en'> World Bank </a> </li> </ul> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <div class='tab'> <i class='material-icons icon'> &#58055; </i> <h2> Archive </h2> <i class='material-icons arrow'> &#58821; </i> </div> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy toggle-open'> <i class='material-icons'> &#58823; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2016/?hl=en'> 2016 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2016/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2015/?hl=en'> 2015 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2015/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2014/?hl=en'> 2014 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2014/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2013/?hl=en'> 2013 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2013/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2012/?hl=en'> 2012 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2012/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2011/?hl=en'> 2011 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2011/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2010/?hl=en'> 2010 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2010/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2009/?hl=en'> 2009 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2009/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2008/?hl=en'> 2008 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2008/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2007/?hl=en'> 2007 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2007/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://cloud.googleblog.com/2006/?hl=en'> 2006 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/12/?hl=en'> December </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/11/?hl=en'> November </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/10/?hl=en'> October </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/09/?hl=en'> September </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/08/?hl=en'> August </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/07/?hl=en'> July </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/06/?hl=en'> June </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/05/?hl=en'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/04/?hl=en'> April </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/03/?hl=en'> March </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/02/?hl=en'> February </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://cloud.googleblog.com/2006/01/?hl=en'> January </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> </div> </div> <div class='clear'></div> </div> </div><div class='widget HTML' data-version='1' id='HTML6'> <div class='widget-content'> <a href="http://cloud.blogspot.com/atom.xml"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAihJREFUeNrsWa9Pw0AU7viRMDFRBAkzJDMIBIhJJhCzk7NILIqMv4AEhdz+BCY3OYssAlGBoAJREpZwAlHEBO8lr8nSvNeVbu1dyX3JlzTrXfa+u/e9d7c5joWFhYVO1Fa8PwH2gK6m+BRwAvSlAdsrgr8E1jUuMH73GTAEzrkBWymTewZlihhLmgDXIAFuHgGVQOUF7OSYM1p6PgTuA1vAZlUEvAnPdapcMY0VICECekQ0XRfYrqoHsAGNgXfAoMomRiFDEhOZkkL3S88hMaB2LwXp0bj+ps2edpToZpjfoIDQtBeU+xjoDzP2G/gCPKZ5f8WsCAFJoJgOCcFdWSTeL9YQMSvTA1h9BkI5jaiXhLpSCL/8mVZY0UpyJ9ZdOkniu1dmJ96BpzQu9w6s28gcOq9j6pwLdR8/36NK5CQKwJSMrb2MhhSglBpt4UjsrdsnNu0B3J0HCozbCc4TjyY2srEgos/4RQljCzNxl4ireQD8FOq+T+W0mTB2g7njhlR+Sy2jsXFvU658U8YTbeaGpdIu7mWkEAq5ZtIjIhFZdtfX7QHckSvB2B6zC3VdAkZk0kAQwaXTk/CzTXK3wjIExCs6ZJpTnE4uY1KV+KzFzA3KTiFPENHJkOPcsfpLhwe4btoSuvUqAR+6TOxlCE6ZfKUsJLgsqGW8OpqAGx2X+sLxrwUog+JUeQRMDBIwyXOcnlPtPnL0/UsT/8LnOxYWFhZG4leAAQAAQHEaYuzHbAAAAABJRU5ErkJggg==" class="sidebar-icon" /> <h2>Feed</h2> </a> </div> <div class='clear'></div> </div></div> <div class='section' id='sidebar-bottom'><div class='widget HTML' data-version='1' id='HTML5'> <div class='widget-content'> <div class="followgooglewrapper"> <a href="http://plus.google.com/+googlecloud" rel="publisher" style="text-decoration:none;display:inline-block;color:#333;text-align:center; font:13px/16px arial,sans-serif;white-space:nowrap;"> <span style="display:inline-block;font-weight:bold;vertical-align:top;margin-right:5px; margin-top:0px;">Google</span><span style="display:inline-block;vertical-align:top;margin-right:13px; margin-top:0px;">on</span> <img src="//ssl.gstatic.com/images/icons/gplus-16.png" alt="Google+" style="border:0;width:16px;height:16px;"/></a> </div> <div class='followgooglewrapper'> <script src="https://apis.google.com/js/plusone.js"></script> <div class="g-ytsubscribe" data-channel="GoogleApps" data-layout="full"></div> </div> <!--Twitter--> <div class="share followgooglewrapper"> <button data-href="https://twitter.com/gsuite" onclick='sharingPopup(this);' id='twitter-share'><span class="twitter-follow">Follow @gsuite</span></button> <script> function sharingPopup (button) { var url = button.getAttribute("data-href"); window.open( url,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); } </script> </div> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML1'> <h2 class='title'> Useful Links </h2> <div class='widget-content'> <a href="https://gsuite.google.com/together/">G Suite</a><br /><a href="https://apps.google.com/products/gmail/?utm_medium=et&utm_source=appsblog&utm_campaign=en&utm_content=gmail">Gmail</a><br /><a href="https://apps.google.com/products/hangouts/?utm_medium=et&utm_source=appsblog&utm_campaign=en&utm_content=hangouts">Hangouts</a><br /><a href="https://apps.google.com/products/calendar/?utm_medium=et&utm_source=appsblog&utm_campaign=en&utm_content=calendar">Calendar</a><br /><a href="https://apps.google.com/products/googleplus/?utm_medium=et&utm_source=appsblog&utm_campaign=en&utm_content=gplus">Google+</a><br /><a href="https://apps.google.com/products/drive/?utm_medium=et&utm_source=appsblog&utm_campaign=en&utm_content=drive">Google Drive</a><br /><a href="https://www.google.com/work/mapsearth/">Google Maps</a><br /><a href="https://cloud.google.com/">Google Cloud Platform</a> </div> <div class='clear'></div> </div></div> </div> </div> <div style='clear:both;'></div> </div> <!-- Footer --> <div class='footer-outer loading'> <div class='footer-inner'> <div class='footer-inner-2'> <div style='width:33%;float:left;'> <div class='section' id='footer-1'><div class='widget HTML' data-version='1' id='HTML2'> <h2 class='title'> Company-wide </h2> <div class='widget-content'> <ul> <li> <a href="//googleblog.blogspot.com/" title="Official Google">Official Google Blog</a> </li> <li> <a href="//googlepublicpolicy.blogspot.com/" title="Public Policy">Public Policy Blog</a> </li> <li> <a href="//googleforstudents.blogspot.com/" title="Student">Student Blog</a> </li> </ul> </div> <div class='clear'></div> </div></div> </div> <div style='width:33%;float:left;'> <div class='section' id='footer-2'><div class='widget HTML' data-version='1' id='HTML3'> <h2 class='title'> Products </h2> <div class='widget-content'> <ul> <li> <a href="//officialandroid.blogspot.com/" title="Android">Android Blog</a> </li> <li> <a href="//chrome.blogspot.com/" title="Chrome">Chrome Blog</a> </li> <li> <a href="//google-latlong.blogspot.com/" title="Lat Long">Lat Long Blog</a> </li> </ul> </div> <div class='clear'></div> </div></div> </div> <div style='width:33%;float:left;'> <div class='section' id='footer-3'><div class='widget HTML' data-version='1' id='HTML4'> <h2 class='title'> Developers </h2> <div class='widget-content'> <ul> <li> <a href="//googledevelopers.blogspot.com/" title="Developers">Developers Blog</a> </li> <li> <a href="//googleadsdeveloper.blogspot.com/" title="Ads Developer">Ads Developer Blog</a> </li> <li> <a href="//android-developers.blogspot.com/" title="Android">Android Developers Blog</a> </li> </ul> </div> <div class='clear'></div> </div></div> </div> <div style='clear:both;'></div> </div> </div> </div> <div class='google-footer-outer loading'> <div id='google-footer'> <a href='//www.google.com/'> <img class='google-logo-dark' height='36' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAABICAYAAABFoT/eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACLVJREFUeNrsXd+L20YQ3vOprdLqiMXFXE2qB7dcwEcTSB7ykIc+9A/PQx/yEMq1TWhNuYIpJriNr7XpmZ5IxFEvmW2EKs3Ornb1w50PxIFP0kiz387OzM6uhGAwGAxGP3Ho+f7x7ri1O7LdccPqZjSNA4dEHsLfaHcEFedJom93x9Xu2OyOFTcBo6sED3fHZHeMEELrkAHJF0B8Rr+gDFsZ5n0luLTQ95AXs4W06D/tjpR50xtM4CjD0y48YGB4rnyZxNOzyA7zBHr+nLnDaJLg0mo/ALekCasg3Z4XbM0ZdTEgnDPeHY8bIne+Qz2GvwyGNwsuyT218KWvIIBMcwGpLiipcolecjMxfBDchNyS1EvxLiOSIecp31q6IJ/C3yrIrMqMm4jhg+AxkdwbIO3aUO4KjqqMjCT3uaazMBhWBJfuxH3CtRfiXf66DhSRZWbmlMnNaILgZxrXJQO/eO3wORZwvwm4JUxuhheCjzVBYAbW1ces45YDSoZrFNOEE835M8FT6oyeEnws8Fz3QnBxFKPHBMem4GU+m6fPGb0leCTwWcM5B36MPgeZI01gudyDdw3hPeXfo8L/rmCUWnuMMdqUL2WqWeRbhf+twfVsO7YagZGNC79fw7OthEVtkiJ4jJzTd3KPwf3CRqhhiTu23AP5sl0/0xiwISQXpNwLIJK87mHF+U8ddzzdmgKlGzlPYjyxGJQouIhNT4k9AqWEFkqfguIvagTWbcq3KW1WE3xS3m8NtA9WS451xofwjKT5kkDoK/b6mDk5FfXr1lWDL4BofZEv2/SRsK/EHGlGdBdu8QNRb8HMCFwt7Yy3DDI/QP7fx5z3VLhdlJEIs4rKNuXXJXdxZPdB7kfCzWqwCO4V1LHgLjInX3tQ1KzCR52Cz+vDj1dydeRuS74rcvs2Pi6fT5H8OaaUQPQPYcWwRSGXyhhscn5dpAnEFMkuEZetbfkTAnlSuH4DxisE+aMGeJAQ3lFl7C4LJE6QWCaCd583ORQ1jYAwjFctal7nOs2ZZvicwvlZx+RHGrcoAwKUVX8uwcc/9TT65INeDOr5shL9LDRB6QTeIy3zwfdh3WOi6axLCEhSjXU7F3h6LqggUtvyJxpynwu8tDkD98fXApOxRj8zoZ9MnGveYVIVZKaGrkBXCY65BCYNN9NkjpKOyQ81Q79JgdxS+Jn3SDTEXRI7SWzaiSTB32oI3nU3BvMfM0urhOVYgwKhuiAfc4tM07wXwm1ZRoQYSl2NUwiu01fEAHVcpixd745FvVz4dzUUc0o8rwoLy8ZSwU6CyFx1RP5II9+1bFPEFs9HWbNLiimDXE+vCm7u1CS47cofzD3aEhVY57mxRo5zlqdt+RFC1JUH2S7bcVXg4liTMakaBZZVxiTICRoivcn1sEUBlk24JmaC6kxUbYmWoqvyfck2xZGGnDFYa9MMzkYQ1ijkCX6qidybrgePiQ0QIQqoi6qRLeqQfIoRsEHaQJLBdHOnLGetSdm/IPcymJuS1PAnbQPH0MOw/39C1vL11DiLOqIsbDI8QcHvGiLnySi2qUXBicaqUSxN5LEB0g7Jt3ENXJLPJ5S1tnaZBoWbpRqrmjRE7qHmpSmNHdQcYrEUadoh+TbBnc9ri7iycI1kzPeNcLDIvbiqXpez9Tmdq6zGREPuzECBoxrPMiI2WtvyNwhJba2wy3JZ6ky5dD1lSvmZS3e4SPA1wcf1VTFHKX+cGwZzdUYcqpvUtvwrD/InDttVlyZeAKlNN5MKbAiurHhKIPlUuJvlTCCiDjSKSCsUmCFWbGLZwCESfK07JB8LvMYWVtw0D00JEHV8Mq2HkqPbE0oHLvvK2g0o8ETg+4cfwTlZDT9JDoWygu4uQQE/ivIvtcnfPkaCqhiupz7jWOAzqL/vjtcdkv9G4MVMt+EaylfuImiPAXEUjRF3pjjaHiPPZ6If9TGGAO4ZY0am6jOCb+DQ+ZCqLkIpOIPrdNfIjnFPY6nyFut7TS/fanrziOBOKMupKw94WaLMtuVnSFt9CPrWWdJE6PeltCX432DEBoh+5Dv8RRhdis8YAv9uyq4/JAwtlEApgBe9Cw9xDD3tdk4Jn0MDfiHwPHcRPxBePCMER3GuIx7kGlv9fkZ4V9lolx2Uv4X7hEj7qJ3LDoAMGbTRMRibu4L2xQ8bgt8AyU+Q+x7nYrvDnH4iuO5LxKsYwPVbkPMvKF9Zky9wXzRfVWizi62r9X5VHf55h+WHhDjGBZ4WRhyTr6z5SlCoLMxLSpBZFsQ9F80uQFbF/6aFWi+Ev51vzzsuX+msyzuQXXjUz8zEBy+zpq9yweXAoxJW4JbYrDS6gYDqGHxPl+TKeiBfxj9/EBIElPYeOA4y8/qRQfknjvSzgRgtq0Pw/M1eQeMdOSb2Bnrhr6Led+1vcp2x7oTFHMnedFW+Ivlty062BUt74oHgSj+vHepnhunn0JJAMtBZgDI/qmGtMujRv8DDpo47zBJ8UtPOuAR/7rKn8t9AJ0tBdmBAmJ/Fu71yxp4I3qh+DhyRqbi5Y1ShVPlSb8X7bRNcfgZFl+WRGYo7uecrWq1r8X5bhmzP5OdlDwsGRm1suSxkg5rYm7ConyGQ3Zl+DgSD8V/kPwrWBMG9YcBtyShBnTLdTiHgttw7qAW7cqh/ZnmPKr/6ignOaKsdyxbsToT5UkPsW00bJjijDXficcX/JsLs6w2BwGtherdckH3w/kNXRPVI0OqJQoHX42/66IMfMj/2huRjxIidgKV/W0JS+bsstDoTeAHcrI8E5zTh/sDkqxL5rZup55/3USlswfcHf4IrQplVDgW9XFlOqnwr6pVPMMEZTuC60EttvdzbLbaZ4PsFVa3nohhO+vW+yn/ZB2fUhpysmQrzBcTSai9EszuZMcEZ1lCFVrp9zGXhm69iLyY4oxFIa178lPe12I/P2DAYDAaDwWAwGAwGg8FgMBgMBoPBYDD2Cf8IMADDRGoQTe+E9AAAAABJRU5ErkJggg==' style='margin-top: -16px;' width='92'/> </a> <ul> <li> <a href='//www.google.com/'> Google </a> </li> <li> <a href='//www.google.com/policies/privacy/'> Privacy </a> </li> <li> <a href='//www.google.com/policies/terms/'> Terms </a> </li> </ul> </div> </div> <script type='text/javascript'> //<![CDATA[ // Social sharing popups. var postEl = document.getElementsByClassName('social-wrapper'); var postCount = postEl.length; for(i=0; i<postCount;i++){ postEl[i].addEventListener("click", function(event){ var postUrl = this.getAttribute("data-href"); window.open( postUrl,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); });} //]]> </script> <script type='text/javascript'> //<![CDATA[ var BreakpointHandler = function() { this.initted = false; this.isHomePage = false; this.isMobile = false; }; BreakpointHandler.prototype.finalizeSummary = function(summaryHtml, lastNode) { // Use $.trim for IE8 compatibility summaryHtml = $.trim(summaryHtml).replace(/(<br>|\s)+$/,''); if (lastNode.nodeType == 3) { var lastChar = summaryHtml.slice(-1); if (!lastChar.match(/[.”"?]/)) { if (!lastChar.match(/[A-Za-z]/)) { summaryHtml = summaryHtml.slice(0, -1); } summaryHtml += ' ...'; } } else if (lastNode.nodeType == 1 && (lastNode.nodeName == 'I' || lastNode.nodeName == 'A')) { summaryHtml += ' ...'; } return summaryHtml; }; BreakpointHandler.prototype.generateSummaryFromContent = function(content, numWords) { var seenWords = 0; var summaryHtml = ''; for (var i=0; i < content.childNodes.length; i++) { var node = content.childNodes[i]; var nodeText; if (node.nodeType == 1) { if (node.hasAttribute('data-about-pullquote')) { continue; } nodeText = node.textContent; if (nodeText === undefined) { // innerText for IE8 nodeText = node.innerText; } if (node.nodeName == 'DIV' || node.nodeName == 'B') { // Don't end early if we haven't seen enough words. if (seenWords < 10) { continue; } if (i > 0) { summaryHtml = this.finalizeSummary(summaryHtml, content.childNodes[i-1]); } break; } summaryHtml += node.outerHTML; } else if (node.nodeType == 3) { nodeText = node.nodeValue; summaryHtml += nodeText + ' '; } var words = nodeText.match(/\S+\s*/g); if (!words) { continue; } var remain = numWords - seenWords; if (words.length >= remain) { summaryHtml = this.finalizeSummary(summaryHtml, node); break; } seenWords += words.length; } return summaryHtml; }; BreakpointHandler.prototype.detect = function() { var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/g, decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, query = window.location.search.substring(1); var urlParams = {}; while (match = search.exec(query)) urlParams[decode(match[1])] = decode(match[2]); this.isListPage = $('html').hasClass('list-page'); this.isMobile = urlParams['m'] === '1'; this.isHomePage = window.location.pathname == '/'; }; BreakpointHandler.prototype.initContent = function() { var self = this; $('.post').each(function(index) { var body = $(this).children('.post-body')[0]; var content = $(body).children('.post-content')[0]; $(content).addClass('post-original'); var data = $(content).children('script').html(); data = self.rewriteForSSL(data); // If exists, extract specified editor's preview. var match = data.match(/([\s\S]+?)<div data-is-preview.+?>([\s\S]+)<\/div>/m); if (match) { data = match[1]; } // Prevent big images from loading when they aren't needed. // This must be done as a pre-injection step, since image loading can't be // canceled once embedded into the DOM. if (self.isListPage && self.isMobile) { data = data.replace(/<(img|iframe) .+?>/g, ''); } // Insert template to be rendered as nodes. content.innerHTML = data; if (self.isListPage) { var summary = document.createElement('div'); $(summary).addClass('post-content'); $(summary).addClass('post-summary'); body.insertBefore(summary, content); if (match) { // Use provided summary. summary.innerHTML = match[2]; } else { // Generate a summary. // Summary generation relies on DOM, so it must occur after content is // inserted into the page. summary.innerHTML = self.generateSummaryFromContent(content, 30); } // Add read more link to summary. var titleAnchor = $(this).find('.title a')[0]; var link = titleAnchor.cloneNode(true); link.innerHTML = 'Read More'; $(link).addClass('read-more'); summary.appendChild(link); } }); // Firefox does not allow for proper styling of BR. if (navigator.userAgent.indexOf('Firefox') > -1) { $('.post-content br').replaceWith('<span class="space"></span>'); } $('.loading').removeClass('loading'); }; BreakpointHandler.prototype.process = function() { if (!this.initted) { var makeInsecureImageRegex = function(hosts) { var whitelist = hosts.join('|').replace(/\./g,'\\.'); // Normal image tags, plus input images (yes, this is possible!) return new RegExp('(<(img|input)[^>]+?src=("|\'))http:\/\/(' + whitelist +')', 'g'); }; this.sslImageRegex = makeInsecureImageRegex(BreakpointHandler.KNOWN_HTTPS_HOSTS); this.sslImageCurrentDomainRegex = makeInsecureImageRegex([window.location.hostname]); this.detect(); this.initContent(); this.initted = true; } }; BreakpointHandler.KNOWN_HTTPS_HOSTS = [ "www.google.org", "www.google.com", "services.google.com", "blogger.com", "draft.blogger.com", "www.blogger.com", "photos1.blogger.com", "photos2.blogger.com", "photos3.blogger.com", "blogblog.com", "img1.blogblog.com", "img2.blogblog.com", "www.blogblog.com", "www1.blogblog.com", "www2.blogblog.com", "0.bp.blogspot.com", "1.bp.blogspot.com", "2.bp.blogspot.com", "3.bp.blogspot.com", "4.bp.blogspot.com", "lh3.googleusercontent.com", "lh4.googleusercontent.com", "lh5.googleusercontent.com", "lh6.googleusercontent.com", "themes.googleusercontent.com", ]; BreakpointHandler.prototype.rewriteForSSL = function(html) { // Handle HTTP -> HTTPS source replacement of images, movies, and other embedded content. return html.replace(this.sslImageRegex, '$1https://$4') .replace(this.sslImageCurrentDomainRegex, '$1//$4') .replace(/(<(embed|iframe)[^>]+?src=("|'))http:\/\/([^"']*?(youtube|picasaweb\.google)\.com)/g, '$1https://$4') // Slideshow SWF takes a image host, so we need to rewrite that parameter. .replace(/(<embed[^>]+?feed=http(?=[^s]))/g, '$1s'); }; $(document).ready(function() { var handler = new BreakpointHandler(); handler.process(); // Top-level navigation. $(".BlogArchive .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); $(".Label .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); // Blog archive year expansion. $('.BlogArchive .intervalToggle').click(function(ev) { ev.preventDefault(); if ($(this).parent().hasClass('collapsed')) { $(this).parent().removeClass('collapsed'); $(this).parent().addClass('expanded'); } else { $(this).parent().removeClass('expanded'); $(this).parent().addClass('collapsed'); } }); // Reverse order of months. $('.BlogArchive .intervalToggle + div').each(function(_, items) { var year = $(this); year.children().each(function(_, month) { year.prepend(month); }); }); // Set anchors to open in new tab. $('.post-content img').parent().each(function(_, node) { if (node.nodeName == 'A') { $(this).attr('target', '_blank'); } }); // Process search requests. $('.searchBox input').on("keypress", function(ev) { if (ev.which == 13) { window.location.href = 'https://www.google.com/search?q=site%3A' + window.location.hostname + '%20' + encodeURIComponent ($(this).val()); } }); }); //]]> </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/984859869-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY6krYa8vaxxlc12oVrEWsqGIvcZNw:1732467195169';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6567687196385815607','//cloud.googleblog.com/search/label/Google%20App%20Engine?hl\x3den','6567687196385815607'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6567687196385815607', 'title': 'Official Google Cloud Blog', 'url': 'https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl\x3den', 'canonicalUrl': 'https://cloud.googleblog.com/search/label/Google%20App%20Engine', 'homepageUrl': 'https://cloud.googleblog.com/?hl\x3den', 'searchUrl': 'https://cloud.googleblog.com/search', 'canonicalHomepageUrl': 'https://cloud.googleblog.com/', 'blogspotFaviconUrl': 'https://cloud.googleblog.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-18038-3', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Official Google Cloud Blog - Atom\x22 href\x3d\x22https://cloud.googleblog.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Official Google Cloud Blog - RSS\x22 href\x3d\x22https://cloud.googleblog.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Official Google Cloud Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6567687196385815607/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/d78375fb222d99b3', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'searchLabel': 'Google App Engine', 'pageName': 'Google App Engine', 'pageTitle': 'Official Google Cloud Blog: Google App Engine'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Official Google Cloud Blog', 'description': 'Built in the cloud. Engineered for your enterprise.', 'url': 'https://cloud.googleblog.com/search/label/Google%20App%20Engine?hl\x3den', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': false, 'isSearch': true, 'isLabelSearch': true, 'search': {'label': 'Google App Engine', 'resultsMessage': 'Showing posts with the label Google App Engine', 'resultsMessageHtml': 'Showing posts with the label \x3cspan class\x3d\x27search-label\x27\x3eGoogle App Engine\x3c/span\x3e'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'navMessage': 'Showing posts with label \x3cb\x3eGoogle App Engine\x3c/b\x3e. \x3ca href\x3d\x22https://cloud.googleblog.com/\x22\x3eShow all posts\x3c/a\x3e'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML8', 'sidebar-top', document.getElementById('HTML8'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML6', 'sidebar', document.getElementById('HTML6'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML5', 'sidebar-bottom', document.getElementById('HTML5'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar-bottom', document.getElementById('HTML1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'footer-1', document.getElementById('HTML2'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML3', 'footer-2', document.getElementById('HTML3'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML4', 'footer-3', document.getElementById('HTML4'), {}, 'displayModeFull')); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10