Create an API Gateway that interacts with your Cloud Run backend services.

Disclaimer: Opinions expressed are solely my own.


In this article, you will see how the API Gateway works, understand all its components, and how to create your first deployment integrated with a Cloud Run service.


You can check this repo how you can create the API Gateway and deploy a Cloud Run hello world instance using Terraform.

Why should I use an API Gateway?

Here you can find a few reasons why you should use it:


In this article, I will show you how you can ssh into your Compute Engine machine without public IP, only using the internal IP.

Before we start…

Before we start I will add a few important concepts of how we can achieve that.

Today more and more companies are using extra layers of VPNs, MFA, security process, firewalls, routers, etc… in order to authenticate who needs access to a server or to an application.

Google created the BeyondCorp implementation within GCP that contains several security products, and the one we will use here is Identity-Aware Proxy (IAP).


BeyondCorp is Google’s implementation of the…

Create a world-class CI/CD where you can build, test, and deploy your cloud run application right from GitHub.


In this article, we will use GitHub Actions as a CI/CD pipeline in order to deploy automatically our Cloud Run service when you push new code to master.


In this blog post, we created our simple java spring boot application on GitHub and set up the GitHub Actions to deploy it to Cloud Run.

You can see a working repository here.



Cloud Run

Write code your way by deploying any container…

::: Update 11/2020 :::

Artifact Registry is now GA!

Today when you need to store your Docker images on GCP you use the GCR (Google Container Registry). This is pretty handy as you will use a fully integrated service within the GCP ecosystem, that is already easily managed by GCP IAM.

Usually, Doker images are not the only artifacts you need to keep stored though, and it’s quite common the need to use Apps like Jfrog Artifactory or Sonatype Nexus to manage artifacts such as jar files, npm, etc. …

It is well known that Infrastructure as code help you to have a more reliable and reproducible environment.

Terraform has several providers to interact with infrastructure, and one of them is the Kubernetes provider.


There are generally two ways to configure the Kubernetes provider.

By default, Terraform will try to load the credentials~/.kube/config , so you will not need to set any other information in the provider:

provider "kubernetes" {

Depending on whether you have the current context set this may require config_context_auth_info and/or config_context_cluster and/or config_context as:

provider "kubernetes" {
config_context_auth_info = "ops"
config_context_cluster = "mycluster"


If you have experience working with AWS and you stumble across GCP bare in mind they follow a really different approach regarding your project structure.

Usually, an AWS enterprise customer will have a root account, and separate accounts for your environments, .i.e Dev, Staging, pre-prod, prod.

With GCP, those concepts are a bit different. Firstly you need to create an Organization based in your domain. You can find more information about how to do it here.

Within the organization, you will be able to create folders and Projects. Folders will help you to isolate requirements for different departments and teams…

I know there are a lot of blogs around with information about the Google Cloud Architect certification but is always good to have an up to date details, as I just passed on this exam 07/2019, yay. Also, I would like to share with you how was my study process to pass, and how to split the content.

It was a long journey but was really good to see the expected PASS word after weeks of strong dedication.

I mostly studied reading the documentation, using Qwiklabs and Whizlabs. IMO Whizlabs is a good start as will show you what is…

Install the command-line tool kubectl is the first thing we do when we start working with Kubernetes. Also, as I’m a little lazy I start to set up some aliases on my terminal to make my life easier.

Ahmet Alp Balkan, a software engineer from Google created this script whereas you can find hundreds of aliases

Felipe Martinez

Brazilian Software Engineer living in London. Java addicted. Clean Code and Software craftsmanship Enthusiast. Cloud.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store