what does people say when they switch to go?

23
TechTalk #3 What do people say when they switch to Go? Vũ Nguyễn [email protected]

Upload: nguyen-vu

Post on 13-Apr-2017

119 views

Category:

Software


1 download

TRANSCRIPT

TechTalk #3

WhatdopeoplesaywhentheyswitchtoGo?

Vũ Nguyễ[email protected]

Goisanoptionallanguagereleasedin2012(ItdoesnotforceyoutouseitlikeJavaforAndroidorObj-CforiOS)

Whyisitpopulartoday?

03/2015 04/2016

WhoareusingGo?

Google,Facebook,Microsoft,Amazon,Mozilla,Yahoo,eBay,GitHub,Twitter,Dropbox,Docker,MongoDB,Couchbase,Disqus,Basecamp,

CoreOS,CloudFlare,…

https://github.com/golang/go/wiki/GoUsers

Googlehasbigsoftwares andbigproblems.

https://talks.golang.org/2012/splash.article

2012

Thehardwareisbig andthesoftwareisbig.Therearemanymillionsoflinesofsoftware,withserversmostlyinC++andlotsofJavaandPythonfortheotherpieces.Thousandsofengineersworkonthecode,atthe"head"ofasingletreecomprisingallthesoftware.

https://talks.golang.org/2012/splash.article

2012

ThegoalsoftheGoprojectweretoeliminatetheslownessandclumsiness ofsoftwaredevelopmentatGoogle,andtherebytomaketheprocessmoreproductiveandscalable.Thelanguagewasdesignedbyandforpeoplewhowrite—andreadanddebugandmaintain—largesoftwaresystems.

https://talks.golang.org/2012/splash.article

2012

2011WestartedwithRubyonRails,quicklybuildfirstversion.Attheendof2012,wehad200APIserverswhichserve3000requestspersecondfor60,000mobileapps.

WhenourAPItrafficstartedgrowingfaster,westartedhavingtorapidlyspinupmoredatabasemachines.The“oneprocessperrequest”startedtofallapart.

http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/

2015

AfterrewritingtheEventMachine pushbackendtoGowewentfrom250kconnectionspernodeto1.5millionconnectionspernode.Thetimeittakestorunourfullintegrationtestsuitedroppedfrom25minutesto2minutes.ThetimetodoafullAPIserverdeploywithrollingrestartsdroppedfrom30minutesto3minutes.

http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/

2015

“ThehardestpartoftherewritewasdealingwithalltheundocumentedbehaviorsandmagicalmysterybitsthatyougetwithRailsmiddleware.”

http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/

2015

“WeloveGo.We'vefounditreallyfasttodeploy,reallyeasytoinstrument,reallylightweightandinexpensiveintermsofresources.”

http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/

2015

Weneedtoscaleacompanyfromtheearlydaysof5engineers

to200+engineersasthe businessgrows.

http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/

2015

[ScalaatGravity]Severalofusstartedinvestigatingandwereabletotrackthesourceoftheissue.Theonlyproblemwaswehadnoideawhatthecodewasdoingatfirst.Wecameacrossastrangesymbolwehadn’tseeninourprojectsbefore.Thespaceshipoperator<|*|> .Someonesaidoutloud“whatthehellisthat?”.

http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/

2015

http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/

2015

WhileyoucanhaveveryhighperformingsmallteamsgoingwithScala,tryingtogrowandengineeringorganization>50 isanuphillbattle.

OneofGo’sreasonsforexistenceistomakedevelopersmoreproductive.[…] Newdeveloperswe’vehiredarerampedupinweeksvsmonths.

http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/

2015

“Wow,Ireadthroughthat[Go]library onceandIknewexactlywhatitwasdoing,I’vereadtheScala versionofthatlibraryfourtimesandIstillhavenoideawhatitdoes,Icanseewhyyouguyslikeitsomuch”

http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/

2015

Aboutayearago,wedecidedtomigrateourperformance-criticalbackends fromPythontoGotoleveragebetterconcurrencysupportandfasterexecutionspeed.Thiswasamassiveeffort–around200,000linesofGocode–undertakenbyasmallteamofengineers.Atthispoint,wehavesuccessfullymovedmajorpartsofourinfrastructuretoGo.

https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/

2014

Go'slibraryisextensive andeasy toworkwith.

Gogeneratesasingleexecutablethatcanbedistributedtoourclients.There'snocomplexdependencychainorlayoutofsharedlibrariestoworryabout.

https://blog.cloudflare.com/go-at-cloudflare/

2012

1. Staticcompilation2. It’snotC++,notPython,notRuby,notJava3. It’shasgoodasync,low-levelinterface,

extensivelibrary4. “godoc”,“goget”,“gofmt”,“gotest”,“gorun”5. Multi-archbuild

http://www.slideshare.net/jpetazzo/docker-and-go-why-did-we-decide-to-write-docker-in-go

2013

“GofeelsperfectforOpswork.TheerrorhandlingseemstofitsonaturallyintothewayIwanttowritesystemssoftware.Deploymentisreallysimpletoo,whereI’dhavetothinkabouthowtopackageupdeps andconfigureRubyversionsIcannowjustpushanupdatedbinary.”

https://signalvnoise.com/posts/3897-go-at-basecamp

2015

WhenwelaunchedtheCoreOS projectweknewfromtheverybeginningthateverythingwebuiltwouldbewritteninGo.Thiswasnottomakeafashionstatement,butratherGohappenedtobetheperfectplatformforreachingourgoals– tobuildproductsthatmakedistributedcomputingaseasyasinstallingaLinuxdistro.

https://blog.gopheracademy.com/birthday-bash-2014/go-at-coreos/

2014

Goisamazinglystableandawesome.Ican'tbegintolistwhyeverythingaboutitisjustgreat.

https://www.quora.com/Why-did-Koding-switch-from-Node-js-to-Go

2012

TechTalk #3

Thankyou

Vũ Nguyễ[email protected]