<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Giuliano Ribeiro</title>
    <description>The latest articles on DEV Community by Giuliano Ribeiro (@giulianobr).</description>
    <link>https://dev.to/giulianobr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F278915%2F1178eac5-58eb-40cc-b7e7-7b583a9de06a.jpg</url>
      <title>DEV Community: Giuliano Ribeiro</title>
      <link>https://dev.to/giulianobr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/giulianobr"/>
    <language>en</language>
    <item>
      <title>Programmatically start and stop Google Cloud Compute Engine VM without code</title>
      <dc:creator>Giuliano Ribeiro</dc:creator>
      <pubDate>Wed, 24 Feb 2021 09:06:49 +0000</pubDate>
      <link>https://dev.to/giulianobr/start-and-stop-gce-vm-without-code-4phk</link>
      <guid>https://dev.to/giulianobr/start-and-stop-gce-vm-without-code-4phk</guid>
      <description>&lt;p&gt;Hi there, long time since my last post, but here I'm!&lt;br&gt;
Today I want to show you a simple but great tip for users/admins of GCE VMs.&lt;/p&gt;

&lt;h1&gt;
  
  
  Intro
&lt;/h1&gt;

&lt;p&gt;In the past, when we needed to periodically stop or start a VM in GCE was a pain! As we don't have an easy way to do it, we should write a Cloud Functions or include a cron job in a VM (like a central VM with all your cron jobs).&lt;br&gt;
But a few months ago, GCP added a new way to do it using the API directly in the Google Cloud Scheduler (a serverless cron service).&lt;/p&gt;

&lt;p&gt;Now, let's do it!&lt;/p&gt;

&lt;h1&gt;
  
  
  Service Account
&lt;/h1&gt;

&lt;p&gt;First things first: to configure it properly, you should have a service account. As best practice, you need to create a new service account and give the Compute Admin role. But for this tutorial, I'll show using the default Compute Engine service account. &lt;br&gt;
Go to Google Cloud Console &amp;gt; Navigation menu &amp;gt; IAM &amp;amp; Admin &amp;gt; Service Accounts&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O6WiuvkX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1btpldcdmknxc77hynvg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O6WiuvkX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1btpldcdmknxc77hynvg.png" alt="1_SA"&gt;&lt;/a&gt;&lt;br&gt;
Copy the email address associated to Compute Engine default service account. This email is always something like &lt;a href="mailto:999999999999-compute@developer.gserviceaccount.com"&gt;999999999999-compute@developer.gserviceaccount.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next!&lt;/p&gt;

&lt;h1&gt;
  
  
  Cloud Scheduler
&lt;/h1&gt;

&lt;p&gt;The Cloud Scheduler is a serverless cron-like service. It is pretty handy for this kind of job. You can setup jobs to do a variety of calls, like general HTTP calls, App Engine services calls and post to Pubsub topics.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LDcGAXpY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56xd7r032n8up54kdbsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LDcGAXpY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56xd7r032n8up54kdbsj.png" alt="2_CS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, create the jobs. Just click in the Create Job button and let's do it!&lt;/p&gt;

&lt;h1&gt;
  
  
  New job
&lt;/h1&gt;

&lt;p&gt;The create job form is simple and straight to the point.&lt;br&gt;
The important parts are the &lt;strong&gt;HTTP URL&lt;/strong&gt; and the &lt;strong&gt;Auth header&lt;/strong&gt; ones.&lt;/p&gt;

&lt;p&gt;For the HTTP URL you should fill with something like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://compute.googleapis.com/compute/v1/projects/&amp;lt;PROJECT-ID&amp;gt;/zones/&amp;lt;VM-ZONE&amp;gt;/instances/&amp;lt;VM-ID&amp;gt;/&amp;lt;start OR stop&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But first is required to have the Instance ID.&lt;/p&gt;

&lt;h4&gt;
  
  
  Get Instance ID
&lt;/h4&gt;

