Containerization is one of the fastest growing technologies in the software world. One of the leading companies that provide a software container platform is Docker. But why is containerization better for you and what makes Docker so suitable for the Nerdalize cloud?
At Nerdalize, our biggest challenge is to distribute all the computations from our customers over our CloudBoxes which are scattered over the Netherlands. The portability of containers makes it possible to run jobs on multiple CloudBoxes without compatibility issues.
By utilizing Docker’s technology, we have created a platform and ecosystem which allows us to scale up your computations. You simply provide the Docker image and we provide the computing resources.
The use of Docker isn’t only important for us to distribute compute power, it’s also important for you as a cloud customer. Currently, the cloud market is expensive and rather non-transparent. We believe it’s important that the cloud market becomes more transparent and flexible, which can be realized by using containers to run your computations. Below you’ll find four ways in which Docker containers help you:
1. Portability avoids vendor lock-in at one cloud provider
As I said before the portability of Docker is important to set up our infrastructure, but it’s also important for you as a cloud customer. The Docker image itself contains everything it needs in order to run a specific process. It’s independent of its environment, which gives you a lot of flexibility in choosing the environment you want to run it in. This makes it reliable to run processes in various environments at different cloud providers. And most importantly it’ll be easy to retrieve your data afterwards, avoiding vendor lock-in at one cloud provider and saving you much time and effort.
2. Transparency of costs and performance
Docker containers are based on open standards and it’s supported by most providers. This enables you to run the same container at different cloud providers and get feedback on the performance of different machines. The open standards for containers make it easy for you to benchmark several providers, which makes the costs and performance transparent.
We can also help you to benchmark your process. Our benchmarking tool will help you choose the instance with the best price/performance for your compute job. You’ll receive an overview of the price/performance and runtime per cloud provider for your specific project. This makes it easier for you to choose a cloud provider.
Do you want to know more about our benchmarking tool? Read our blog post on how to budget cloud expenses.
3. Use resources efficiently for multiple processes to save time and reduce cloud expenses
The memory, CPU and disk usage of containers can be accurately controlled. Also, they don’t need a separate operating system, so multiple containers can run simultaneously. Both reducing the total amount of hardware that is used.
Another advantage of containers is that it’s possible to run multiple processes in one container. You can set up a dependency order in the container, which enables you to run a certain simulation and let it directly continue post-processing with a different software package. You don’t need to install any of the software packages since they are already in the container. That makes it much easier to send your complete process to the cloud. Saving you time and effort, because the installation of multiple packages can be skipped.
The ease of controlling the resource usage and the fact that containers run few overhead processes, enables very efficient hardware use. Thereby, we can offer you very affordable pricing for cloud computing. Also, more efficient use of hardware makes computations more sustainable, because less energy is used for the same computation.
4. Easy to maintain and share different versions of software
At Nerdalize we want to make computing easy and straightforward. Because many developers use Docker, new Docker images become available constantly. Many software vendors publish their own Docker containers or supply an installation guide for you to make your own images. This means that you can easily adjust and use existing Docker images for your computations.
Additionally, it’s important that you can easily maintain your containers during a project. It can be essential to quickly fix a bug, add a new feature during the process or apply a new version of an application. Containers can often be run with just a single command. This makes it easy to share your work with your colleagues by just sharing the Docker container itself. You can write your code locally and share the image with your colleagues via Docker Hub or other image repositories. As a result, you can easily collaborate without any version or compatibility issues. A great way to improve productivity when working in teams!
Important to keep in mind
Using Docker enables us to make the cloud market transparent and flexible. It’s a great technology for cloud computing, but it’s relatively new and therefore constantly developing. For some software applications, such as Windows software or applications with complex licensing structures, it can still be hard to create a Docker image. However, when your software application is suitable, Docker has many benefits. Giving you enough reasons to start looking into the technology!
Do you need help to set up a Docker image? Find out how we can support you. We offer in-house training sessions to organizations as well as Docker workshops and we’re always happy to answer your questions.