22
Go на Google App Engine Сергей Лалов - @SergeyLerg spiralcodestudio.com

Go на Google App Engine

Embed Size (px)

DESCRIPTION

Google App Engine - отличное решение для масштабируемых веб-приложений. Используется как крупными компаниями, так и любителями. А язык Go является наиболее эффективным для этой платформы (другие поддерживаемые языки: Java, PHP и Python). Доклад посвящен языку Go и особенностям его использования на Google App Engine.

Citation preview

Page 1: Go на Google App Engine

Go на Google App Engine

Сергей Лалов - @SergeyLerg

spiralcodestudio.com

Page 2: Go на Google App Engine

Кто я вообще такой?

• C -> PHP -> Python -> Lua + Go

• Corona SDK

• Google App Engine

• Зачем?

Page 3: Go на Google App Engine

Краткий экскурс

• RBaaS - Rusty Bucket as a Setup

• IaaS - Infrastructure as a Service

• PaaS - Platform as a Service

• SaaS - Software as a Service

• (M)BaaS - (Mobile) Backend as a Service

Page 4: Go на Google App Engine

БОЛЬШЕ АБСТРАКЦИЙ!

Page 5: Go на Google App Engine
Page 6: Go на Google App Engine

PaaS

• AWS Elastic

• Heroku

• Google App Engine

• Великая грусть сисадмина

Page 7: Go на Google App Engine

Google App Engine

• Распределенность

• Масштабируемость

• Высокая надежность

• Удобство работы

• Низкая стоимость

• Бесплатные квоты

Page 8: Go на Google App Engine

Google App Engine

• Python, Java, Go, PHP

• Sandbox

• Datastore

• Blobstore

• CloudSQL

Page 9: Go на Google App Engine

Services

• Channel

• Log

• Mail

• OAuth

• Search

• Sockets

• Users

• XMPP

• ...

Page 10: Go на Google App Engine

Why Go?

Go is Awesome

Page 11: Go на Google App Engine

Why Go?

Go is AWESOME!!11

Page 12: Go на Google App Engine

Why Go?

• 2007, 2009, 2011

• Компилируемый

• Статическая типизация

• Конкурентный (pun intended)

• GC

• Fun

Page 13: Go на Google App Engine

Go на Google App Engine

• Самый ресурсо эффективный

• Легко использовать

• Соответствует идеологии масштабируемых систем

• goapp serve

• goapp deploy

• my-app-id.appspot.com

• HTTPS бесплатно

Page 14: Go на Google App Engine

Go

• Go Lite IDE

• Export

• Interface

• OOP

• go fmt

• Ниже вероятность ошибок

Page 15: Go на Google App Engine

Hello, Engine

package hello12345

import (

"fmt"

"net/http"

)

func init() {

http.HandleFunc("/", handler)

}

func handler(w http.ResponseWriter, r *http.Request) {

fmt.Fprint(w, "Hello, Engine!")

}

Page 16: Go на Google App Engine

app.yaml

application: hello12345

version: 1

runtime: go

api_version: go1

handlers:

- url: /.*

script: _go_app

Page 17: Go на Google App Engine

Модульность

application: penguin-daycare-simulator

module: default

version: 1

runtime: go

api_version: go1

automatic_scaling:

max_concurrent_requests: 500

handlers:

- url: /.*

script: _go_app

Page 18: Go на Google App Engine
Page 19: Go на Google App Engine
Page 20: Go на Google App Engine
Page 21: Go на Google App Engine

Penguin Daycare Simulator

• Go (Google App Engine) + Lua (Corona SDK)

• http://habrahabr.ru/post/220031/

Page 22: Go на Google App Engine

Спасибо за внимание!

• @SergeyLerg

• http://github.com/Lerg