GoSF Summerfest - Why Go at Apcera


Published on

In 2012, Derek Collison (Founder and CEO, Apcera) predicted that “Go will become the dominant language for systems work in IaaS Orchestration, and PaaS in 24 months.” Today, he feels his prediction wasn't too far off.

In this 20 minute lightning talk from Gopher Summerfest, Derek talks about why his team chose Go and how they’ve implemented it.


Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

GoSF Summerfest - Why Go at Apcera

  1. 1. at Apcera GoSF - SummerFest 6/23/2014
  2. 2. 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
  3. 3. 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.
  4. 4. I was wrong
  5. 5. Not by much though IMO!
  6. 6. It will happen!
  7. 7. source: https://code.google.com/p/go-wiki/wiki/GoUsersMany, Many More! Who really uses it?
  8. 8. Why Go? • Simple Compiled Language • Good Standard Library • Concurrency • Synchronous Programming Model • Garbage Collection • STACKS!
  9. 9. Why Go? • Not C/C++ • Not Java (or any JVM based language) • Not Ruby/Python/Node.js
  10. 10. Why Go at Apcera?
  11. 11. 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
  12. 12. How do you build a Cloud OS?
  13. 13. Building a Cloud OS • Messaging System • Distributed Scheduling System • Orchestrator • Policy Engine • Isolation - Secure Perimeter Networking • Semantically Aware Communications (for us)
  14. 14. 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
  15. 15. Where are we headed?
  16. 16. 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
  17. 17. Why Go?
  18. 18. Its Simple! Its Getting Better Faster!
  19. 19. Its time for us to give back! ! Stay Tuned!