GCP: Managing IAM Access Control Across Projects -- The Simpler Version

Posted on Mon 25 February 2019 in gcp • Tagged with gcp, authorization, iamLeave a comment

GCP resources are organized into projects -- all resource IDs and IAM principles are grouped under a project ID. This means that by default roles assigned to a principle (e.g. a user or service account) are scoped only to project resources. This can be tricky if say your images are in one project's storage bucket and your app is running in another

If you want to provide a service principle in one project access to resources in another , the approach is not obvious, nor is it well documented.

Below we'll talk about the most direct way, which works for projects …

Continue reading

Publish Free Static Websites With Firebase, Hugo and Google Cloud Builder -- Part 1

Posted on Fri 15 February 2019 in hosting • Tagged with gcp, firebase, hugo, google-cloud-builder, tutorialLeave a comment

Static site frameworks like Hugo allow you to manage content with Markdown and publish content via scalable hosting platforms like Firebase hosting. Uptime, performance and operations cost per user can't be beat -- you can easily hit millions of pageviews for less than $10/ month

In this tutorial we'll make a production-ready personal website site, that supports multiple collaborators, built using Hugo. Moreover, we'll publish with the free-to-start Firebase Hosting CDN, and build automatically using Google Cloud Builder.

Prerequisites

  1. A Google Cloud Platform Account & Project -- You can use the free tier
  2. A Firebase project -- also free
  3. Access to the Google Cloud …
Continue reading

Writing Custom Metrics to Stackdriver in Golang

Posted on Wed 13 February 2019 in golang • Tagged with gcp, stackdriver, monitoring, tutorialLeave a comment

Instrumentation is a critical part of any application. Along with system counters like cpu, heap, free disk, etc-- it's important to create application-level metrics to make sure health is measured closer to your customer's experience.

Example metrics could be user-registration, password-change, profile-change, etc. If you see a major spike or dip in these metrics, a wider problem could be indicated.

For this example a custom metric was needed, and no infrastructure was in place for harvesting it (e.g. collectd). Golang is handy for creating an easy-to-install daemon which performs the measurement and periodically harvests the data into stackdriver.

The …

Continue reading