This week, Google presented its new cloud features during the GCP NEXT World tour in Amsterdam. We were lucky to attend this event and want to share our experiences with you.
The conference started with a traditional keynote session. This time Miles Ward, the Global Head of Solutions at Google Cloud Platform, started with a brief description of GCP services. He stressed a great value that they deliver to users from business and maintenance perspective. Miles gave a small but very inspiring demo using a small robot with a camera, which could detect and analyze the objects it could see. That robot was using Google Vision API, the very exciting feature of google services, which impressed me a lot already in the morning (and it kept impressing me during the day through other sessions).
“It’s an alcohol beverage” – these were the first words the robot said
in its life when I turned it on. And he was right!
-Miles said. He managed to wake everybody up and boost some energy to the audience.
I was looking forward to visiting the first session of the day – the session about Google Application Management Platform – Kubernetes. I am a big fan of Docker container solutions and, thus, was pretty curious about this session.
The session was given by Matt Feigal, the Cloud Platform Solutions Engineer and currently Head of Engineering for Self-Driving Bike Team (and it is not a joke: https://www.youtube.com/watch?v=LSZPNwZex9s). He started with a general description of an ideal platform that could host and run different applications. This platform has to be decoupled on infrastructural, and application level. And surely, Kubernetes possesses these characteristics:
- You can run Kubernetes everywhere: in GCP or AWS (or any other cloud), on premises or even on your laptop
- Application is not aware that it runs in Kubernetes
Kubernetes is an Open Source project. The community includes both single contributing freelancers and big widely known companies. As an example of a success story, Travix presented his case as an early adopter of Kubernetes. Jorrit Salverda, Technical Architect at Travix, gave a brief demo how they use Kubernetes in their infrastructure for the front end of www.cheaptickets.nl project.
During the final stage of presentation, Matt presented the latest features of Kubernetes which were launched already last month (and have to be launched soon in June):
- Rolling updates The process of deploying new version does not require any downtime if you are using Kubernetes. The traffic from the older version of the app will smoothly migrate to the new version of the app gradually. In case of any error, Kubernetes can roll back to the previous version within a minute.
- Autoscaling process is another great feature which impressed me a lot. Every engineer who was ever woken up during the night or in the middle of Saturday barbeque, because of traffic growth on application servers, should love this feature of Kubernetes. In short, based on stated rules, Kubernetes is capable to scale up your application in case of rapid load growth automatically. New instances of services will be automatically instantiated by Kubernetes engine.
- Persistent storage Very new feature of Kubernetes and pain of all developers who is using container solutions. Generally, containers have to be stateless and data have to be decoupled from them. Until now developers had to invent their own solutions to create external NFS, CEPH or other data stores for their contents. Now, Kubernetes supports it from the box.
- Multizone clusters Kubernetes supports different data centers and infrastructures and can simultaneously run on several different infrastructure
- Secrets Are you worried about keeping your secure keys and passwords inside your containers? Kubernetes secrets component will handle it for you. We can think about it as a Kubernetes Password Vault.
Honestly, I am really impressed with the progress Kubernetes has made within a year. One year ago when I first played with it, Kubernetes was a very buggy product which lacked a lot of functionality and had stability issues. It is not a case anymore and lots of services are running in production on Kubernetes platform.
Mete Atamel, the Developer Advocate at Google, gave a great demo session about how to deploy your Node.JS application to the cloud in just 45 minutes. As the second part of his demo, Mete presented us a very funny application running in the GCP. The app is called Cloud Cats (https://github.com/JustinBeckwith/cloudcats). The application is using multiple services on Google Cloud. In a nutshell, it checks all the pictures at https://www.reddit.com/r/aww (all the doggies and kitties that make you say AWW), analyses them with Google vision API, separates dogs from cats and counts them, and finds the winner: who is the most favorite pet: cats or dogs (apparently most of the time, dogs win). All of the services used in the app, computing nodes, storage, communication services (pubsub and pubnub) and Vision API are provided by GCP.
Kubernetes is an essential part of the GCP. But, there are tons of useful extra features which are provided by the GCP to developers. The main goal of the GCP is to make developers’ life easier. Google wants developers to concentrate on the product and not on the process of deployment and infrastructure configuring tasks. Thus, several new developer features were presented during the day. For example, Steren Giannini, the Product Manager of Google Cloud Platform, gave a presentation of 3 new diagnostic features of the GCP:
- Traces: analytical reports, including low-level traces of requests can be easily accessed in GCP. You can investigate the single report or even compare reports of different versions of the app running together at the same time.
- Snapshots: a convenient way to debug your application in PRODUCTION. You do not need to stop your production environment with checkpoints for debugging anymore. Similar to traditional checkpoints you can set the points where you want to get the current state of the application. At the moment your application executes this line of code, the GCP makes a snapshot of your application state while keeping your production environment running.
- Instant alerting: get all alerts about errors in your app to your email instantly. GCP checks the logs and provide great statistics on the frequency of error occurrence.
At the end, Steren highlighted a super new feature of dynamic logging statements. With the help of this feature, you can easily insert logging printing statements, so called log-points, in your application without even changing the code in your repo and without redeploying of your application.
All through the day, I was looking forward to a machine learning session of an Open Source project from Google – TensorFlow. Martin Gorner, the Developer Relations at Google, gave a deep dive into TensorFlow usage. Within 45 minutes, he demoed how to train a model and improve the results of its forecasts. As mentioned above, TensorFlow is fully Open Source, thus, if you are interested in machine learning, you can get TensorFlow code, start playing with it and maybe even become a contributor (https://www.tensorflow.org/).
At the end of the conference, we were happy to receive a small present from Googlers – a Cardboard of virtual reality. The box looks cheap and simple, but it brings great experience when you start using it. I had never imagined that one day, a person can experience virtual reality just with a simple phone, and a carton box.
Overall, the GCP Next conference was a very exciting event. We dived into the world of new exciting technologies which looks like a science fiction, but created by human already today by Google.