&lt;p&gt;Just go to Navigation menu &amp;gt; Compute Engine &amp;gt; Click in your VM to get details&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pKQaa_td--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ne3upxmsxs0xr6txlne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pKQaa_td--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ne3upxmsxs0xr6txlne.png" alt="Instance_ID"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, my URL to start would be like this:&lt;br&gt;
&lt;code&gt;https://compute.googleapis.com/compute/v1/projects/titanium-campus-305808/zones/europe-west1-d/instances/514142841644/start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now we have all information, this is the Create job form:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5HehSxT5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/so7ru9i0rzrgogm4r3is.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5HehSxT5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/so7ru9i0rzrgogm4r3is.png" alt="3_create-job"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  All Scheduler jobs
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FpNsdf26--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o3ybk0uz7vis8sq7hqga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FpNsdf26--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o3ybk0uz7vis8sq7hqga.png" alt="4_jobs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see I have 2 jobs, one to start and another to stop my Minecraft server. You can also enable or disable the jobs, so if you don't want the job to run for a specific period. Or, of course, you can setup the frequency of the job for a more complex form, as it respects the cron syntax.     &lt;/p&gt;

&lt;p&gt;So that's it, my friends, I hope it can help you in any way and as always, send me feedbacks. I'll always try to help you about GCP!&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>nocode</category>
      <category>gce</category>
      <category>cloudscheduler</category>
    </item>
    <item>
      <title>UPDATED 2023: Auto deploy AppEngine app from Gitlab</title>
      <dc:creator>Giuliano Ribeiro</dc:creator>
      <pubDate>Wed, 11 Dec 2019 19:50:19 +0000</pubDate>
      <link>https://dev.to/giulianobr/auto-deploy-on-appengine-from-gitlab-o34</link>
      <guid>https://dev.to/giulianobr/auto-deploy-on-appengine-from-gitlab-o34</guid>
      <description>&lt;p&gt;Nowadays, CI/CD is a common task during Software Development and almost all platforms enable us to do this automatically. It is not different on Gitlab.&lt;br&gt;
Today, I'll show you how to configure your Gitlab project to automatically deploy to Google Cloud App Engine.&lt;/p&gt;
&lt;h2&gt;
  
  
  Google Cloud part
&lt;/h2&gt;
&lt;h3&gt;
  
  
  First things first
&lt;/h3&gt;

&lt;p&gt;First, you need to setup your App Engine project on GCP console. It is necessary because App Engine requires you to set the region of your app.&lt;br&gt;
If you didn't do this, first you will need to setup using this cmd:&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6mjhkj0q1qzst1yl989a.png" alt="gcloud app create"&gt;Setup your App Engine app.
  


&lt;p&gt;and follow the instructions.&lt;/p&gt;
&lt;h3&gt;
  
  
  Updates
&lt;/h3&gt;

&lt;p&gt;The stesp below were made a few years ago, so some permissions were changed.&lt;br&gt;
To simplify the process, I paste here a script. Take a look, and change the appropriated information:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export SA_NAME=gitlab-sa
export GCLOUD_PROJECT=&amp;lt;YOUR_PROJECT_ID_HERE&amp;gt;
export SA_EMAIL=${SA_NAME}@${GCLOUD_PROJECT}.iam.gserviceaccount.com

gcloud services enable appengine.googleapis.com cloudbuild.googleapis.com

gcloud iam service-accounts create ${SA_NAME} --display-name 'Gitlab Service Account to deploy' --project ${GCLOUD_PROJECT}

gcloud iam service-accounts keys create ${SA_NAME}.json --iam-account=SA_EMAIL --project ${GCLOUD_PROJECT}

cat ${SA_NAME}.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the JSON content and save to include in the Gitlab CICD variables page.&lt;/p&gt;

&lt;p&gt;Now continue the process, giving to the service account some permissions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
gcloud projects add-iam-policy-binding ${GCLOUD_PROJECT} \
    --member="serviceAccount:${SA_EMAIL}" \
    --role=roles/appengine.appAdmin

