$30 off During Our Annual Pro Sale. View Details »

The Easiest Way to Develop with Go

Paul Burt
October 29, 2015

The Easiest Way to Develop with Go

Go and Docker are hot topics these days! I borrow ideas from a 19th century Italian engineer / philosopher to explain why.

Plus! A link to Go + Docker working together to make development + deployment easy-peasy.

SLIDE NOTES:
2) Iron.io is platform for micro services, and we’ve been developing with Go + Docker in production for a while. We love it!

3) LXC, Jails, and Zones have been around for years. Why now?
Java, C++, and C# have been around for years. Why now?

4) How hot of a topic are containers?
Oracle Container Cloud +
RackSpace Carena
Announced within hours of each other. (Oct 27th vs 28th)
AWKWARD!

6) Italian Economist + Engineer + Philosopher.

8) A poker game is on the frontier (can’t win money without taking from someone else).
An idea is probably on the Frontier if it's highly optimized, but comparing it to other solutions involves phrases like: catch-22, zero-sum game, “a sword that cuts both ways”, etc.

11) Image courtesy of https://github.com/golang-samples/gopher-vector

12) Optimize for hardware, or optimize for the developer. If a solution is Pareto efficient, you're likely trading some dev friendliness for better HW utilization (or vice versa).

13) Optimize JUST for hardware and you're writing Assembly.

14) Go too far in the direction of devs and you get PHP. Even big shops who once embraced it (FB) have switched their tune to "Woah, we've got to be more hardware friendly."

15) Most solutions aim to be somewhere in-between.

16) Go + Docker optimize for a lot of the same things!
Pretty good for HW.
GREAT for Devs.

17) At Iron.io we love Docker + Go. We've even built a handy workflow for cleanly getting dependencies into your Go Docker image.

Paul Burt

October 29, 2015
Tweet

More Decks by Paul Burt

Other Decks in Technology

Transcript

  1. The Easiest Way to
    Develop with Go
    “Pizza makes me think that anything is possible.”
    Henry Rollins

    View Slide

  2. Who am I?
    Dev Evangelist
    [email protected]
    @ThatMightBePaul

    View Slide

  3. Why this Talk?
    Containers are hot (why?)
    Go is hot (why?)
    Let’s combine them. Hot-hot-heat! (why?!)

    View Slide

  4. +

    View Slide

  5. Outline:
    1. Philosophy
    2. Application

    View Slide

  6. Philosophy:
    Pareto Efficiency
    Vilfredo Pareto (1848–1923)
    This guy!

    View Slide

  7. A state of allocation of resources in which it is
    impossible to make any one individual better off
    without making at least one individual worse off.

    View Slide

  8. Pareto Frontier
    The set of all choices that are
    Pareto Efficient.

    View Slide

  9. Our Frontier

    View Slide

  10. View Slide

  11. View Slide

  12. Optimize for..
    Devs
    Hardware

    View Slide

  13. View Slide

  14. View Slide

  15. Devs
    Hardware

    View Slide

  16. Devs
    Hardware

    View Slide

  17. Application:
    DockerWorker
    github.com/iron-io/dockerworker

    View Slide