Time: 
2016-04-23 13:00-2016-04-23 14:00
Room: 
CC-114

Experience level

Learner

Session Track

Programming

Writing Open Source Webapps Without Fear

 
  • Introduction (3 minutes)
    • Philip is a Senior Software Engineer at Eventbrite. In his spare time, he writes novels, makes twitter bots, and gives technical talks. He used to run a webcomic, but there's just no money in it, you know? Philip is a refugee from the video games industry, and wishes anyone still there the best of luck. Philip believes in the Web.

  • Overview of the problem (5 minutes)

    • Why do I build webapps? Because it’s the hammer I know best, and I can go from zero to working well quickly.

    • There are no gatekeepers! I don’t have to actually ship software anywhere!

    • …except of course I do. I have to ship it across the web, which brings it’s own set of headaches

    • discovered this developing ContactOtter, an application for managing contacts

    • I build software because I want people to use it, which means making it accessible and available.

    • For webapps, this means hosting it somewhere

    • For open source webapps, this also optionally means letting them host it themselves

    • How do we make this work for us?

    • Developing all software is full of fear, webapps specifically. Let’s talk about some of those fears

    • Some of the fears we’ll be tackling:

      • "Fear of not having fun"

      • "Fear of unknown crashes"

      • "Fear of users hating it"

      • "Fear of deploying updates being a giant pain"

      • "Fear of disappointment with the quality of my work"

  • Getting deploy-ready (5 minutes)

    • First need to be deploy-ready

    • Good logging

    • Good internal error handling

    • Good external error handling (let the users tell you what’s wrong)

    • Write all the tests!

    • Have people do beta testing

    • Use a test-runner. Perhaps have your test-runner auto-deploy

  • How to choose where to host (5 minutes)

    • Lots of options these days, for both “normal” hosting providers and self-hosting helpers, and everything in between

      • “Normal” providers: Linode, Digital Ocean, AWS

      • Self-hosting helpers: Sandstorm, YUNOHOST

      • In-between: Heroku, other PaaS providers

    • How do you make a choice?

    • I chose both! Why?

      • Some people will always want to self-host, or have 1-click installs, or deep privacy concerns - for those people, I’m offering a sandstorm package

      • I kind of want to build a business out of this, and make use of features that Sandstorm doesn’t provide, so I’m also offering a SaaS version that I host on Digital Ocean

  • Choosing Sandstorm, making your app sandstorm ready (10 minutes)

    • Why Sandstorm?

      • For me, because I know people there, and I like their attitude towards the problem of hosting. They’re very “customer first”, in that the privacy and security of the customer are paramount, to the point of sometimes making the developers jump through strange hoops

      • However, those are probably good things for devs to think about

      • “App store for web apps”, “No login”, “Google Docs for Webapps”

      • Potential to someday make money

    • How to make Sandstorm easier for devs? Specifically django devs? Here’s what I’ve learned:

      • Helps to be thinking about this early

      • use django-sandstorm

      • check out the help communities

      • etc

  • Choosing a public host - “Am I a SaaS now?” (15 minutes)

    • Why digital ocean?

      • Don’t have to learn AWS.

      • Better interfaces, more reasonable pricing than Linode

    • How do I sleep better at night?

      • New Relic ( + talk about open source alternatives)

      • Loggly ( + talk about open source alternatives)

      • Mandrill ( + talk about open source alternatives)

      • Making deploys easy

        • stage 1: shell scripts + ssh

        • stage 2: debian deploys?

        • stage 3: docker and salt and ansible oh my

  • Q & A (18 minutes)