gcloud projects add-iam-policy-binding ${GCLOUD_PROJECT} \
    --member="serviceAccount:${SA_EMAIL}" \
    --role=roles/storage.objectAdmin


gcloud projects add-iam-policy-binding ${GCLOUD_PROJECT} \
    --member="serviceAccount:${SA_EMAIL}" \
    --role=roles/iam.serviceAccountUser

gcloud projects add-iam-policy-binding ${GCLOUD_PROJECT} \
    --member="serviceAccount:${SA_EMAIL}" \
    --role=roles/cloudbuild.builds.builder

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Service Account and Permissions
&lt;/h3&gt;

&lt;p&gt;Jump to Gitlab Config part, if you already did the script above.&lt;/p&gt;

&lt;p&gt;&lt;del&gt;The entire process should be made without human intervention. So, to do this on GCP you'll need a Service Account.&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;~~First, create a Service Account to be used during the process: ~~&lt;a href="https://console.cloud.google.com/iam-admin/serviceaccounts/create" rel="noopener noreferrer"&gt;Service Account Create&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8u63dcqefc6gsg5lz9if.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8u63dcqefc6gsg5lz9if.png" alt="Step 1"&gt;&lt;/a&gt;&lt;br&gt;Step 1
  &lt;/p&gt;

&lt;p&gt;Step2: &lt;del&gt;&lt;strong&gt;Critical step, here you MUST give all those permissions. Without them, the automation will not work properly.&lt;/strong&gt;&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ft0vhe0as2t1oc2s1drkr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ft0vhe0as2t1oc2s1drkr.png" alt="Step 2"&gt;&lt;/a&gt;&lt;br&gt;Step 2: VERY IMPORTANT!
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fw142ooqnd8giq96j6yok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fw142ooqnd8giq96j6yok.png" alt="Step 3: Create a Key"&gt;&lt;/a&gt;&lt;br&gt;Step 3: Create a Key
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fs9ugdb3cbj5jyhq9emyb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fs9ugdb3cbj5jyhq9emyb.png" alt="Step 4: choose the JSON option."&gt;&lt;/a&gt;&lt;br&gt;Step 4: choose the JSON option!
  &lt;/p&gt;

&lt;p&gt;In the last step, you should open the file and copy the content. This content will be necessary to configure the Gitlab.&lt;/p&gt;

&lt;h3&gt;
  
  
  API Enabling
&lt;/h3&gt;

&lt;p&gt;Some APIs must be enabled before trying to run the deploy.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Enable the App Engine Admin API, here:&lt;br&gt;
&lt;a href="https://console.developers.google.com/apis/api/appengine.googleapis.com/overview" rel="noopener noreferrer"&gt;Enable App Engine Admin API&lt;/a&gt;&lt;/p&gt;


&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ftcpswczd51vxn3647h6r.png" alt="App Engine Admin API enabling"&gt;App Engine Admin API enabling

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable Cloud Builder API: &lt;a href="https://console.developers.google.com/apis/api/cloudbuild.googleapis.com/overview" rel="noopener noreferrer"&gt;Cloud Builder API Enable&lt;/a&gt;&lt;/p&gt;


&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsqlj1tsv4f1k3oi12efw.png" alt="Cloud Build API enabling"&gt;Cloud Build API enabling

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Gitlab Config
&lt;/h2&gt;

&lt;p&gt;Now you have all done on GCP, Gitlab part!&lt;br&gt;
Go to your project and configure the CI/CD options:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frp7jl6583lvmodngci0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frp7jl6583lvmodngci0s.png" alt="Gitlab CI/CD menu option"&gt;&lt;/a&gt;&lt;br&gt;CI/CD menu option
  &lt;/p&gt;

&lt;p&gt;Instead of having the content of your Service Account in a file inside your repository, a best practice is to have this as a variable. So, configure a variable, following the image:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0uk0cmzkf9gsmto27zts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0uk0cmzkf9gsmto27zts.png" alt="Configure the SERVICE_ACCOUNT_KEY variable with the JSON content downloaded in the Step 4."&gt;&lt;/a&gt;&lt;br&gt;Configure the SERVICE_ACCOUNT_KEY variable with the JSON content downloaded in the Step 4.
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Gitlab CI file descriptor
&lt;/h2&gt;

&lt;p&gt;To enable all these pieces together is required to "tell" to Gitlab: "Please my friend, run all these now". To do this, you should create a file in your repository called &lt;strong&gt;.gitlab-ci.yml&lt;/strong&gt;, this file describes what you want to do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6i483fy9w9h5sy29fq8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6i483fy9w9h5sy29fq8i.png" alt="xxxxxxxxx"&gt;&lt;/a&gt;&lt;br&gt;Basic gitlab ci descriptor.
  &lt;/p&gt;

&lt;p&gt;File content available here.&lt;br&gt;
&lt;a href="https://gitlab.com/giulianobr/simple-go-app/blob/235de13e310d7614f9b8cb2dab0f804c6b82a041/.gitlab-ci.yml" rel="noopener noreferrer"&gt;https://gitlab.com/giulianobr/simple-go-app/blob/235de13e310d7614f9b8cb2dab0f804c6b82a041/.gitlab-ci.yml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CI process runs inside the container platform in Gitlab. At the glance, it seems like a Dockerfile, as you should define and base image where your deploy will run.&lt;br&gt;
In this case, I'm using Google's base image that contains the Google Cloud SDK already installed.&lt;br&gt;
To understand more about all configs available on Gitlab CI, take a &lt;a href="https://gitlab.com/help/ci/examples/README.md" rel="noopener noreferrer"&gt;look here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This post aims to help you to deploy an app to App Engine Standard. As my example is a Golang app in the 2nd gen runtime, it is a bit easier. To deploy a Java 8 app is a little bit different. If you want any help to setup your Java 8 app, ask me in the comments, I also have an example for this scenario.&lt;/p&gt;

&lt;p&gt;I hope it helps you, people!&lt;br&gt;
See you soon.&lt;/p&gt;

&lt;p&gt;You can find this project in &lt;a href="https://gitlab.com/giulianobr/simple-go-app" rel="noopener noreferrer"&gt;my Gitlab project&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>appengine</category>
      <category>googlecloud</category>
      <category>gitlab</category>
      <category>cicd</category>
    </item>
    <item>
      <title>Cloud Data Fusion, a game-changer for GCP</title>
      <dc:creator>Giuliano Ribeiro</dc:creator>
      <pubDate>Thu, 05 Dec 2019 19:41:22 +0000</pubDate>
      <link>https://dev.to/giulianobr/cloud-data-fusion-a-game-changer-for-gcp-2o4d</link>
      <guid>https://dev.to/giulianobr/cloud-data-fusion-a-game-changer-for-gcp-2o4d</guid>
      <description>&lt;p&gt;Continuing the Big Data topic, I want to share with you this post about Google Cloud Data Fusion. &lt;/p&gt;

&lt;h1&gt;
  
  
  The foundation
&lt;/h1&gt;

&lt;p&gt;Cloud Data Fusion is based on Cask™ Data Application Platform (CDAP).&lt;br&gt;
CDAP was created by a company named Cask and this company was bought by Google last year. CDAP was incorporated into Google Cloud and named as Google Cloud Data Fusion.&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsuo2glzw21i4fca5y5di.png" alt="Pipeline on CDAP"&gt;CDAP Pipeline page
  

&lt;h1&gt;
  
  
  Data Fusion
&lt;/h1&gt;

&lt;p&gt;Data Fusion is a fully managed CDAP with steroids 🧬.&lt;/p&gt;

&lt;p&gt;From the Google Cloud page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cloud Data Fusion is a fully managed, cloud-native data integration service that helps users efficiently build and manage ETL/ELT data pipelines. With a graphical interface and a broad open-source library of preconfigured connectors and transformations, Cloud Data Fusion shifts an organization’s focus away from code and integration to insights and action.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On important info about Data Fusion is it rely on Cloud DataProc(Spark), handling the cluster (create and delete) for you. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The game-changer of Data Fusion is the amazing graphic interface providing for the user an easy to use way, to create from a simple transformation pipeline to the complex ones. The best: without a line of code.&lt;/strong&gt;&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fk9nr46bygjdxj5ttmkd8.png" alt="Pipeline on CDAP"&gt;The main page of Data Fusion
  


&lt;p&gt;This post will detail the first 2 options: &lt;strong&gt;Wrangler&lt;/strong&gt; &amp;amp; &lt;strong&gt;Integrate&lt;/strong&gt;&lt;br&gt;
At the end of this post, you can watch a video tutorial where I show a step-by-step using Data Fusion.&lt;/p&gt;
&lt;h2&gt;
  
  
  Wrangler
&lt;/h2&gt;

&lt;p&gt;Wrangler is the center part to prepare your raw data. You can upload files or connect to a variety of external sources like databases, Kafka, S3, Cloud Storage, BigQuery and Spanner.&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fejy4n88vsw8q7p29qcsh.png" alt="Choose you source file or something else"&gt;Choose you source file or something else
  


&lt;p&gt;Right after you choose your source, you are redirected to the parsing mode.&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5nkhuh8vaupm8qi0yvis.png" alt="Parse the CSV file"&gt;Parse the CSV file
  


&lt;p&gt;As you can see at the top, there's a tab called insights. There you can see some useful graphs about your data:&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8mhcnv8vqhaw6d3k1x16.png" alt="Insights tab"&gt;Insights about your data!
  

&lt;h2&gt;
  
  
  Studio
&lt;/h2&gt;

&lt;p&gt;On the Studio, you have all the great tools to create your data pipeline. The source, the transformation, and the sink. Each one of them with a diversity of choices. Take your tool!&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fz9wr6icsqz7p8tlkfpwd.png" alt="Studio page"&gt;Studio page to design your pipeline
  


&lt;p&gt;The main page of Studio, on the left you have the Source, Transform, Analytics, Sink, "Conditions and Actions" and "Error Handlers And Alerts". The gray area where you design your pipeline.&lt;/p&gt;

&lt;p&gt;A simple but complete pipeline:&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6x0h64wmsar3hpd7r773.png" alt="Complete Pipeline"&gt;Complete pipeline, ingestion from GCS -&amp;gt; Joiner with CloudSQL -&amp;gt; sink to BigQuery
  


&lt;p&gt;All available tools in the Studio:&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiyqsapbksb11sy5sq99u.png" alt="Tools in the Studio"&gt;All available tools on Studio.
  


&lt;p&gt;You can also install more sources and sinks, in the Hub:&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbulpeuatcyhw3lvieich.png" alt="HUB"&gt;The HUB
  

&lt;h2&gt;
  
  
  Pipeline
&lt;/h2&gt;

&lt;p&gt;After design your pipeline on the Studio, you need to deploy it. Just click the "Deploy" button, then you can see your pipeline on the next page. On this page, you'll be able to run the job, watch the logs, configure Schedule and also see the Summary of executions.&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fllh4gthznadctrg6z1ly.png" alt="Pipeline ready to work"&gt;You pipeline deployed, just waiting to work!
  


&lt;p&gt;At the top in the center, click on "Summary" to check some facts about your jobs.&lt;/p&gt;


  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxeg7blmevh7y4oitt02h.png" alt="Summary"&gt;Summary about your executions.
  

&lt;h2&gt;
  
  
  Step-by-step
&lt;/h2&gt;

&lt;p&gt;This step-by-step was recorded and edited by me(sorry any issue). &lt;br&gt;
You'll be able to see a complete design and execution of a pipeline. The steps of this pipeline are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ingestion a CSV&lt;/li&gt;
&lt;li&gt;Parse the CSV&lt;/li&gt;
&lt;li&gt;Prepare some columns of the CSV&lt;/li&gt;
&lt;li&gt;Use the Join Transformation tool&lt;/li&gt;
&lt;li&gt;Connect to a PostgreSQL(CloudSQL) instance&lt;/li&gt;
&lt;li&gt;Get information about the States of Brazil&lt;/li&gt;
&lt;li&gt;Join it with the correspondent column of the CSV&lt;/li&gt;
&lt;li&gt;Output the result in a new table on BigQuery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/CSYpSY_-UtY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;As you can see, Data Fusion is an amazing tool for data pipelines. Powerful because it can handle as much data you have, taking the advantage of Google Cloud features, and impressively easy to design the workflow. Another great feature is the possibility to create your connector, as it is based on CDAP, you can develop your connector and deploy on HUB.&lt;br&gt;
Data Fusion is GA since last week and has a lot of big customers already using. It is just the beginning of this incredible tool.&lt;/p&gt;

&lt;p&gt;As usual, please share this post and consider giving me feedback!&lt;/p&gt;

&lt;p&gt;Thank you so much!&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>gcp</category>
      <category>datafusion</category>
      <category>bigdata</category>
    </item>
    <item>
      <title>App Engine and WebApp with Golang</title>
      <dc:creator>Giuliano Ribeiro</dc:creator>
      <pubDate>Mon, 02 Dec 2019 12:29:22 +0000</pubDate>
      <link>https://dev.to/giulianobr/app-engine-and-web-app-with-golang-2ilh</link>
      <guid>https://dev.to/giulianobr/app-engine-and-web-app-with-golang-2ilh</guid>
      <description>&lt;p&gt;Now is time to App Engine! My favorite GCP's service.&lt;/p&gt;

&lt;h1&gt;
  
  
  Intro
&lt;/h1&gt;

&lt;p&gt;App Engine is the oldest service on GCP. It was born before GCP even exists. It's from 2007 and started as an internal Platform created to provide an easy and scalable way to Googlers deploy and serve their projects.&lt;/p&gt;

&lt;p&gt;App Engine is a Platform as a Service product where you can deploy your app written in some runtimes, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;PHP&lt;/li&gt;
&lt;li&gt;Golang&lt;/li&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;Node&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before you hear about containers, App Engine already has been using this concept since 2007! It's also true about serverless concept, as you don't need to take care of the underlining infrastructure. You only need to care about your code and the App Engine descriptor file (where you include the information about your necessities).&lt;/p&gt;

&lt;h1&gt;
  
  
  Versions
&lt;/h1&gt;

&lt;p&gt;App Engine offers to you 2 "flavors", the Standard Environment, and the Flexible environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standard environment
&lt;/h2&gt;

&lt;p&gt;The Standard env is a cloud-native option, you don't need to care about the infra and they have a really fast spin-up engine to create the instances for your traffic in manner of milliseconds. &lt;br&gt;
But in some old runtimes (Python 2.7, Java 8) you may have some issues with some frameworks as the behavior is not the same as you are used. But it's going away (finally!) with the new runtimes (Java 11, Python 3.7 and Go 1.12+), as they are Gvisor-based and the behavior is the same as you are used to.&lt;br&gt;
On Standard env, you pay only for the usage, and its scales to zero. Which means, when there's no traffic, your app "sleep" and you don't pay :) When the traffic come, App Engine spinup your app as fast as possible. In Golang, for example, it takes no more then 1s to "wake up".&lt;/p&gt;
&lt;h2&gt;
  
  
  Flexible environment
&lt;/h2&gt;

&lt;p&gt;Although the Flexible env is a bit different because is a container-based environment, and relays on Compute Engine VMs. You can use any kind of runtime to run, the important point is: your app should respond in the 8080 port. So Google doesn't care about your runtime but takes care of scalability based on container usage(Memory and CPU).&lt;br&gt;
As this flavor is based on Compute Engine, you should take care about the sizing of theses VMs.&lt;/p&gt;

&lt;p&gt;More about App Engine, take a look at the official page: &lt;a href="https://cloud.google.com/appengine/" rel="noopener noreferrer"&gt;Google Cloud App Engine&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IMHO, the Standard is the best option! You have so many great services and features than the Flex.&lt;/strong&gt; And, of course, the scalability in an easy way (if you need it).&lt;/p&gt;
&lt;h1&gt;
  
  
  Free tier
&lt;/h1&gt;

&lt;p&gt;A nice "feature" we have on App Engine is the &lt;strong&gt;free tier&lt;/strong&gt; (only for Standard Env). It means you can run your app paying nothing! :)&lt;/p&gt;

&lt;p&gt;It is not a special thing on App Engine, you can use some other services on GCP for free too, check this out: &lt;a href="https://cloud.google.com/free/" rel="noopener noreferrer"&gt;GCP Free tier&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For App Engine you can use those resources:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkuphajn6ahavakaugg48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkuphajn6ahavakaugg48.png" alt="App Engine free tier features"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Web App
&lt;/h1&gt;

&lt;p&gt;Deploying your app on App Engine you get a URL with https for FREE. This URL is based on App Engine domain, so you are going to have something like this: &lt;a href="https://YOUR-GCP-PROJECT-ID.appspot.com" rel="noopener noreferrer"&gt;https://YOUR-GCP-PROJECT-ID.appspot.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this post, I choose the Golang runtime, even I'm a Java dev for a long time, in my last years I've been working with Golang instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fcizcqsm5xw3pt46ie3i2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fcizcqsm5xw3pt46ie3i2.png" alt="Simple Go App"&gt;&lt;/a&gt;&lt;br&gt;
As you can see I'm using the web framework Gin-Gonic.&lt;/p&gt;

&lt;p&gt;The unique difference between an ordinary Go web app and this one for App Engine is the file app.yaml. This is the App Engine descriptor, where you need to inform you runtime, and some other options:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F51px54qknebyu51f8t4a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F51px54qknebyu51f8t4a.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Check this page out, for more available options: &lt;a href="https://cloud.google.com/appengine/docs/standard/go/config/appref" rel="noopener noreferrer"&gt;appm.yaml Configurations&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After doing what you want, you only need to deploy your app using the &lt;a href="https://cloud.google.com/sdk/" rel="noopener noreferrer"&gt;Google Cloud SDK&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
gcloud app deploy .

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdbbedk7xh3skrij0wo71.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdbbedk7xh3skrij0wo71.png" alt="Deploy the app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's done, your app is deployed and you can access by the URL provided in the end of the process.&lt;/p&gt;

&lt;p&gt;You can have all this Golang code on my Github:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/giulianobr" rel="noopener noreferrer"&gt;
        giulianobr
      &lt;/a&gt; / &lt;a href="https://github.com/giulianobr/simple-go-app" rel="noopener noreferrer"&gt;
        simple-go-app
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A simple Go app to serve a static site
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;simple-go-app&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;A simple Go app to serve a static site&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Run the app&lt;/h1&gt;

&lt;/div&gt;

&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;go run main.go
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;To deploy&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;Install and setup your Google Cloud SDK.&lt;/p&gt;

&lt;p&gt;Run:&lt;/p&gt;

&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;gcloud app deploy .
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/giulianobr/simple-go-app" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I hope this post helps you understand, at least, a bit of App Engine and how to use these wonderful services provided by GCP.&lt;br&gt;
As a Platform as a Service, you have the power to focus on your code/app and leave the issues of infrastructure management to Google's team. A really good way to do MVPs, PoCs and to test an idea without the need to create an infrastructure for that.&lt;/p&gt;

&lt;p&gt;As usual, please, give feedbacks! :) &lt;/p&gt;

</description>
      <category>appengine</category>
      <category>gcp</category>
      <category>go</category>
      <category>googlecloud</category>
    </item>
    <item>
      <title>Data Lake on Google Cloud Platform</title>
      <dc:creator>Giuliano Ribeiro</dc:creator>
      <pubDate>Mon, 25 Nov 2019 09:56:44 +0000</pubDate>
      <link>https://dev.to/giulianobr/data-lake-on-google-cloud-platform-1jf2</link>
      <guid>https://dev.to/giulianobr/data-lake-on-google-cloud-platform-1jf2</guid>
      <description>&lt;h1&gt;
  
  
  Data Lake on Google Cloud Platform
