Skip to content

Instantly share code, notes, and snippets.

@neeravkumar
Created July 19, 2014 05:14
Show Gist options
  • Save neeravkumar/ad81eb1eba78b991faf5 to your computer and use it in GitHub Desktop.
Save neeravkumar/ad81eb1eba78b991faf5 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<title>Docker and Go</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
@import url(http://fonts.googleapis.com/css?family=Neuton);
@import url(http://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Neuton';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# Docker and Golang
---
# What is Docker?
- ### The most popular Go project on Github by far(in case you are wondering why I am here)
- ### An open-source project started by DotCloud whose success prompted them to rename themselves to Docker Inc.
- ### Or simply a tool to pack, ship and run any application as a **lightweight container**.
---
# Lightweight Container
- ### Kernel Namespaces (ipc, uts, mount, pid, network and user)
- ### Chroots(using pivot_root)
- ### Kernel Capabilities (CAP_SYS_ADMIN yo!)
- ### Cgroups(You shall not consume! More than I tell you that is)
---
# Why Docker
![Worked in Dev, ops problem now](http://cdn.memegenerator.net/instances/500x/49537895.jpg)
---
1. ### My Code
2. ### My Framework
3. ### My Libraries
4. ### My System Dependencies
5. ### My Distro
##**I don't care where its running or how**
---
background-image: url(http://danshultz.github.io/talks/cooking_with_chef/images/supporting-developers.jpg)
---
1. ### Logs
2. ### Backups
3. ### Remote Access
4. ### Monitoring
5. ### Uptime
##**I don't care what's running in it**
---
# Why Docker over Virtual Machines?
- ### Chroot on Steroids, Normal Processes, but Isolated.
- ### Share Kernel with the host, very low overhead!
- ### No device emulation(neither PV or HVM)
- ### Doesn't need a /sbin/init(run whatever directly!)
---
#### shamelessly stolen from docker devs
# Why Go?
# 1. Static Compilation
## - Easier to install, test and adopt
## - Good to bootstrap
## - No dependencies
---
# 2. Neutral
## - Its not C/C++.
## - Its not Python.
## - Its not Javascript.
## - Its not Ruby.
---
# 3. Exactly what they needed
## - Good asynchronous primitives (wait for I/O, wait for processes…)
## - Low-level interfaces(manage processes,syscalls)
## - Extensive Library
---
# 4. Full Dev Environment
## go doc(see documentation for any package)
## go get(fetch dependencies)
## go fmt(solve "tabs vs spaces" once for all)
---
background-image: url(http://cdn.memegenerator.net/instances/500x/52510310.jpg)
---
# How Docker is used in VIKI?
1. ## VIKI-in-a-BOX: Rapidly reproducible full staging environments for everybody.
2. ## Deployment tracking and versioning, since all the dependencies are encapuslated, update/rollback is easy.
---
# Docker Group
## https://www.facebook.com/groups/dockersg/
---
# Thanks and also we are hiring, http://www.viki.com/jobs
</textarea>
<script src="http://gnab.github.io/remark/downloads/remark-0.6.5.min.js" type="text/javascript">
</script>
<script type="text/javascript">
var slideshow = remark.create();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment