Find out how you can keep your development architecture up to date!
Since the beginning of software development, there has been a problem that falls on the developer, but it does not have to do with the code, but with how to keep updated the architecture necessary for the application.
For this purpose, it is necessary to know what version of the language you are working on, to have the dependencies updated and, most importantly, how to maintain them over time along with other applications and more updated versions of the languages and dependencies.
Fortunately, technologies that help us solve this problem came to the rescue. Among them are containers and serverless services, but what a problem! We went from having no options to having very different choices from each other.
Now what I want to share with you is a little information about each one. What are the commonalities, their differences, and some recommendations on when it may be more beneficial to opt for one of them, so let’s get started.
Containers allow the installation and configuration of the environment (source code and dependencies) to be executed independently of the host system, regardless of its configurations. Some of its advantages are:
- Easy migration path
Serverless services provide the ability to execute source code from an associated event. The service provider takes care of everything else, ensuring that features are always available and usable, but they only charge for the time they run.
- Some of its advantages are:
- Zero administration
- Pay for execution
- Zero cost for downtime or downtime
Broadly speaking, that is the generality of each of the cases. As we can see, it is necessary to perform the configuration only once, and with this, it will continue working.
With both worlds, we achieve independence from the physical conditions and technical configurations of the host system, even to be completely unaware of them.
Inevitably, we come to questioning. Which one should I use? Which one should I choose?
And like everything in the development world, it is answered with dependence. But some conditions can give clues as to where to tip the scales.
You should go for containers when:
You need the flexibility to install and use version-specific software. You can choose the underlying operating system with containers and have complete control of the installed programming language and runtime version.
You need to migrate to an old system.
You need to have control over the configuration and be able to perform maintenance on it.
You want to divide a monolithic application into separate microservices, which need to be delivered as individual groups of containers, which leads to using tools that allow all containers to talk to each other.
You should use serverless services when:
- You want to scale your application quickly, even shut down entirely by not requiring an operation.
- You can get rid of the architecture necessary for the operation of your source code.
- They require iterations and put them into production more quickly.
Well, that’s all I can share with you at the moment, but as I always say: don’t believe it all, go out and find out and consult about what is exposed here. I will always be open to debate if you do not agree with something I have stated.