&lt;/h1&gt;

&lt;p&gt;First of all, thank you for reading my post.&lt;br&gt;
Second, it's a simple overview about Data Lake on GCP. &lt;/p&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;Google, as you know, was the last of the big players to enter in the cloud 'war'. But they did it in a very different way, they try to do this focusing on managed services and also focus on Big Data (and Machine Learning) things.&lt;br&gt;
For Big Data, they are good (they ARE really good). With so many years improving their internal workloads for such a huge amount of data, the services provided are high in class.&lt;/p&gt;

&lt;p&gt;Words are cheap, show me the "pic" :)&lt;/p&gt;

&lt;p&gt;A complete Data Lake solution diagram:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdrexoinec8ck4cq8ixjg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdrexoinec8ck4cq8ixjg.png" alt="DataLakeOnGCPDiagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The truth is: the main component on the Data Lake is &lt;strong&gt;Google Cloud Storage&lt;/strong&gt;. The GCS, for short, is the place where you can store all your data. Even the other products in some way also use the GCS to store things. GCS is a powerful service in GCP, with many configs and ways to use it. In a Data Lake, we use it for unstructured data. For structured data, we commonly use CloudSQL(up to 10Tb), Spanner(Global Relational Database), BigTable(Low-latency-NoSQL Database) and BigQuery(Datawarehouse).&lt;br&gt;
For each type of data, we can use one service/product available in GCP.&lt;/p&gt;

&lt;p&gt;But to be honest with you, for structured data, BigQuery is the king. You can store and process all sizes of data you have in a manner of seconds. &lt;br&gt;
In BigQuery you can import data in batch or use the Streaming API. Streaming API allows you to send up to 100,000 requests per second. &lt;/p&gt;

&lt;p&gt;Of course, Data Lake is a huge topic to discuss, but here I'm trying to show you in a pic and in a few words, how it is possible on GCP. You may notice, but 2 of the most important service for data lake, provided by Google Cloud, is &lt;strong&gt;Cloud Storage and BigQuery&lt;/strong&gt;. But they are not alone in the field, below I wrote down the other "friends" which you can use to create a complete environment for your big data on GCP.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ingestion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;gsutil&lt;/li&gt;
&lt;li&gt;Cloud Transfer Service&lt;/li&gt;
&lt;li&gt;BigQuery API&lt;/li&gt;
&lt;li&gt;Cloud Pub/Sub&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Store
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cloud Storage&lt;/li&gt;
&lt;li&gt;Bigtable&lt;/li&gt;
&lt;li&gt;BigQuery&lt;/li&gt;
&lt;li&gt;Spanner&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Process
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DataPrep&lt;/li&gt;
&lt;li&gt;Dataflow&lt;/li&gt;
&lt;li&gt;Dataproc&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Analyse
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;BigQuery&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reporting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Data Studio&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;As I told you before, it is a simple and direct-to-the-point post :)&lt;/p&gt;

&lt;p&gt;Data Lake is only one part of the huge topic "Big Data", but it is the starting point. As a fundamental part of this, I'll try to bring more information about it, writing one more post about it. I also will bring more about each one of those services, creating here on dev.to a series of posts to giving me a chance to write the things I know, and bring to all the community information about this topic.&lt;/p&gt;

&lt;p&gt;As the first post, I'm absolutely pushing hard (as I'm not a writing person, even more, I'm not an English native speaking/writing).  Please, give feedback, in all ways possible. I've been working hard to change myself to create the habit to write. But without feedback, I feel like to write to no one. &lt;br&gt;
&lt;strong&gt;I really appreciate your time, thank you so much!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>datalakeongcp</category>
      <category>gcp</category>
      <category>datalake</category>
      <category>googlecloudplatform</category>
    </item>
  </channel>
</rss>
