I ‘ve been working in the Software industry for a decade & half, Code developed by me are either backed-up or on a tape in some svn repo or they are processing the voice-commands for millions of subscribers…
I have worked for mammoths(Nortel Networks) and the unicorns(Aricent)…So if I write about pradigm shift you better take it seriously!..
This article will have two components
-Micro-service and How to implement them using Python
-How 20 yrs of evloution in software-arch has changed and why??
What is Micro-Service?
Micro-Services are new design approach away from old 3-tier architecture.
It breaks away from monolothic architecture and adopts decentralized approach,
Large monolithic applications had inherent problems, if a snag developed in one module leads to crashing(?) of the complete application.
Imagine a new-bug in upgaded UI or Logging module, leads to repettitive ?. This would bring your whole application down and a lot of irate? customers..
quite unacceptable in large commercial application.
Consider a Larger billing system for Airline, Imagine a 3-tier based archtecture or a banking solution running on large server catering to orders..
if any unhandled-exception occurs, you have a crash!!.
“Do you Know? : Companies like Honeywell dont use pointers C-for developing critical software for Airplanes/fighterjets, Reason: If any pointer Crash happens while you on a flight!!”
Assume you are a flight Engineer Problem for you: An airplane has N Critical Components,All components has to work successfully for a successful flight;
Each ith component has probability of Pi:working successfully. What is the total probalility of flight doing a successfull flight.?
Answer @ the end of the blog.
1> Adds redundancy to your system/deployment.
2> No single point of failure. Adds Scalability to your application.
3> Decentralization: Allows Independent development & deployment of modules: Module-X is developed/deployed in UK doesn’t affect Module-Y developed in Japan.
4> Most Important No perfomance bottlenecks.
“It allows you to roll out features quickly “
E.g You can run 9 instance of Module-Stable 2.0 and 1 instance of Module-X 2.1-Alpha, test your newly deployed solution with real-time traffic. If it fails 10% traffic/ users are affected and rest all are having good time.
4> Hybrid Technologies: if you feel some functionlity of application is best developed in python, golang or want to use 3rd party api’s.
Want to introduce new feature like AI, Machine Language. I want to use AWS Lamda function, This is the way to go…
This tutorail will delve into the deep technical details.