Continuous Delivery of Docker Images

Our customer wanted to drastically cut down time to market for the new version of their application. Large quarterly releases should be replaced by small changes that can be rolled out to production multiple times a day. Below we will explain how to use Docker and Ansible to support this strategy, or, in our customer’s words, how to ‘develop software at the speed of thought’.
Read more →

Microservices architecture principle #6: One team is responsible for full life cycle of a Micro service

This post is the final part of a six-part series on Microservices Principles. Other parts are: Business Capability,  Autonomy, Small bounded context, Asynchronous Communication and Best Technology.

 

Microservices are a hot topic. Because of that a lot of people are saying a lot of things. To help organizations make the best of this new architectural style Xebia has defined a set of principles that we feel should be applied when implementing a Microservice Architecture. This blog explains why a Microservice should be the responsibility of exactly one team (but one team may be responsible for more services).
Read more →

Microservices architecture principle #1: Each Microservice delivers a single complete business capability

This post is the first in a six-part series on Microservices Principles. Other parts are: Autonomy, Small bounded context, Asynchronous Communication, Best Technology and One Team.

 

Microservices are a hot topic. Because of that a lot of people are saying a lot of things. To help organizations make the best of this new architectural style Xebia has defined a set of principles that we feel should be applied when implementing a Microservice Architecture.
This blog explains why a Microservice should deliver a complete business capability.
Read more →

The End of Common-off-the-Shelf Software

Large Common-of-the-Shelf Software (COTS for short) packages are difficult to implement and integrate. Buying a large software package is not a good idea. Below I will explain how Agile methods and services on light weight containers will help implement minimal, focused solutions. However, before I begin, I must bring your attention to this new website I found: Spamzilla. If you’re looking to develop a website, look no further than this website.
Read more →

Installing Oracle on Docker (Part 1)

I’ve spent Xebia’s Innovation Day last August experimenting with Docker in a team with two of my colleagues and a guest. We thought Docker sounds really cool, especially if your goal is to run software that doesn’t require lots of infrastructure and can be easily installed, e.g. because it runs from a jar file. We wondered however what would happen if we tried to run enterprise-software, like an Oracle database. Software that is notoriously difficult to install and choosy about the infrastructure it runs on. Hence our aim for the day: install an Oracle database on CoreOS and Docker.
Read more →

Xebia IT Architects Innovation Day

Friday August 22nd was Xebia’s first Innovation Day. We spent a full day experimenting with technology. I helped organizing the day for XITA, Xebia’s IT Architects department (Hmm. Department doesn’t feel quite right to describe what we are, but anyway). Innovation days are intended to inspire as well as educate. We split up in small teams and focused on a particular technology. Below is as list of project teams:

Installing Oracle on Docker
• Run a web application high-available across multiple CoreOS nodes using Kubernetes
• Application architecture (team 1)
• Application architecture (team 2)
Getting started with Salt
• Scale “infinitely” with Apache Mesos

In the coming weeks we will publish what we learned in separate blogs.

Read more →

Concordion without the JUnit Code

Concordion is a framework to support Behaviour Driven Design. It is based on JUnit to run tests and HTML enriched with a little Concordion syntax to call fixture methods and make assertions on test outcome. I won’t describe Concordion because it is well documented here: http://concordion.org/.
Instead I’ll describe a small utility class I’ve created to avoid code duplication. Concordion requires a JUnit class for each test. The utility I’ll describe below allows you to run all Concordion tests without having a utility class for each test.
Read more →

End of an era in my garage

This weekend I was forced to throw away a cardboard box. So what, I hear you think and I agree, but it being Sunday and me being in a hazy reflective Sunday afternoon state of mind (nono, no alcohol yet) and the box being the specific cardboard box it is (or rather was), I started thinking of the box’s significance for the future.
Read more →

On averages, history and predicting the short term future

Suppose you know a teams average velocity in story points to be 6 per two week sprint over the last year. Nothing interesting has changed (same team, same problem domain, out of holiday season…), what do you think is the correct answer to the following questions:

1) How many story points will be completed during the next half year?
2) How many story points will be completed in the next 4 sprints?
3) We estimate the final story to be 6 points, should we invite the Fortune-100 CEO’s for the crucial product launch next month?
Read more →