All Projects → google → Go Cloud

google / Go Cloud

Licence: apache-2.0
The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
HCL
1544 projects

Projects that are alternatives of or similar to Go Cloud

Grant
OAuth Proxy
Stars: ✭ 3,509 (-56.81%)
Mutual labels:  aws, azure, gcp, server
Cloud Custodian
Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources
Stars: ✭ 3,926 (-51.67%)
Mutual labels:  aws, cloud, azure, gcp
Learning Cloud
List of resources - courses, sample code, articles and screencasts for learning AWS, Azure, GCP and Alibaba Cloud
Stars: ✭ 100 (-98.77%)
Mutual labels:  aws, cloud, azure, gcp
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (-82.34%)
Mutual labels:  aws, cloud, azure, gcp
Infracost
Cloud cost estimates for Terraform in pull requests💰📉 Love your cloud bill!
Stars: ✭ 4,505 (-44.55%)
Mutual labels:  aws, cloud, gcp, azure
Cloudsploit
Cloud Security Posture Management (CSPM)
Stars: ✭ 1,338 (-83.53%)
Mutual labels:  aws, cloud, azure, gcp
Docker Android
Android in docker solution with noVNC supported and video recording
Stars: ✭ 4,042 (-50.25%)
Mutual labels:  aws, cloud, azure, gcp
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way 🚀
Stars: ✭ 10,887 (+34.01%)
Mutual labels:  aws, cloud, azure, gcp
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (-94.44%)
Mutual labels:  aws, cloud, azure, gcp
Engine
Deploy your apps on any Cloud provider in just a few seconds
Stars: ✭ 1,132 (-86.07%)
Mutual labels:  aws, cloud, azure, gcp
Externalsecret Operator
An operator to fetch secrets from cloud services and inject them in Kubernetes
Stars: ✭ 177 (-97.82%)
Mutual labels:  aws, cloud, azure, gcp
Arvados
An open source platform for managing and analyzing biomedical big data
Stars: ✭ 274 (-96.63%)
Mutual labels:  aws, cloud, azure, gcp
Scoutsuite
Multi-Cloud Security Auditing Tool
Stars: ✭ 3,803 (-53.19%)
Mutual labels:  aws, cloud, azure, gcp
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (-95.26%)
Mutual labels:  aws, cloud, azure, gcp
Offensive Terraform.github.io
Offensive Terraform Website
Stars: ✭ 25 (-99.69%)
Mutual labels:  aws, azure, gcp
Terraform Kubestack
Terraform GitOps Framework — Everything you need to build reliable automation for AKS, EKS and GKE Kubernetes clusters in one free and open-source framework.
Stars: ✭ 300 (-96.31%)
Mutual labels:  aws, azure, gcp
Leapp
Leapp is the tool to access your cloud; It securely stores your access information and generates temporary credential sets to access your cloud ecosystem from your local machine.
Stars: ✭ 306 (-96.23%)
Mutual labels:  aws, cloud, azure
Ccat
Cloud Container Attack Tool (CCAT) is a tool for testing security of container environments.
Stars: ✭ 300 (-96.31%)
Mutual labels:  aws, cloud, gcp
Opshell
DevOps Toolkit for Every Cloud on Every Cloud
Stars: ✭ 19 (-99.77%)
Mutual labels:  aws, azure, gcp
Cloudguardiaas
Check Point CloudGuard Network Security repository containing solution templates, Terraform templates, tools and scripts for deploying and configuring CloudGuard Network Security products.
Stars: ✭ 27 (-99.67%)
Mutual labels:  aws, azure, gcp

The Go Cloud Development Kit (Go CDK)

Write once, run on any cloud ☁️

Build Status PkgGoDev Coverage

The Go Cloud Development Kit (Go CDK) allows Go application developers to seamlessly deploy cloud applications on any combination of cloud providers. It does this by providing stable, idiomatic interfaces for common uses like storage and databases. Think database/sql for cloud products.

Imagine writing this to read from blob storage (like Google Cloud Storage or S3):

ctx := context.Background()
bucket, err := blob.OpenBucket(ctx, "s3://my-bucket")
if err != nil {
    return err
}
defer bucket.Close()
blobReader, err := bucket.NewReader(ctx, "my-blob", nil)
if err != nil {
    return err
}

and being able to run that code on any cloud you want, avoiding all the ceremony of cloud-specific authorization, tracing, SDKs and all the other code required to make an application portable across cloud platforms.

The project works well with a code generator called Wire. It creates human-readable code that only imports the cloud SDKs for services you use. This allows the Go CDK to grow to support any number of cloud services, without increasing compile times or binary sizes, and avoiding any side effects from init() functions.

You can learn more about the project from our announcement blog post, or our talk at Next 2018:

Video: Building Go Applications for the Open Cloud (Cloud Next '18)

Installation

# First "cd" into your project directory if you have one to ensure "go get" uses
# Go modules (or not) appropriately. See "go help modules" for more info.
go get gocloud.dev

The Go CDK builds at the latest stable release of Go. Previous Go versions may compile but are not supported.

Documentation

Documentation for the project lives primarily on https://gocloud.dev/, including tutorials.

You can also browse Go package reference on pkg.go.dev.

Project status

The APIs are still in alpha, but we think they are production-ready and are actively looking for feedback from early adopters. If you have comments or questions please open an issue.

At this time we prefer to focus on maintaining the existing APIs and drivers, and are unlikely to accept new ones into the go-cloud repository. The modular nature of the Go CDK makes it simple to host new APIs and drivers for existing APIs externally, in separate repositories.

If you have a new API or driver that you believe are important and mature enough to be included, feel free to open an issue to discuss this; our default will likely be to suggest starting in a separate repository. We'll also be happy to maintain a list of such external APIs and drivers in this README.

Current features

The Go CDK provides generic APIs for:

  • Unstructured binary (blob) storage
  • Publish/Subscribe (pubsub)
  • Variables that change at runtime (runtimevar)
  • Connecting to MySQL and PostgreSQL databases (mysql, postgres)
  • Server startup and diagnostics: request logging, tracing, and health checking (server)

Contributing

Thank you for your interest in contributing to the Go Cloud Development Kit! ❤️

Everyone is welcome to contribute, whether it's in the form of code, documentation, bug reports, feature requests, or anything else. We encourage you to experiment with the Go CDK and make contributions to help evolve it to meet your needs!

The GitHub repository at google/go-cloud contains some driver implementations for each portable API. We intend to include Google Cloud Platform, Amazon Web Services, and Azure implementations, as well as prominent open source services and at least one implementation suitable for use in local testing. Unfortunately, we cannot support every service directly from the project; however, we encourage contributions in separate repositories.

If you create a repository that implements the Go CDK interfaces for other services, let us know! We would be happy to link to it here and give you a heads-up before making any breaking changes.

See the contributing guide for more details.

Community

This project is covered by the Go Code of Conduct.

Legal disclaimer

The Go CDK is open-source and released under an Apache 2.0 License. Copyright © 2018–2019 The Go Cloud Development Kit Authors.

If you are looking for the website of GoCloud Systems, which is unrelated to the Go CDK, visit https://gocloud.systems.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].