at Apcera
GoSF - SummerFest
6/23/2014
Architected/Built TIBCO Rendezvous and EMS Messaging Systems

Designed and Built CloudFoundry at VMware

Co-founded AJAX APIs group at Google

Distributed Systems

Founder of Apcera, Inc. in San Francisco, CA

@derekcollison

derek@apcera.com
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!

GoSF Summerfest - Why Go at Apcera

  • 1.
    at Apcera GoSF -SummerFest 6/23/2014
  • 2.
    Architected/Built TIBCO Rendezvousand EMS Messaging Systems Designed and Built CloudFoundry at VMware Co-founded AJAX APIs group at Google Distributed Systems Founder of Apcera, Inc. in San Francisco, CA @derekcollison derek@apcera.com Derek Collison About
  • 3.
    Apcera is amanaged 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.
  • 4.
  • 5.
    Not by muchthough IMO!
  • 6.
  • 8.
  • 9.
    Why Go? • SimpleCompiled Language • Good Standard Library • Concurrency • Synchronous Programming Model • Garbage Collection • STACKS!
  • 10.
    Why Go? • NotC/C++ • Not Java (or any JVM based language) • Not Ruby/Python/Node.js
  • 11.
    Why Go atApcera?
  • 12.
    Why Go atApcera? • 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
  • 13.
    How do youbuild a Cloud OS?
  • 14.
    Building a CloudOS • Messaging System • Distributed Scheduling System • Orchestrator • Policy Engine • Isolation - Secure Perimeter Networking • Semantically Aware Communications (for us)
  • 15.
    Building a CloudOS • 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
  • 16.
    Where are weheaded?
  • 17.
    Go 1.3 • BetterGC • 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
  • 18.
  • 19.
  • 20.
    Its time forus to give back! ! Stay Tuned!