15 Jul 2015 in Deis v1 PaaS

Deis v1.9 Community Release Planning Meeting

The Deis open roadmap is influenced by the needs and concerns of our community. To help us plan Deis releases, we invite the community to attend monthly release planning meetings to share with us any issues they'd like to see addressed in the next release.

Last week, we held the second such meeting, a planning meeting for Deis v1.9. A video of the meeting is on YouTube.

Meetings are coordinated on our mailing list. If you're not already a member of the deis-users mailing list, I'd encourage you to sign up. We have a great community of users who share all sorts of experience running Deis in different environments.

See you at next month's planning meeting!

14 Jul 2015 in Teamwork

How Containers Can Help Non-Developers in Your Business

It’s easy to see how containers can help your developer team. But they’re also useful for people across your business, including developer relations, marketing, and technical documentation.

Being able to deploy any version of your app across any platform means that your technical writers can write about new features easily, your marketing team can get to grips with new product features quickly, and your developer relations team can demo your app with confidence.

It’s no secret that there’s a new product thought up every second. That’s why it’s more important than ever to make sure that you find your audience quickly: the people who will use your product, love it, and advocate it. This is exactly what the people outside of your dev team are responsible for. So it behooves you to make their jobs as easy as possible.

Getting to Know Containers

In the past, getting a specific version of your app up and running a local computer might’ve taken half a day. That’s because apps usually have a lot of dependencies, as well as runtime environment requirements. Getting this stuff set up as a dev can be tricky enough. But expecting someone outside of your dev team to do it is usually a no-go.

As we covered in a previous post, containers make it easy to automate all of this. Getting any version of your app running locally can be as easy as cloning the right branch of your repository and running make. This puts an identical copy of the app on each person’s computer, making it ideal for testing, QAing, documenting, and live demos.

Using containers like this (instead of a shared staging environment) means people can work individually, as and when they want, without placing additional burdens on the dev team to spin up new environments.

This will improve the efficiency and self-reliance of any team that works with your app, leading to quicker QA test cycles, quicker documentation, quicker marketing, and so on.

Read More
13 Jul 2015 in Deis v1 PaaS

Deis v1.8 - Optional Ceph

The Deis project is proud to announce v1.8.0, which makes installation of store, database, and logger optional when running external backing stores, adds deisctl ssh and deis auth:regenerate commands, and unleashes Deis onto Linode.

Read More
7 Jul 2015 in Kitematic, GUI

Getting to Grips With Kitematic

As you may have already heard, Kitematic is a new container management GUI for Docker. It launched for Windows and OS X in June this year, and allows for running and managing containers without spending any more time than is necessary on the CLI.

Starting a virtual machine can be a daunting task. The people this tends to intimidate the most are those just starting out in web development and developer operations. By using Kitematic with something like Deis, this stress problem can be side-stepped.

In this post, we’ll look at:

  • The advantages to Kitematic

  • The availabililty of pre-bulit Docker images in Kitematic

  • Setting up Kitematic on your PC

Before you get started, be warned: if you’re installing Kitematic for the first time on your PC you may see the install hang or crash. If this happens, Kitematic provides a CLI script to fix the problem on its page of known issues. Remember that Kitematic is still in alpha. If you find a bug, help the Kitematic team squish it by reporting the bug on GitHub.

Advantages to Kitematic

Kitematic offers an easy-to-navigate GUI, with popular Docker images available to run upon installation. These include Ghost, Minecraft, RethinkDB, and many more. Docker offers powerful container management, including upscaling and downscaling. For smaller development teams working on PCs, cloning, managing, and deploying an app through Kitematic is a seamless experience, and significantly more user-friendly than the CLI.

Having a GUI lowers the barrier-to-entry for beginners and will help them contribute to and learn about your project. Kitematic also provides a unique educational opportunity for people who want to take things like the stock Minecraft image and learn about system administration and operations through experimentation and modification.

When debugging an issue, time is of the essence. Kitematic offers powerful features for operating containers in a snap. PC users can view their currently running containers with ease, with the ability to start, stop, and execute commands from directly within the Kitematic UX. What’s more, Kitematic lets you debug securely, without affecting parent or child containers.

Read More
2 Jul 2015 in Docker

Sailing Past Dependency Hell With Docker

Have you ever been excited to tinker with a software project, only to have dependency hell ruin all of the fun? As a software consultant, I face this situation all the time.

Luckily however, technologies like Docker take the pain out of spinning up additional components of your app architecture, like databases or job queues, or installing runtimes like Ruby or Python. By isolating processes from one another with very little overhead, you can sail past dependency hell.

Over the last year, I’ve worked on a number of different projects, encountered lots of of different requirements, and explored all sorts of ways of working through dependency conflicts. This is the story of my search for a solution, the pros and cons of each path I explored, and how I ended up using Docker.

Life as a Consultant, Day 1

When I started working as a consultant, I looked down at my beautiful new laptop and made a promise to treat it right. I wouldn't install a bunch of system extensions. I wouldn't tweak too many esoteric settings. I wouldn't bog it down with databases and other services.

Then came my first client project. Along with it came Python 2.7.6, MySQL 5.1.73, Ruby 1.9.3-p545, Node 0.10.29, Elasticsearch something-dot-something. And as I looked through the 500-line README, my heart sank.

My first reaction was to try to sidestep the dependencies. Occasionally, you can get away without a dependency. Usually, you're just delaying it for a while. Even for an optional dependency, skipping it meant a delicate dance of stubbed-out methods and dark hallways that must not be entered. Before long, this delicate dance turned into a clumsy stumble.

Faced with the reality that ignoring these dependencies was not a long term solution, I started to wonder why this project had so many dependencies in the first place. Certainly it had too many dependencies!

I may have been right about this one, but it's not a solution. Over time, I may be able to steer the project away from some of its dependencies, but that wouldn't do me any good at the moment.

I was ready to bite the bullet, beg forgiveness from my new laptop, and install all of this stuff. But I wasn’t quite ready to give up without a fight. If I took really detailed notes, I thought, maybe I could just uninstall all of this stuff later. Welcome to the world of Homebrew post-install notes.txt and List of rbenv files.txt. Now, in addition to a 500-line README file, I had a 600-line UNINSTALL file.

I ended up with a typical developer setup: the base OS, plus all of the services needed to run my application. Or, in a picture, this:

MySQL, etc. Over OSX

Read More