Created
July 19, 2014 05:14
-
-
Save neeravkumar/ad81eb1eba78b991faf5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!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