at ApceraGoSF - SummerFest
6/23/2014
Architected/Built TIBCO Rendezvous and EMS Messaging SystemsDesigned and Built CloudFoundry at VMwareCo-founded AJAX APIs group at GoogleDistributed SystemsFounder of Apcera, Inc. in San Francisco, CA@[email protected]
Derek Collison
About
Apcera is a managed service technology company that provides innovative organizations the tools they need to
successfully take advantage of groundbreaking technology.
Continuum is a deployment platform that empowers IT to seamlessly implement policy amidst agile innovation.
I was wrong
Not by much though IMO!
It will happen!
source: https://code.google.com/p/go-wiki/wiki/GoUsersMany, Many More!
Who really uses it?
Why Go?• Simple Compiled Language
• Good Standard Library
• Concurrency
• Synchronous Programming Model
• Garbage Collection
• STACKS!
Why Go?
• Not C/C++
• Not Java (or any JVM based language)
• Not Ruby/Python/Node.js
Why Go at Apcera?
Why Go at Apcera?• Best choice for distributed systems IMO
• Can test majority of system via Go routines
• Good core language, great(ish) performance
• easy to hire talent, because..
• easy to understand and grok in short period of time (its not erlang)
• Good standard library support - Get better faster!
• Great tooling that is built-in - a critical part of our CI
• go vet, go fmt, go test -race, etc
How do you build a Cloud OS?
Building a Cloud OS• Messaging System
• Distributed Scheduling System
• Orchestrator
• Policy Engine
• Isolation - Secure Perimeter Networking
• Semantically Aware Communications (for us)
Building a Cloud OS• Messaging System!
• NATS - High Performance (> 5M msgs/sec) and Secure
• Distributed Scheduling System!
• DDSS - Drop Dead Simple Scheduler (Mesos, Omega, Kubernates, Diego)
• Orchestrator!
• Own chef server, own Golang vSphere and OpenStack APIs.
• Policy Engine!
• pEngine: new policy language (dconf), secure distribution, pluggable enforcement
• Isolation - Secure Perimeter Networking!
• cgroupContainer (w/ user namespaces, networking) -> libContainer
• Semantically aware communications!!
• Transparent Semantic Pipelines and extensible frameworks
Where are we headed?
Go 1.3• Better GC
• Stacks now contiguous
• Defer is more performant
• Faster race detector - Please USE THIS!
• Go on Android and ChromeOS via NaCL
• My favorite: []byte -> string and vice versa is free
Why Go?
Its Simple! Its Getting Better Faster!
Its time for us to give back! !
Stay Tuned!