To keep it simple let me tell you how we are scaling up a financial digital operation with less coding using Google Cloud Platform and how we have been deploying our services over Google Kubernetes in a fast, secure and easy way with no impact on Business.
On a digital transformation era it is too hard to work with huge module applications cores, because this kind of architecture is based on hundreds of thousands lines of code and your deployment process becomes inefficient, because you need to worry about the impact of these changes across your whole system layer. That’s why the Microservices is the best option in scenarios like that. I like to call this scenario as THINK BIG! IMPLEMENT SMALL!
I would like to show you guys (1) How we have created this architecture, (2) How we are using Google Kubernetes as a service, (3) How we have built and designed our MicroServices and (4) How does Business scale up.
1) How we have created this architecture?
To get there you should first prepare your environment to work with a brand new architecture, such as IaaS, flexible application layer (APIs) and a DevOps process in place. I will not go deeper on this matter because you can find more information about this on my last article right here: From Sybase to Google Cloud SQL.
2) How we are using Google Kubernetes as a service?
Straight to the point. As soon as we had the code done and ready to go, we started a new process, which is deployment. I can tell you this process is where the magic happens and you never ever need to worry about infrastructure, performance and availability. Why not? Because Google Kubernetes will take care of and orchestrates all the process for your IT process. Let me go deep on that:
SECURITY – Google Kubernetes works with containers and images. What I mean about that? Every time you deploy a new code on that environment all the containers will be deployed again with the most recent version about operational system, security patches and of course your code.
BUSINESS CONTINUE – Google Kubernetes has the capability on it’s core to manage your code versioning in a separate layer so does not matter if you are doing a deployment in the middle of the day, because the Kubernetes will keep both environments up and running in parallel (the current one and the new one), until all the requests are moved to the new environment. After getting this process done, Kubernetes will kill the old containers and keep all your users on the new environment that you have deployed.
Keep in mind that Google keeps all the versions, so if you need to roll back you can do it anytime without outage. Also you can set your deployment process as an A/B test, so just a couple of your customers will be moved to the new containers with your new code. Therefore, whenever you feel comfortable with your new version you can move the rest of customers.
AVAILABILITY – This environment runs a bunch of containers in a different physical locations across multiple Kubernetes clusters pools, so if you ask me how we handle with outage I can answer you this: it has been a long time that we do not know what it is a service outage and when was the last time we have discussed about IT Business Continued Plan.
Also I can tell you the same think that Google has been saying to us for years:
You are using the same kitchen that Google has been using for years for Gmail, YouTube and Google Search. That’s it!
AUTOMATION – All the Deployment process and Software versioning pattern are automated, so we are using Kubernetes as a Job Cron as well. In this way, you can schedule all your process as soon as your DevOps is done and ready to go live.
3) How we have built and designed our Microservices?
Less coding and less impact
When you have specific Microservices in charge of each one of your Business process, you will focus only on that specific part of your code. In other words, we are able to coding just a couple of lines of codes and the chances to messed up other process will be almost zero.
Faster deployment – Time to market
Google Kubernetes allow us to update our applications anytime with no outage because all the Microservices are hosted and managed in a containerized architecture.
We can work with deployments as an automated process using Google Kubernetes Jobs/Crons.
This little big guy is helping us to manage all the containers and what is connected to what. As soon as you are getting bigger with your services, you will definitely need Google Istio to help you to keep you containers mapping up to date and monitored.
This is very important because every time you start a new deployment process Istio will tell you how many containers will be impacted, to where and how many services your code will be deployed and how your Google Kubernetes cluster needs to be boosted regarding performance.
4) How does Business scale up?
It is simple: Google Kubernetes has on your own core the Orchestration Container. In other words, it has machine learning mechanism to understand your environment performance and a capability to scale up or down your environment as long as your business demands change. So there is no need to worry or spend time in IT capacity plans, Google will handle it for you.
For the last but not least. Did you know you can do all of that I mentioned in this article in your on-premise Datacenter. Yes you can! Google Kubernetes Service can be deployed on your own datacenter and you can enjoy all the benefits inside your Home.
This article was published originally on Marcelo’s LinkedIn.