22 Jan 2016 in CoreOS, AWS, Tutorial

Production CoreOS on AWS EC2

In previous posts, we learnt about installing CoreOS on VirtualBox to get you up to speed with cloud-config files and the general installation process. We also learnt about various CoreOS components, such as systemd, fleet, and etcd. However, if you want to run CoreOS in production, there are several other things to take care of: security, system failures, cluster scaling, and remote access, to name just a few.

CoreOS ensures scalability and failsafe clustering out of the box. And cloud deployment is the way to go if you want scalable, secure infrastructure. But how do you get a CoreOS cluster running in the cloud? There are several related questions. Do you need to install CoreOS on all the nodes separately? What about the cloud-config files? How does a cluster get defined logically?

In this post I’ll go over the CoreOS installation process and hopefully answer these questions for you.

Read More
20 Jan 2016 in Roundup, Containers

Popular Off-The-Shelf Container Tooling

With the rise of Infrastructure as a Service (IaaS), more and more people are turning to containers (and microservices) as new models of application development that take full advantage of everything the cloud has to offer.

These models offer many benefits over old ways of working, but bring with them a unique set of new challenges: service discovery, infrastructure management, cluster orchestration, monitoring, container-centric continuous integration, to name just a few.

Thankfully, there are a number of popular off-the-shelf tools that can help you with these challenges.

We'll take a look at a few of those tools in this post.

Read More
14 Jan 2016 in Announcement, Helm, Kubernetes

The Helm 0.3 Release Line Is Here

Helm is a package manager for Kubernetes.

Helm 0.3.0 was released last week, and 0.3.1 was released this week with a few minor bug fixes.

The 0.3 release line of Helm introduces several improvements to linting. It also introduces two new Helm commands: helm generate and helm template. These pave the way for generic template support in Helm, and provide a plugin architecture for implementing arbitrary template engines. Also, Helm charts now have a source: field for specifying a URL to the source used to create the chart's resources.

In addition to these new features, many bugs in the 0.2 release line have been found and fixed. Several parts of the codebase have been refactored for easier maintainability and better testing.

Read More
13 Jan 2016 in Rigger, DigitalOpen, Tutorial

Ramping up with Rigger: Deploying Deis on DigitalOcean

Deis is an open source private Platform as a Service (PaaS) that simplifies deploying and managing your applications on your own servers. By leveraging technologies such as Docker and CoreOS, Deis provides a workflow and scaling features that are similar to that of Heroku, on the hosting provider of your choice. Deis supports applications that can run in a Docker container, and can run on any platform that supports CoreOS.


Have you ever wanted to experiment with a new project but were stymied by the "Getting Started" guide (with its tens or maybe even hundreds of manual steps)? Ever had a goal to spend part of your weekend crafting up a fantastic pull request for an open source project only to find that it took hours instead of minutes just to get to a productive development state? You're definitely not alone. I've found that most open source projects have a significant barrier to entry. That's not how it should be.

We at Deis realized we had a few rough spots that were plaguing potential users and preventing high-quality community contribution back into the project. So we've been working to alleviate some of the pains you might have experienced trying to stand up a Deis cluster for development and trial use cases.

In this guide, you'll get to experience a taste of the new and improved Deis provisioning process using the Deis project's new tool called Rigger.

Read More
7 Jan 2016 in Deis v1 PaaS, Continuous Integration

Setting Up Your Own PaaS and CI/CD Pipeline

Docker and the ecosystem around it have done some great things for developers, but from an operational standpoint, it's mostly just the same old issues with a fresh coat of paint. Real change happens when we change our perspective from Infrastructure (as a Service) to Platform (as a Service), and when the ultimate deployment artifact is a running application instead of a virtual machine.

Even Kubernates still feels a lot like IaaS - just with containers instead of virtual machines. To be fair, there are already some platforms out there that shift the user experience towards the application (Cloud Foundry and Heroku come to mind), but many of them have a large operations burden, or are provided in a SaaS model only.

In the Docker ecosystem we are starting to see more of these types of platforms, the first of which was Dokku which started as a single machine Heroku replacement written in about 100 lines of Bash. Building on top of that work other, richer systems like Deis and Flynn have emerged, as well as custom solutions built in-house, like Yelp's PaaSta.

Actions speak louder than words, so I decided to document (and demonstrate) a platform built from the ground up (using Open Source projects) and then deploy an application to it via a Continuous Integration/Deployment (CI/CD) pipeline.

You could (and probably would) use a public cloud provider for some (or all) of this stack; however, I wanted to demonstrate that a system like this can be built and run internally, as not everybody is able to use the public cloud.

Read More