Google Cloud Platform LIVE – Décryptage

March 26, 2014 § 5 Comments

gcplogoSi vous n’avez pas pu y assister, voici un résumé des annonces du Google Cloud Platform LIVE du 25 mars 2014.

Avant de rentrer dans les détails, pour ceux qui sont sur Paris, le Google Cloud Roadshow passera dans la capitale le 7 avril prochain chez Google France (inscriptions).

cloud-roadshow

Urs?

La keynote (YouTube) était assurée par Urs Hölzle, le papa du Cloud de Google, interne comme externe. Pour le contexte, la veille, Urs a été interviewé par Wired. En résumé l’homme qui depuis le début est responsable de la conception des datacenters et du logiciel (GFS, MapReduce, BigTable, Colossus, Dremel, …) qui soutient le cloud le plus important au monde (Search, Maps, YouTube, GMail, …), nous promet un monde nouveau. Rien de moins. Voyons ce qu’il en est.
cloud-urs

Pricing

Partant du constat que le pricing dans le cloud est trop complexe et trop cher (surtout par rapport au coût du hardware qui baisse avec la loi de Moore). Du coup, Google annonce des baisses de prix entre 30% et 85% avec l’engagement que les prix continueront à suivre celui de l’infrastructure sous-jacente (ces prix s’appliquent dans toutes les régions, historiquement l’Europe était un peu plus chère). Mieux encore, il n’est plus nécessaire de faire un choix entre instances normales et pré-réservées (moins chères): il suffit d’utiliser une instance au moins 25% du mois pour qu’un rabais supplémentaire de 30% s’applique!
Les détails de pricing sont ici
CloudMoore

Nouveaux OS sur Compute Engine

En plus de Debian et CentOS, on compte parmi les images disponibles : RedHat Enterprise Linux et SUSE Linux Enterprise Server (dispo maintenant) et Windows Server 2008 R2 (en Preview pour le moment). Egalement en Preview, un nouveau service : Google Cloud DNS.

Big Data / Big Query

La récente fonctionnalité BigQuery Streaming permet désormais d’injecter 100 000 enregistrements par seconde! De quoi reconsidérer son warehousing ou son sharding.

Productivité du développeur

Trop souvent, dans le cloud, il faut choisir entre productivité (contraintes) et flexibilité (responsabilité). Les outils exposés aux développeurs sont aussi bien souvent des boites noires (“ne jamais laisser un développeur approcher des machines de prod!”). Dans un effort de simplification de l’expérience du développeur, le Cloud Google propose désormais :

  • une intégration Git (GitHub ou un repo git privé et hébergé chez Google)
  • la navigation depuis les messages d’erreur dans la console Cloud directement vers le code source
  • l’édition en mode rapide du code toujours depuis la console
  • le git-push-to-deploy avec build (Maven ou Gradle pour Java) et tests intégrés via jenkins et déploiement en production
  • un SDK et sa ligne de commande gcloud qui unifie tous outils précédents, supporte des profils multiples et propose de l’auto-complétion sur toutes les plate-formes (Linux, Mac, Windows)

Détails dans ce blog en anglais.

cloud-git-jenkins

IaaS ou PaaS?

On doit pouvoir faire mieux que la dichotomie classique entre IaaS et PaaS pour éviter un choix trop structurant en début de projet. C’est ce que promet Managed Virtual Machines, de quoi garder l’automatisme de App Engine et d’y intégrer des instances Compute Engine pour y exécuter du code natif ou carrément utiliser une stack logicielle comme node.js ou Dart. Puisqu’il s’agit de VMs Compute Engine, il reste tout à fait possible de s’y connecter en ssh. Pour autant ces machines sont provisionnées pour avoir accès de manière transparente à l’ensemble des autres services Cloud de Google (BigQuery, DataStore, Memcache, Cloud Storage, etc…).

CloudmanagedVMs

Quand??

“Managed VM” propose un programme de Trusted Tester. Pour le reste, les nouveautés destinées aux développeurs (git, maven, jenkins, …) doivent apparaître dans quelques semaines.

