Being a Technology Agnostic
I will give you a secret how to keep your IT systems always up-to-date.
I’m Serkan Karaarslan working in IT field for 15 years and have seen all since internet bubbles, back to 2000. I worked as a coder, developer, an engineer and architect in every size of company, from startups to big corporate organization. I strongly believe that I have words to say about IT world.
It’s an always a nightmare to decide a technology for your business, especially in a big corporate world. When any system is implemented in a giant organization it’s hard to replace with a new one. Such as selecting ecommerce platform, CRM or CMS. Since the technology, approaches and solutions are changed almost every 5 years drastically, you would be criticized heavily for your choice. Even if you do the best, what you select will be outdated in 4–5 years. I will tell you in that article how to avoid all and be remembered mr. or mrs. who had picked the right always.
Evaluation of Frontend
Evaluation of Backend
With the help of cloud platforms, today, microservices are the new trends. Some people thinks that it’s a fad. I value their opinion but I have to disagree. Microservices applies most basic software design principles which are single responsibility, open-closed design principles and dependency inversion principle.
There are enough cases to convince you to move away from monolith architecture to microservices. Netflix has 600 microservices while amazon has around 150 microservices to build their pages.See the video, https://youtu.be/WwrCGP96-P8?t=23m3s
Monolith applications are like to buy your jeans, t-shirts, underwear, socks and shoes from a same brand. You never do that because some brands are good at jeans and some of them crafts really nice shoes.
Simply a monolith application is one package, are written with same code and works in a same platform. You have to tailor your application with the existing platform capabilities. Your boundaries are depend on your platforms’ capabilities. For instance, if you want to add a nosql system like cassandra or mongodb but your platform migh not allow to install these databases. The only way is to change your platform. But then new platform will come with its limitations. It’s like infinite loop. The only way to overcome these issues is microservices.
Microservices are answers to :
- how to stay competitive
- how to adapt new technologies quickly
- how to increase release frequency from weeks to hours
- how to change codes without impacting other codes
- how to build new features easily
- how to decrease build time
- how to become technology agnostic
Simply you can decompose your monolith applications into a several, meaningful services which can be built with different tools,system,framework and code. By doing this, you can select the best technology to fit your service without impacting negatively other services. In future, you can replace it with a better one.
None of the thoughts, ideas, comments and whimsical things I post or write here are the views of my employer. This is originally published on my blog, http://serkankaraarslan.com/post/141513843540/being-technology-agnostic