GoSF Summerfest - Why Go at Apcera

Post on 06-May-2015

1.116 views 0 download

description

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. https://www.youtube.com/watch?v=qC9WhjmewIk

Transcript of GoSF Summerfest - Why Go at Apcera

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@derekcollisonderek@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!