Ces annonces ne sont qu’un début et synonyme de changements profonds internes chez Google. Prochaine étape majeure (enfin, après le roadshow) – Google I/O, fin Juin.

Alors, que pensez-vous de ce nouveau monde?

Docker on Google Compute Engine – a Hello World with OpenCV

January 17, 2014 Comments Off

Docker seems to strike a great middle-ground between complete-but-full-blown VM’s (a la VirtualBox or VMWare) and error-prone-but-super-lightweight setup/production scripts. Its architecture built on layers offers an interesting amount of granularity and I felt like I needed to build my own little Hello World.

docker-top-logo

I chose to build a Docker file for a build image [1] with OpenCV, a computer vision library, and specifically with its Java binding and test its deployment on Google Compute Engine [2]. While very popular, OpenCV isn’t particularly easy to set up and thus makes for a nice use-case for something not completely trivial as a random ‘apt-get install’. Note this is a trusted build, hosted on index.docker.io as a link to the Dockerfile on github and built by the Docker Index system.


After building a binary for OpenCV 2.4.7 together with its Java support (which is not part of the default build and somewhat tedious to generate), I created this simple image that simply places the compiled bits in /opt and places a simple face recognition demo application in the home directory. You’ll note that the build includes the install of an updated version of libc6-dev to satisfy Java OpenCV shared libraries. Docker nicely hides this mess to the user of the image.

Of course, there also needs to be a proper Java installed. This is done by building the OpenCV demo image from another trusted build (alexismp/debian-openjdk) which itself builds off of debian wheezy. As the name implies it installs OpenJDK (7) and configures JAVA_HOME and PATH.

Finally, my OpenCV demo image provisions ANT which is used to run the sample code with a trivial “ant build” command in the demo directory (/home/faceDetect).

small-computeenginesmall-storageRunning this software stack on Google Compute Engine is as easy as pulling the build from Docker’s repository from a Docker-enabled virtual machine [1], running docker with shared directories, and moving the result to Google Cloud Storage :

$ sudo docker pull alexismp/opencv-demo-java7-trusted
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alexismp/opencv-demo-java7-trusted latest 4a9f88286d2e 36 hours ago 783.7 MB (virtual 5.123 GB)
$ sudo docker run \
    -v /tmp:/root \
    -t -i alexismp/opencv-demo-java7-trusted \
    bash
% cd home/faceDetect/
% ant
...
% cp *.png /root/
% exit

