FishOps - Transforming the Directorate of Fisheries to into Cloud Native First with Kubernetes

Hans Kristian Flaatten

Short talk - in English

Rewind back to the beginning of autumn of 2016. The Directorate of Fisheries, headquartered here in Bergen, faced several growing pains. The ever demanding changes from new fishing and aquaculture regulations, two large IT-projects by outside consultants, and personnel changes within the IT department had definitely taken it's toll on the situation.

The directorate was a traditional Java Enterprise with a large monolithic Oracle database in the center of it all. Several generations of Java applications had accumulated over the years. All of them had their own hand-crafted runtime environment and deployment procedures. Automated build and deployments was not common practice up until this point, and as a result deployments were error prone, and far apart.

Shortly after I arrived, a DevOps task force was assembled and we started working our way to the root cause, and we discovered three major concerns we wanted to tackle; 

  1. move away from manual builds and deployment by automating everything
  2. reduce the number of different runtime-environments and simplify deployments
  3. introduce higher level of monitoring and insight into the applications

Our goal was simple; push - build - deploy. We wanted the best possible developer experience and simplicity and insight for the operational personnel.

We quickly established that containers was the best way forward and would give us much needed headroom in the future for taking on new technologies, and that Kubernetes was the best fit for the job. It would also allow us to move into the cloud easily when that would come.

This task would not be easy moving about a hundred different services across multiple generations of Java-code onto one common platform. We certainly had our difficulties and setbacks where we had to start over but by the time we reached the summer our first application on the new platform went into production, and shortly there after several more.

Now, a little over one year in we are almost a 100% done with the first transition phase, and we will at that point reach 400 container running at any given time in our two clusters. This is the story of how we made this transformation to a Cloud Native First Architecture on Kubernetes happen, what lessons we have learned along the way, and some thought on where we want to go next.