Container technology was originally intended to be the solution to problems concerning the migration of software between different operating systems. – Yet it turned out that its capabilities generate much more opportunities. Features such as simplicity of transferring the applications, more efficient use of server resources or more convenient migration to the cloud bring a business advantage to companies that opted for this technology – says Maciej Cetler, CTO of Tameshi Investment.
In recent years, the containers have become very popular, partly because their construction enables faster development and modification of applications. Meanwhile, the first projects related to containers focused on solving the problem of transferring software between different operating systems. – In a traditional system, there were situations where it was necessary to buy even several dozen servers to dedicate each of them to a separate programming language. To get rid of this obstacle and to additionally solve the problem that a specific app works on a developer’s computer and not on the server, the containers were created – explains Maciej Cetler.
What are the containers?
Containers – if You put it simply – they are their own operating systems, formed as layers. They work in the same way as virtual machines, but they share the operating system. Like a virtual machine, they have their own file system, processor, memory, etc., but their advantage is that since they are not linked to the underneath infrastructure layers, they can be more easily migrated between the clouds and different operating system distributions.
One of the most commonly used technologies for working with containers is Docker, which enables to place particular elements of the application inside the containers. The containers are then launched and – importantly – it happens the same way on each operating system. – Once defined, a container and the application running on it behaves the same everywhere. We can be 99% sure that if the image on the programmer’s laptop is built correctly, the software behaves exactly the same way on the target server – explains Maciej Cetler.
The Tameshi expert points out that this is a technology that will continue to grow strongly in the upcoming years, as it significantly simplifies the way of software development and management, reduces server load and supports the processes of migration to the cloud.
Reliable code – the benefits of containers
The container technology enables to use only one server to support many more languages than the older methods. Furthermore, their architecture allows to treat servers more cloud-like. – Thus, we can add new machines while not being limited by what applications will be launched on them. With the Dockers we can run several different apps on one server, which will work together or perform independent functions – explains Maciej Cetler.
Since the containers are built on identical images, each of them should work the same way everywhere. If something fails, the error most likely occurs in one faulty container, which must be fixed to avoid further problems.
The containers enable to easily and clearly dedicate programming teams to specific microservices, and the work of developers is more efficient, as they are able to detect software errors right at the development stage. Moreover, with the right system configuration, the same image can be run on different environments (e.g. test, pre-production or production environments). All this makes the software quality increase when using containers.
The container technology also significantly facilitates the migration of the IT system to the cloud. There is no need for lift and shift mechanisms, which can generate a lot of errors. With Dockers, all resources from physical servers can be easily transferred to the AWS cloud so that each component is built according to its needs.
Containers to rescue monolithic application
The container technology is also used to improve the support of large older monolithic applications. This kind of application should be divided into independent microservices, subsequently bundled in containers. For an online store, some may be responsible for e.g. login, others for shopping cart functions, and others for displaying products. In a monolithic application, failure of any of the elements affects the functioning of the whole. With containers, the problem is limited to a faulty microservice – if it concerns e.g. login, it will not affect other functions.
The containers also make it easy to scale the monolithic application. In the traditional method, to support the work of any of the components, it was necessary to modify everything that required large RAM resources. – After dividing the application, only those most loaded parts can be scaled, which clearly results in savings – says Maciej Cetler.
Container solutions in the AWS offer
Amazon Web Services (AWS) tools using container technology include AWS Fargate, intended to perform short, specific tasks. They are used, for example, to update stock levels between different company branches. – Using Fargate with Docker we perform synchronization, after which Docker finishes the operation, and we pay only for the time when the tool was being used – says Maciej Cetler.
AWS offers also tools based on more dispersed engines, like the Kubernetes container management platform. – In this case, we can even develop very complex ecosystems. For one of our clients we have introduced the entire banking system based on Kubernetes on AWS. It’s responsible not only for increasing the resource requirements for containers, but also for the entire layer around it – building load balancers, storing and delivering further physical machines to support the operation of a given application – explains Tameshi Investment expert.
High-tech containers stand for security
The Kubernetes services include a number of security mechanisms, such as encrypting traffic between individual containers or encrypting drives. Kubernetes on AWS also makes it easier to migrate to the cloud and allows to maintain a complexity of software development in organizations facing strong legal constraints (such as these from the financial sector). Therefore, this technology can be applied in very different enterprises.
Most companies already know that the containers exist, but very few realize their potential. The problem is to find specialists who – like us – can handle this technology in accordance with Amazon best practice. We have already developed proof of concept software for many customers, showing the potential of containers, and then trained administrators to use these solutions. According to the needs, we offer the training alone, as well as comprehensive services, including the migration of applications to a new model and their subsequent management. Feel free to contact us – adds Maciej.
TAMESHI is a Certified AWS Consulting Partner (Amazon Web Services). An experienced team with a vast spectrum of knowledge in the scope of cloud technologies.
Contact us at firstname.lastname@example.org for more details.