$ gsutil mb gs://face-detect/
$ gsutil cp /tmp/*.png gs://face-detect/

The OpenCV test uses face detection (not recognition! :) and creates a PNG images boxing the faces it has detected. Note how simple it is to use the Cloud Storage gsutil command-line to create a new bucket and copy the generated image which at this point is available from a RESTful API.

faceDetection2

Being on the Google network with my Compute Engine instance made the pull operations pretty painless with great download speeds and the backup to Google Storage plain trivial. I also used a simple persistent disk with docker installed and configured which is booting in just a few seconds.

The next step is to integrate this functionality and make it available as a generic service, FDaaS, Face Detection as a Service! This will require writing a front-end or an offering an API and tweaking the Java code to deal with more flexible input/output.


Using Docker on the Mac currently required me to setup Vagrant, VirtualBox and Docker itself, something between dependency hell and Russian dolls but I’m told I should really look at boot2docker (which also sounds like an interesting solution for docker in production).

Interested in Docker? Their Getting Started page is pretty good. Start there and move to the equally good documentation when needed. Just remember that this is still a dot (0.x) release and officially not suited for production.


[1]: if you find the Docker vocabulary a bit confusing, you’re not alone. Check out this nicely written post : http://blog.thoward37.me/articles/where-are-docker-images-stored/

[2]: Docker on Google Compute Engine – http://docs.docker.io/en/master/installation/google/

Google presence at Devoxx Antwerp 2013

November 10, 2013 § 1 Comment

Devoxx 2013      google_developers_logo
A busy week is about to start for the Devoxx 2013 participants and speakers (it’s been busy for organizers for many weeks!) and Google is back this year with a lot in store for developers.

Android KitKat
Of course, you’ll hear a lot about the newly released Android 4.4 KitKat from Chet and Romain in a University session, a “What’s new” session, and more (Chet is bringing a tie…). Also covered will be Google Play Games Services with a hands-on lab (by Dan Galpin), an Android performance University session, an “image processing on Android” session by Nicolas Roard, a “Design” by Nick Butcher, and a puzzlers session!

angular
AngularJS is back by popular demand with a lab, a university (both on Monday), a session, and a BOF session with a large portion of the team present at the conference (Igor, Misko, Brad, …). There’s also this related TDD session : “Unit testing JavaScript/CoffeeScript/Dart code with Karma”. The AngularJS BOF/Meetup is scheduled for Wednesday 7pm and I hear it’ll have fine food and drinks…

chrome_logo
If you’re curious about how Chrome (Packaged Apps) can help you build rich clients there’s a full university waiting for you (by Jow Marini) and an NFC quickie by François Beaufort. Sam Dutton is back to present on Media APIs and WebRTC progress. Maybe in one of the most important Web sessions, Mike West will help you mitigate the risk of XSS.

cloud_platform
The Google Cloud has grown to much more than just App Engine. Ludo will cover Google Compute Engine (infrastructure, VM-based offering), the many new features in App Engine, and how the two can seamlessly play together. Ludo will be busy with another session about how to build scalable RESTful APIs, and finally Martin Gorner with explain BigQuery for dummies (aka Dremel, yet another part of the Google’s Cloud).

G+Icon
If you run a web site or service with mobile users and you’re still in the business of managing your their passwords, I would recommend attending Ian Barber’s “Google Sign-in on mobile devices (Android and iOS)” session.

Dart_Wordmark
Finally, Thursday will be “Dart Day” for us starting with the Google keynote by Lars Bak, an industry veteran, author of the HotSpot JVM, of the V8 JavaScript engine and now leading the Dart effort, who will no doubt have a thing or two to say about the future of Web development. Later in the Day, Lars and the team will hold a “Dart – Ask us Anything” session during lunch, will a “Mobile, multi-device, multi-player with HTML5 and Dart” session in the afternoon. The day will end with a 6pm to 8pm happy hours with the Dart team (co-founders Lars Bak and Kasper Lund, Seth Ladd, and a number of other engineers). Make sure to stop by the Google booth early to get your free ticket.

Interviews, Booth, Cloud Credits, Quizz & More!
Similar to last year we’ll be conducting a number of interviews of Google speakers which will later be made available on the Google Developer YouTube channel as well as on Parleys. You are encouraged to ask questions ahead of time using this Moderator link.

We’re also running a Google+ event for Devoxx to share photos, comments and interact with other conference participants.

Devoxx participants, make sure you look for the Google Cloud Credits coupon in your attendee bag and redeem it! Also make sure you try the Google quizz online or at the Google booth, we have a number of nice giveaways for those that do!

And, of course, let’s meet at the Google booth and chat about anything developer!

Devoxx, here we come!

Accélérez vos développements iOS avec la plate-forme Cloud de Google

October 9, 2013 Comments Off

Mobile backends est une solution qui vous permet de créer des applications mobiles connectées sans avoir à écrire de code coté serveur. Aujourd’hui nous simplifions les développements coté serveur pour les développeurs iOS en proposant “Mobile Backend Starter for iOS”. Avec les bibliothèques Mobile Backend et Objective-C vous pouvez désormais :

  • stocker des données dans le cloud et les partager entre plusieurs utilisateurs
  • envoyer des notifications push entre appareils
  • utiliser des requêtes continues pour notifier les utilisateurs mobiles de modifications des données
  • authentifier les utilisateurs titulaires de comptes Google

Ryan Harter, développeur mobile, a utilisé Mobile Backend Starter pour passer son application Hashnote de 3 000 à 20 000 utilisateurs :

“Le Mobile Backend Starter m’a permis de me concentrer sur mon application Android tout en m’assurant que mon coté serveur était efficace. Ceci dit, cette partie serveur n’est pas une boite noire à tout faire qui m’emprisonne dans une solution spécifique. J’ai fait évoluer ce code serveur pour répondre à des spécificités de mon application Hashnote tout en apprenant comment Google avait implémenté le code initial disponible en Open Source.”

Le Mobile Backend Starter est une application App Engine si bien que vous pouvez supporter des centaines d’utilisateurs concurrents dans la limite de quotas gratuits. Le code source pour l’ensemble de l’application, à la fois la partie backend et les clients Android et iOS clients, est disponible sur Github. Libre à vous d’explorer ce code et d’y intégrer toute modification que vous jugez nécessaire.

MBSiOS

Débutez avec Mobile Backend Starter

Vous pouvez essayer Mobile Backend Starter sur un iPhone ou un iPad en quelques étapes (les détails complets se trouvent ici):

  1. Déployez la partie serveur sur App Engine
  2. Téléchargez et configurez le client iOS (ou bien effectuez un clone du code sur GitHub)
  3. Exécutez l’application d’exemple sur un téléphone ou une tablette (note: l’exemple ne fonctionne pas dans le simulateur iOS)

MBSmarchitecture

Vous pouvez ensuite utiliser les classes de notre framework pour communiquer avec la partie serveur comme s’il s’agissait de code local iOS. Nous avons en particulier intégré les récents progrès réalisés pour livrer des notifications push fiables et capables d’adresser des milliers de périphériques iOS au travers de l’Apple Push Notification Service.

Les mêmes fonctionnalités sont désormais disponibles pour Android et iOS avec un code coté serveur capable de gérer les spécificités des différentes plate-formes comme l’utilisation de Google Cloud Messaging pour Android et d’APNS pour iOS. Coté Android, vous pouvez suivre ces instructions ou regarder la session Google I/O disponible ici.

- Ecrit par Stuart Reavley, Product Manager, Google Cloud Platform

AppEngine 1.7.7 – incrémental et fondamental

April 11, 2013 § 1 Comment

La toute dernière version d’AppEngine (1.7.7, annonce officielle) introduit son lot de nouveautés, comme le support de java.net.Socket et java.net.DatagramSocket sortantes (avec qq restrictions et pour les applications payantes uniquement), mais elle est pour moi surtout marquée par des améliorations incrémentales importantes et pour beaucoup transparentes pour l’utilisateur (c’est l’intérêt d’avoir délégué l’admin à Google dans une approche PaaS). En voici les plus marquantes :

  • déploiements beaucoup plus rapides
  • généralisation de Java 7 (par défaut pour toute nouvelle application)
  • amélioration du plugin Maven, développé par l’équipe AppEngine, propose la génération de code Cloud Endpoints et se trouve (avec ses archetypes) dans Maven Central
  • nouveau scheduling pour un auto-scaling encore plus efficace (perf et donc $/€)
  • amélioration des performance de la console et de ses rapports de charge

Deux autres modifications concernent:

  • la facturation (un nouveau système est maintenant en place) avec la suppression des $2.10 de “ticket d’entrée”
  • l’introduction du Cloud SDK, une consolidation des outils en ligne de commande des différentes offres de Cloud Google: Storage, Compute Engine, CloudSQL, BigQuery et AppEngine

A partir de cette version les logs contiennent maintenant la version AppEngine.

Rendez-vous maintenant à Google I/O (15-17 mai 2013) pour une version avec son lot de nouveautés.
Ship early ship often!

Is the Vert.x episode spotlighting an open source weakness?

January 11, 2013 § 10 Comments

With all my Sun years advocating open source and my following closely of the Hudson/Jenkins drama from within Oracle some two years ago, I’ve been tracking the recent vert.x issue with quite some detachment (I’m no longer at Oracle and I’m not involved in any way in this technology) but also with a lot of interest. What was really fascinating was to read everyone’s perspective bias in the public discussion :

  • A (somewhat naive) lead and creator of the project caught in the middle of politics
  • Red Hat’s experience with Netty influencing its current behavior
  • VMWare claiming they have lots of open source experience too
  • The idea that foundations would solve all the IP and governance issues
  • My foundation is better than yours arguments
  • The realization that neither Eclipse nor Apache are ideal
  • Jenkins’ Kohsuke suggesting nonprofits for shared assets
  • The Eclipse Foundation being called once again a trade association
  • etc…

http://en.wikipedia.org/wiki/File:Ascending_and_Descending.jpg

Clearly, as Simon Phipps writes in his column, “In an age of open source, it’s hard to acquire a technology” and this brings up what I think is a paradox for any open source believer :

This recent episode will make it even harder for startups to bet on open source to find funding and for companies to be acquired for their open source assets, thus in turn leading to less usage of open source.

In the end, isn’t this underlying a weakness of the greater open source cause or should open source technologies never be a reason to acquire (or sell) a company?

Google (free) talks from Devoxx

January 7, 2013 Comments Off

We now have the following five Google sessions from Devoxx 2012 freely available to all on Parleys :





If you like shorter formats, you might enjoy these 3 to 10-minute interviews with some of the Google speakers.

Google interviews from Devoxx 2012

November 20, 2012 Comments Off

I was lucky to interview a number of our great Google speakers at Devoxx 2012. Here is the result with seven 3 to 10-minute interviews. A YouTube playlist is also available here. Enjoy!







Chaîne Google Developers pour améliorer votre anglais

November 20, 2012 § 1 Comment

Lire et écrire des emails, échanger par messagerie instantanée avec des collègues qui sont souvent dans d’autres pays, le tout en anglais, c’est le quotidien dans le travail de beaucoup d’ingénieurs.

Améliorer son niveau d’anglais peut être parfois difficile si l’on n’est pas immergé dans un environnement de collègues parlant tous l’anglais. Il est aussi quasi-impossible de rester informé sur les dernières nouveautés technologiques sans maîtriser cette langue. L’apprentissage de la technologie et de l’anglais sont des efforts perpétuels.

Les ingénieurs ont de nombreuses opportunités de lire de la documentation, de communiquer avec des communautés open source, de visionner des vidéos sur YouTube, le tout en anglais et désormais il existe une méthode gratuite pour améliorer ses connaissances techniques et son anglais en même temps.

Apprendre l’anglais sur la chaîne Google Developers sur YouTube
Le principe ici est de rajouter des sous-titres de qualité aux vidéos techniques.

Ces sous-titres permettent :

  • d’entraîner vos oreilles à un anglais parlé
  • de consulter sur le champ la définition de mots que vous ignorez
  • d’apprendre des constructions et des expressions propres à l’anglais parlé

Tout ceci est certainement plus efficace qu’une simple lecture ou écoute de contenu en anglais.

Tout le contenu produit dans le cadre de Google Developers Live (GDL) est proposé avec des sous-titres. Il s’agit d’une initiative de l’équipe Developer Relations de Google dont l’objectif est de promouvoir auprès des développeurs des technologies comme Chrome/HTML5, Android, ou le Cloud. Ces vidéos sont publiées immédiatement après leur passage en direct et les transcriptions manuelles (et donc à priori de qualité) sont habituellement disponibles dans les deux semaines suivantes.

Pour accéder aux sous-titres traduits manuellement, il vous suffit de choisir “Anglais” comme indiqué dans l’image ci-dessus. Si le bouton est rouge, le choix “Anglais” fait référence à une transcription de qualité effectuée par un humain.

Si vous êtes intéressés, il ne vous reste plus qu’à vous abonner à la chaîne Google Developers sur YouTube pour commencer à apprendre votre technologies favorite en même temps que d’améliorez votre anglais. Ces vidéos sont également accessibles depuis l’application YouTube sous Android et iOS.

Quelques vidéos recommandées

Google @ Devoxx 2012 (a preview)

November 11, 2012 § 1 Comment

Google has been present for several years at Devoxx and an official partner since last year. This time, not only are we again a premium sponsor for the conference, we are bringing some of the best content and speakers to Antwerp. Before we go any further, make sure you check out the Devoxx 2012 G+ Events (for photo sharing and overall online interaction during the conference).



Of course, you’ll hear about Android, HTML5/Chrome and Cloud/AppEngine, but let me start with the less obvious Google content at Devoxx :

  • Damon, the lead for ROSjava, will talk about “Cloud Robotics” (a good reason to stay until Friday), he has some amazing demos
  • Tom will present j2objc, the recently announced Java to iOS Objective-C translation tool and runtime (also on Friday)
  • Nicolas will be busy presenting on OAuth 2 (a very widely-used technology for Google) together with Tim Bray (the Google keynote speaker) as well as on the Google Drive SDK. Both talks are on Thursday.
  • Probably the most hard-core Java talk by Google this year will be given by Jérôme and Nicholas on “Effective Dependency Injection“, a session based on experience refactoring massive projects such as GMail (and GlassFish). Also on Thursday.
  • Ian should give a fun talk (a Wednesday BOF) on how to build a Google+ client in Clojure.

As you know Android 4.2 is around the corner, so you should expect a thing or two about this new version and likely even Nexus devices to check out at the Google booth. Scheduled Android content include (mostly duets as you can see) :

  • Starting on Monday, Nick and Rich will offer a 3-hour-long Android Hands-on lab.
  • On Tuesday, Romain and Chet will cover “Important Android Stuff” in a 3-hour University session. Expect important Android stuff.
  • Another duet, Xav and Tor the tools guys, will offer an “Android Tools in Action” and a session on “What’s new in Android Developers’ Tools“.
  • On Wednesday, Nick and Rich are back for a live Google Developer Live EMEA Office Hours session from the interview lounge.
  • Romain and Chet have two regular 1-hour conference sessions on “What’s new with Android” and a more advanced graphics session titled “For butter or worse“.
  • Xav will also cover the new Android build system in a BOF on Tuesday.
  • There are many more Android talks from the community!

On the Web / HTML 5 / Chrome front, there’s also plenty of exciting sessions :

  • Ilya is holding a 3-hour “Faster Websites: Crash Course on Frontend Performance” University talk on Tuesday and a Chrome DevTools talk on Wednesday.
  • Seth will provide an update on the Dart side (Milestone 1 and beyond) in his “Putting the App back into Web Apps” session on Wednesday
  • Mike will offer a “Building safe web applications with HTML5″ session, surely followed by many (security matters and sells)
  • Paul will take a slightly different take on Chrome and HTML 5 with the newly announced Chrome Packaged Apps in a Wednesday evening BOF.
  • Sam will cover exciting and bleeding-edge “disruptive media” technologies in HTML 5 such as WebRTC/getUserMedia() as well as “Fast UIs for the mobile web”, with both sessions are scheduled on Thursday.
  • Last but not least, the AngularJS team (Igor, Vojta and Misko) are offering no less than a “Building awesome client-side web apps with AngularJS” Hands-on Lab on Tuesday, a “Re-imagining the browser with AngularJS” session on Thursday and a Testacular session on Tuesday.

I’ll have the privilege to help Ludo cover the Cloud content in the “What’s new with Google App Engine and Compute Engine” Thursday session. As the name implies, it’ll provide an update on AppEngine (lots of stuff happen in a year with the monthly releases) but also cover the newly introduced IaaS offering Compute Engine, and how the two play well together.

I also spotted a peculiar “The Future of Software Development Process Methodology Effectiveness” by Chet Haas’ homonym. Certainly a session that will get every agile practitioner happy that the conference is, after all, not agile-free!

Tim will be delivering the Google keynote on Thursday morning – “Life online”. That’s one keynote you don’t want to miss (demos included).

As part of the yearly innovation the Devoxx organizers have decided to bet on NFC Wristbands instead of the traditional conference badges. Google gladly provided a few Nexus devices. In addition to the Android applications for the conference (providing schedule and more) there’s one to interact with the Devoxx NFC Wristband. Check them out!

With all those great speakers around, you should also expect a series of interviews to be posted on the Google Developer YouTube Channel.

Finally, make sure you stop by the Google booth throughout the conference to meet the Googlers present ar Devoxx. The exhibition floor is open from Tuesday to Thursday. See you there!

Follow

Get every new post delivered to your Inbox.