DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Axigen Messaging
Axigen Messaging

Posted on

Cloud Native Applications: Creating a Mail Server Environment with Docker

Here’s a little backstory: I was recently going over the process of converting a standard RPM package to a cloud application with a friend who’s a Software Engineer. He’d already read a lot of what’s out there about containerization and was ready to take the next step, to try to do it himself.

That’s how we got here, experimenting and going over the basic steps of how to deploy a mail server application into a Docker container, and then into a Kubernetes cluster. We hope us sharing this real-time, intuitive experiment with our community piques your interest, as it did ours.

We’re going to show you every step, what issues we encountered, and how we solved them.

We want to avoid switching to β€˜cloud native’ just because it’s a trendy buzzword. So, as we examine the technology, we also take a look at who can benefit the most from this particular mail server approach.

TL;DR

If you’re a veteran Kubernetes user, this article may not add much value to your know-how.

However, the main objective is to bring together the typical steps that a user needs to follow when deploying a Dockerized mail server application to a Kubernetes cluster.

You can think of this article as a reference that you can get back to whenever you need a quick refresher about the most common resources used when deploying mail server applications with Docker and Kubernetes.

Through our discussion, we visit the conversion of the RPM to a Docker image, publishing to Docker Hub, creating and clustering in Google Cloud Platform, and deploying our image.

The sample application β€” Axigen Mail Server

For this demonstration, we’re going to be using the Axigen Mail Server as a sample application. Why? I find that, while it’s specific to mail server technology, it shares a lot of modern web application requirements:

  • A front end part where user requests are received.
  • A backend that stores state.
  • A static component that displays a nice user interface and connects to the front end.

This experiment can, therefore, be replicated with other applications as well.

Note: Axigen already provides a fully functional, ready-to use Docker image in Docker Hub. You can find all the information and try it out for yourself here.

A Kubernetes Helm chart will also be available very soon. Both are intended for actual production use and are adjusted as such. Stay tuned for more.

This article is part of a series first published on the Axigen blog. If you want to see the full process, including converting the RPM to a Docker image, publishing to Docker Hub, creating and clustering in Google Cloud Platform and deploying the image, you can read the full article here

Top comments (0)

πŸ‘‹ Hey, my name is Noah and I’m the one who set up this ad. My job is to get you to join DEV, so if you fancy doing me a favor, I’d love for you to create an account.

If you found DEV from searching around, here are a couple of our most popular articles on DEV: