Cloud Conf 2017
Last week I have been at the great yearly appointment here in Turin: Cloud Conf '17. This event, now at its 5th edition, always gives an overview of on-going projects and state-of-the-art technologies. But never like this year, the organizers Gabriele Mittica (@GabrieleMittica) and Walter Dal Mut (@walterdalmut), with their company Corley Cloud (@CorleyCloud) succeeded in mixing such a variety of topics for talks, that really allowed us to touch where technology is and where it is going.
From Microservices to Serverless
For me it was very interesting to comprehend that few years ago we started massively splitting architecture of backend applications from legacy servers into small pieces of microservices communicating via API. Nowadays the same it's happening with the applications themselves; the serverless paradigm is changing the overview of application development in the cloud environment. You now will split an application into a large number of functions, coping together to achieve a complete running project, that's serverless.
I have never understood completely the point, but digging in deep made me realize that this paradigm it's the new school of writing backend services. This time you will only have to worry about YOUR functions, not about the configuration, nor about the architecture, only about the core of your application.
What's changing with this kind of programming is that you will end up with a number of functions triggered by events. Moreover in this event-driven scenario you'll probably would create functions that are able to consume an infinite number of request and to produce the same number of output. So the new style of programming will be event-driven and will produce an architecture with a pipeline composed of a given number of functions that are triggered by events in a zero-infrastructure environment, you will only care about FUNCTIONS, that's finally Serverless.
I admit that even if really fascinating, these talks advertise Serverless as the key for the future of Cloud, but I am still a little bit sceptic. I think we are still at an early stage of this path, I am yet confused of what will happen when a huge project would be composed of hundreds of functions and how will I be able to manage them. But I think that basically we are pioneers, more has to come in the near future.
Amazon Aws vs. Google Cloud Platform
So what's going on is that, whereas Docker is still the leader in the container field, Amazon AWS is having an hard time to keep its leadership in Cloud Infrastructure area. Indeed Google is taking part to the game, and now their offer is becoming really ccomplete, competitive and similar to Amazon's one. Although I think that for many of the Google Cloud Platform products they've just created AWS copycats branded and signed by Google.
In particular the fight is becoming really thought in the field of Machine Learning and Artificial Intelligence, where both are investing and deploying impressive services.
Docker is keeping on providing security as first-class feature of its products, besides always using certificates and TLS in Swarm, now with “docker secret”, you can also deal with secrets created and shared in your cluster.
A company like Twillio has given an overview over WebHooks (Server to Client Communication), and showed a great tool like ngrok, a project allowing “to expose a local server behind a NAT or firewall to the internet”, that's a really useful tool for development and demo purposes.
Amazon highlighted all it's effort in ServerLess and ML + AI. Concerning Serverless, their AWS Lambda still looks like the state-of-the-art, moreover they provided a proposal to create a text-file based format for serverless-based application description, called Serverless Application Model.
However it's impressive how far they are going with ML and AI. New AWS products has been introduced, like:
- Rekognition: facial-detection and facial-recognition, based on deep-learning analysis
- Polly: text-to-speech
- Lex: creating interacting bot, based on AWS Alexa
The demo proposed for these services was quite impressive. Starting from images, selfies taken in real time at the conference, a bot voice explained what it can be seen in the photo. For example, for the picture of the speaker himself it said: “it's a men, middle age, he looks happy”; whereas in the case of a picture of speaker's computer: “it's an electronic device, a computer, ...”.
Google showed how something very similar can be achieved employing Google Cloud Platform. In particular they are taking the lead in the field of Machine Learning with their Open Source Framework called Tensor Flow. Google also allows to implement Serveless functions using what they call a FaaS (Function as a Service), Google Functions.
Besides ML, they are keeping on working hard on BigData, employing their BigTable and BigQuery services, and allowing to deal easily with products as Apache Spark or Hbase.
The purpose of Google is to enable a new way of service deployment using a PaaS without worrying of the IaaS below, and creating a DataFlow Pipeline, something similar to AWS Cloud Formation, but where each element can be either a Google Cloud Platform product/service or any other software/services providing the same features (e.g. Google Pub/Sub vs. RabbitMQ). Thus allowing to choose whether to rely on Google Cloud Platform or on any other implementation.
Finally it's time to deal with Machine Learning, Artificial Intelligence and eventually becoming Serverless!