One thing that I realized from solving tons of software issues is there is no such thing as a free lunch.
memory vs disk storage, TCP vs UDP, single core processor vs multi core processors, monolithic vs micro system and centralized vs decentralized.(Decentralization of block chain solved a lot of problems and it is super cool!!! But I would like to talk about its disadvantages later)
Trade off issue always matters.
My team is responsible for developing core platform and backend service solutions to support other product development teams in company.
Technologically we are using micro service architecture(MSA). There are many advantages of MSA for both our business model and technological reasons. MSA is a software design paradigm to distribute resources and program logics into multiple nodes.
When it come to typical web service, many system has accepted monolithic architecture because it's simple, easy to manage, efficient and "looks like" cost saving.
However, many software teams today(even small teams of startups) accept MSA as trend more and more.
Micro service has good points such as
- Distribution of risk: Even if one server is down, live service can be on.
- Good for cooperation: Since each code base is in different repository, developers can work separately.
- Good for separation of concerns: We don't need to touch other nodes when one node is modified.
- Portability: One single node is perfectly packaged and exposes APIs. So it can be used in another project without any code fix.
- Scalability: It is great to scale out if you use micro service architecture. Due to limit of scale up(powering up computer resource), huge network traffics can be off loaded by scaling out of clustering nodes.
On the contrary, we have to pay cost for the other dark side.
- Increased number of computing resources: Money is always problem
- Hard to debug: Tracking and monitoring bug in distributed system is terribly hard
- High learning curve : MSA is not easy. And it's too complicated to understand quickly.
- Communication cost: This is not technological communication cost. When it comes to development process, team members experience a bunch of miscommunication issues.
Of course there are more disadvantages in MSA. And I might talk about those dark side of reality in MSA world ironically.
It must be fun.
for me.
Further, as I said, I would talk about block chains and many technological issues in my thoughts.
Congratulations @sshtel! You have received a personal award!
1 Year on Steemit
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @sshtel! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit