Are we technologically matched? This should come up during the conversation with any particular company, or even before that. In the previous post we presented our technology stack, in this one we will present how we can integrate very easily regardless of technology.

We will use Docker technology to do this, enabling containerisation. What is it all about and why is it so enjoyable? Let me explain. Thanks to this technology we can close our functionality in an encapsulated environment - a black box that simply runs and communicates with your application in a fixed way, for example through an API similar to the one you have between the backend and frontend of your application. If you associate this with a virtual machine, this is a good direction.

Are we technologically matched?

 

Of course, there are several differences and advantages for each of these solutions, but that's not what this blog post is about. What about the black box though? Does it mean that you won't have access to the code? Of course you will. This will be the black box only from your point of view, which does not need to be aware of what technologies are used and how the provided part works. A bit like with an ATM, you insert your card, type in your PIN, click what you want to get, the ATM gives you the result, in turn you are completely careless about how it works.

What is more, thanks to containers you will get rid of the problem with the so-called deploy, i.e. running the program in an production environment. All you need is a Docker installed on a server, code, internet access and a Dockerfile written by us, which is a file containing the exact configuration our program needs to run. This will be configured inside the container - the black box - and will not change the server settings in any way.

The communication itself between the container and your application will not be a problem. It can be implemented exactly the same way as in a web application. So you do not need to hire any new employee if you are already developing a web or mobile application. What is more, our solution does not interfere directly with the code you already have, but is a separate service, i.e. a service that you can connect to any application, for example, when developing a new product you can just as simply connect a container to it.

The communication itself between the container and your application will not be a problem. It can be implemented exactly the same way as in a web application.

Does it have any disadvantages? Certainly it is from about 0.5 to 2 GB more memory consumed on the server. Usually, this is not a lot these days, but it does matter in embedded systems, where space is generally scarce. In this case we are able to write code in C or C++.