Day 5: Microservices with Kubernates and Google CloudsteemCreated with Sketch.

in microservice •  7 years ago  (edited)

productivity.png

Are you building a new web application? Start with a microservice ready architecture since the start using Docker and Kubernates on top of Google Cloud.

People will yell at you "No don't do that!", read this article and you'll know what to yell back.

Microservice and SOA

In case you were new to this argument I recommend first to read all the amazing microservices article by Martin Fowler, but please keep your mind open because some of his suggestion may be slightly outdated.

Docker

Docker is a software container platform, think of a service dependency manager, where each service runs inside a container which is nothing more than a lightweight virtual machine. https://www.docker.com/what-docker

Thanks to Docker today is easy to prepare a service with all its dependency, version it and run it seamlessly in a local environment or in a production environment with a simple command (or using Continuous Integration).

This video explain how easy it is to setup a Docker container:

Kubernates

Kubernetes is a container orchestration tool created by Google. Kubernates organize the services into logical containers called deployments and pods. Think of the deployments as a carbon copy, and the pods as the copies that contain the service. Kubernates can easily scale up and down horizontally, spinning up or down the pods, automatically or manually. Every time a pod dies, it spins automatically a new one, so it is self-healing. It has an internal service discovery and load balance system, so you don't have to worry about this. Kubernates uses blue-green deployment, so there's no downtime when deploying or rolling back. It also has a secret and configuration management.

All the tools that Kubernates offer, once you had to build it yourself, using Consul, Vault, Asgard and other solution that required expert DevOps to be configured and maintained. To create a microservice architecture with Kubernates you don't need a DevOps, you only need a software engineer, a good learning time, and then deploying and maintaining become a breeze.

You can check "The Illustrated Children's Guide to Kubernetes" video, to have a quick grasp:

But then you must RTFM (read the fucking manual):
https://kubernetes.io/

Google Cloud

Google Cloud is a lot easier to configure and to maintain than Amazon Web Services. It doesn't require a DevOps to run, and it scales like a breeze and is Kubernates friendly thanks to Container Engine and Compute Engine.

Google Cloud also offers many amazing services, such as PubSub, Storage, and Functions that will make you forget about SQS, S3, and Lambda. Being inside the Google Cloud is fantastic, also because you'll have easy access to other services, such as image recognition, natural language, and many more AI services.

All Google documentation is amazing, very intuitive and never overwhelming. The only con I found, if I have to be honest, is that because Google is developing GPC as we speak, relatively often there are bugs, but luckily they're also very quick and responsive to fix them.

Google Firebase

Another fantastic reason to be inside Google Cloud is Firebase, which makes super easy to create the backend for an iPhone/Android app. Google Endpoints to manage API endpoints, which implement authentication with OAuth and automatically create beautiful analytics of the traffic.

Conclusion

When someone yells at you: "Don't go Microservice." simply yell back "F#%$ you!" and point them to this article. Thanks to Kubernates and Google Cloud, creating an API with a microservice architecture is super easy to build, secure and scalable, and it doesn't require a team of DevOps, one engineer can easily take care of it.

Thanks to this new tools, I strongly believe that in the next 5 years we'll see many new startups with very small teams able to grow from zero to Snapchat in no time.

Federico Ulfo

![Screen Shot 2017-06-22 at 2.54.17 PM.png](Screen Shot 2017-06-22 at 2.54.17 PM.png Creative Software engineer

https://twitter.com/feulf
https://linkedin.com/in/federicoulfo

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @rainelemental! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published
You got a First Reply

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Interesting thoughts