GeekNews: A cloud-native app templateAugust 09, 2015
GN is a cloud-native app template (seed) masquerading as a simple social news site and an homage to HackerNews. GN includes:
- python3+django1.7 web app foundation
- basic templates for class based views and user interactions
- user registration process incl. TOS acceptance step
- user profiles & account maintenance
- integrated local & remote devops workflow
- ready to scale to real world needs out of the box*
Get it now on Github: https://github.com/thomaswilley/geeknews
I wanted a simple seed app I could clone for future projects that would allow me to much more rapidly focus on the differentiated, high value parts of each project and much less time on the undifferentiated parts.
Maybe many of us are looking for something similar and so releasing today GN as an example, as a learning tool. While it’s probably unsuitable as is for production use as-is, it’s hopefully a helpful start and adds value right away for you.
Which primary technologies are involved?
Why this stack?
Generally, these are the tools and devops flows I personally work with the most - the habits left over after years or experimenting. The one exception is CloudFoundry with is relatively newer for me - I used CF here though because I think I’m officially at that point where I don’t want to think about servers anymore unless I really have to (continuing the mission to focus on just the differentiated parts!). With a couple live projects, the one running in a PaaS (Google AppEngine in this case) by far is the most productive to maintain. While Azure and AppEngine are wonderful platforms in their own rights, I tend to prefer CF because it’s entirely open and I believe it’s the future of enterprise app development for many of the reasons that led to GN’s creation.
If you’d like to deploy GN on IaaS or another PaaS of course it should be straightforward — and if you wanted to script your IaaS deploy but wanted some examples for those devops flows, you may be able to find some value in my Vagrant/Ansible based clustering template for CoreOS/Fleet.
What can I do with it?
You can clone it and be in production in 5 minutes with your own social news site ready for re-factoring into whatever you’re looking to build; and, you’re ready to support signifiant traffic loads (anecdotally only limited by how much you want to pay for, but not limited technologically). You’ll have a familar workflow already setup along with templates to edit in place, and can start first by focusing on your data model and core value proposition rather than worrying about boilerplate… and then when you have what you need at the core, everything else is fully open and accessible for you to create, extend, edit, and tune as needed.
*Scaling is possible thru out of the box compatability with CloudFoundry and Pivotal WS in particular (disclaimer: I work for EMC, Pivotal’s parent company - however all views expressed here are my own).