6

Five part article series introducing Go on Oracle Cloud Infrastructure

 1 year ago
source link: https://medium.com/oracledevs/five-part-article-series-introducing-go-on-oci-a2d3d8036a02
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Five part article series introducing Go on Oracle Cloud Infrastructure

Go — sometimes Golang because internet searching for just “go” is quite impossible — is a popular programming language. It was initially launched in 2012 and as been gaining popularity ever since. It has embraced many of the good things from other languages including Java and improved on a number of the existing weaknesses — such as concurrent programming at scale, dependency management, small and simple runtime, simplicity and readability. A Go application’s runtime incarnation is a single binary native executable. Its goroutine and channels make concurrent programming a breeze. Many popular open source projects — including Kubernetes, Terraform, Docker, Hugo, InfluxDB — have been implemented using Go. Go is a common choice for the implementation of serverless functions — thanks to it simple, compact, low footprint and fast starting runtime.

0*UiWayTjrXWt8AAnH.png

The articles discuss Go on OCI and Go talking to OCI — many different services are covered

Go is well supported on and with Oracle Cloud Infrastructure (OCI). Programs written in Go can be built and run on OCI and can easily interact with OCI services and resources. OCI offers an SDK for Go — allowing interaction with OCI service to be programmed natively.

I have collaborated with the Oracle Developer Relations team and several Oracle product managers to compile a series of articles about Go and Oracle Cloud Infrastructure (OCI). This series discusses how Go applications can be created and run on OCI — in Compute Instances (VMs), containerized on Kubernetes, or as serverless Functions. The articles show how to automate the build and deployment of these Go applications using OCI DevOps. An important topic is how to use OCI services from within Go applications — both those running on OCI as well as Go code running elsewhere. Some of the OCI services discussed are Object Storage, Streaming, Key Vault and Autonomous Database.

This next figure shows the full breadth of the series. All services discussed in the five installments are shown as well as the Go artifacts that are developed in the articles that interact with these services. The combined scope of the articles is quite broad.

0*6gnPtJF2Ua_Y3MgW.png

The five installments and their scopes — the artifacts created, the services involved and the interactions between them all

Although Go is the main focus, the series also demonstrates a number of the OCI features, such as a quick way to create a compute instance and install and run and expose and monitor applications on it, getting started with OCI DevOps for source code control, build and deployment, how to create an OKE (Kubernetes) instance and how to create Functions on OCI. Concepts such as resource principal and instance principal and how to assign required permissions on cloud resources through IAM policies and dynamic group is illustrated in quite a bit of detail.

In order to follow along with these articles, readers should have at least basic knowledge of how to create Go applications. It is assumed that readers have access to their own Go development environment — although OCI Cloud Shell & Code Editor are probably sufficient for most steps. Some of the examples and screenshots specifically mention VS Code as development tool. However, other editors and IDEs can be used as well. The Go code presented in these articles demonstrates a number of mechanisms in their simplest form for maximum clarity and with the least dependencies. Readers should not expect meaningful functionality or production ready code.

The articles describe how to get Going on OCI and try out the examples. To really benefit from the series, readers should have access to an OCI tenancy with permissions to create the OCI resources discussed in these articles. Most of the resources used are available in the Always Free Tier (Compute Instance, VCN, Autonomous Database, Object Storage, Logging, Resource Manager) or have a free allotment tier for limited monthly usage (Functions, API Gateway, Streaming, Vault, DevOps).

The articles are published on the new Go landing page: https://developer.oracle.com/languages/go.html. A quite relaxed interchange between Erin Dawson (Oracle Developer Relations) and Lucas Jellema (well, that’s me, author of the articles) introducing the article series can be found on YouTube :

https://www.youtube.com/watch?v=M2wpfrxusEg

The individual installments are accessible directly as well:

  • Part 1 — How to get Going on Oracle Cloud Compute
  • Part 2 — Go Software Engineering and Automation with Oracle Cloud Infrastructure DevOps
  • Part 3 — Oracle Cloud Infrastructure Functions in Go and Using the OCI Go SDK for accessing OCI services from Go
  • Part 4 — Working in Go applications with Oracle Database and Oracle Cloud Autonomous Database
  • Part 5 — Hooking Go applications into OCI Streaming, using OCI Key Vault and Go Deployment on OKE

This the Source code repository for the sources discussed in this article series https://github.com/lucasjellema/go-on-oci-article-sources

Resources

Source code repository for the sources discussed in this article series

The Oracle Developer Go landing page: https://developer.oracle.com/languages/go.html

Chat between Erin Dawson (Oracle Developer Relations) and Lucas Jellema on Go, OCI and this article series (YouTube) https://www.youtube.com/watch?v=M2wpfrxusEg

Part 1 — How to get Going on Oracle Cloud Compute

Part 2 — Go Software Engineering and Automation with Oracle Cloud Infrastructure DevOps

Part 3 — Oracle Cloud Infrastructure Functions in Go and Using the OCI Go SDK for accessing OCI services from Go

Part 4 — Working in Go applications with Oracle Database and Oracle Cloud Autonomous Database

Part 5 — Hooking Go applications into OCI Streaming, using OCI Key Vault and Go Deployment on OKE

If you’re curious about the goings-on of Oracle Developers in their natural habitat, come join us on our public Slack channel!

And if you want to try Go on OCI, sign up for an Oracle Free Tier account and give it a whirl!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK