Go in the Cloud
Valentyn Shybanov • http://olostan.name/
Go is a compiled, concurrent, garbage-collected,
statically typed language developed at Google.
Google App Engine is a Platform as a Service (PaaS) offering that lets you build and run applications on Google’s infrastructure.
Microservicies is Cloud
Google: the core Go team work at Google. Most uses of Go at Google are confidential. The YouTube team have released their MySQL scaling infrastructure as open source software. And dl.google.com is written in Go.
Introduction to Cloud
Cloud for Customer: They don't care.
Cloud for Content/Service providers:
- Ability to granulate cost per consumed service
Customer pays you, you pay cloud provider (equal growth)
Sounds good? Give me one!
Scaling? You need to pay at least for one.
Can I pay less?
Yes. Break your application into pieces (don't forget to connect them back!)
So instead of cost per month, you have cost per request
And request matter:
if nobody use some part of your app, why you should pay for that (reporting)
If you measure cost per request,
then your request should be as "light" as possible.
And here goes... Go!
Some facts about Go:
Compiles into native binary code (no dependency)
Composition not inheritance
Concurancy out of the box
Complete set of tools
Who is using Go: (https://talks.golang.org/2012/splash.article)
Ok, how I can use Go?
Host yourself or use Google App Engine (GAE)
What is GAE? Auto-manageble VMs
GAE modules - your microservicies
Microservicies - smallest pieces of your app
Modules scaled indepenivly
So, lets play!
1. create new app
2. instead of signle app.yaml -> create several configurations
3. during development, run with
2. Quick comparison Go with other solutions
4. Example of go app scaling written in go