Trade off

in #technology6 years ago (edited)

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

  1. Distribution of risk: Even if one server is down, live service can be on.
  2. Good for cooperation: Since each code base is in different repository, developers can work separately.
  3. Good for separation of concerns: We don't need to touch other nodes when one node is modified.
  4. Portability: One single node is perfectly packaged and exposes APIs. So it can be used in another project without any code fix.
  5. 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.

  1. Increased number of computing resources: Money is always problem
  2. Hard to debug: Tracking and monitoring bug in distributed system is terribly hard
  3. High learning curve : MSA is not easy. And it's too complicated to understand quickly.
  4. 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.

Sort:  

Resteem Promo Offer
Re-steem Post Unlimited For 1 Week
anime.gif
Send 2 SBD or 2 STEEM To @stoneboy - Post Url in the Memo - Your Post Will Be Re-steem to 9500+ followers 2 different accounts.

Note : This offer is only for one time. After that the regular rate will be applied.

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:

SteemitBoard knock out by hardfork

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @sshtel! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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!

Coin Marketplace

STEEM 0.31
TRX 0.12
JST 0.034
BTC 64418.55
ETH 3157.64
USDT 1.00
SBD 4.06