Skip to main content

Building MicroServices! Real Fun...

I have been coding for more than 25 years and used more than 18 different programming languages (and the framework each is good and strong at) spanning every programming style from simple scripting, procedural to objected oriented to dynamic, functional (more attractive to Software Engineering community these days). Let me confess, every time I switched to new language or style I always felt “Oh, hope I also had that”. Trust me no language is complete; no style is perfect. So only way to feast your programming appetite is try something different which gives the flexibility. I honestly think, MicroServices style of application is the one that gives the needed flexibility.

It is not said and done. We need a more pragmatic answer to the question “Why it is fun?” In my experience, the biggest challenge in designing & building software systems is that of the identification of all the bit and pieces of the jigsaw puzzle. As we know, it is never easy to identify the position of any piece when we start. We get more clarity as we start putting the bits together. But still we do the mistake of attempting to design a software system upfront in a big piece (most of the core and add additional functionality to the core which is not expandable incurring more and more technical debt). Ideally what we need is a model or mechanism through which we can identify and build smaller components and put them together with great ease. This is why we use lean agile process. But what is the use of an agile process when our engineering approach is monolithic. This is where Micro-services approach rocks.

Micro-services are small building blocks of the application which can be put together to build the complete application functionality. Keep building smaller components and weave them together. Need a new functionality? Build and deploy a new micro-service. This simple change in perception of developing application provides the flexibility of evolving the application architecture and design as we find more and more pieces of the jigsaw. This helps us in practicing the true agility in software engineering right from design and architecture, not just code development cycles.

Developing smaller blocks eases the pressure of coding and maintaining application modules. Smaller code footprints reduces dev/test/release cycles. Helps in quickly identify and fix bugs. Quickly address business process changes as we can quickly build and deploy a new service without having to fiddle with existing code.

Also, micro-services are completely independent of each of other interfacing through messages. This improves application cohesion and helps in scalability. This not only means each can have their dev and ops cycles but also they can have their own technical stack providing completely technical freedom. No challenge of deciding the completely technical stack upfront, application design dictated by technology, tech stack lock downs, challenges in getting right and enough technical resources to dev and maintain etc.,


Moreover, micro services also help in controlling the technical debt.

Comments

Popular posts from this blog

Just Buzz... Where is AI?

Speaking to Recode’s Kara Swisher and MSNBC’s Ari Melber, Pichai said AI is “one of the most important things that humanity is working on. It’s more profound than, I don’t know, electricity or fire,” adding that people learned to harness fire for the benefits of humanity, but also needed to overcome its downsides, too. Pichai also said that AI could be used to help solve climate change issues, or to cure cancer. We are seeing some exciting things in the industry, Samsung’s massive 8K TVs apparently use AI to upscale lower resolution images for the big screen. Sony has created a new version of the Aibo robot dog, which this time promises more artificial intelligence. Travelmate’s robot suitcase will use AI to drive around and follow its owner wherever they go.  Kohler has invented Numi, a toilet that has Amazon’s Alexa voice assistant built in etc., But despite all this, it does leave me wondering: is artificial intelligence really what we should be calling this revolution? Bec

Feasting your programming appetite with microservices

I have been coding for more than 25 years and have used more than 18 different programming languages (and their associated frameworks), spanning every programming style from simple scripting to procedural, to objected-oriented, to dynamic and functional — which is more attractive to the software engineering community these days. Let me confess, every time I switch to a new language or style I always think, “Oh, hope I can also do  that .” Trust me, no language is complete; no style is perfect. So, the only way to feast your programming appetite is to try something different which gives more flexibility. I honestly think the microservices style of application is the one that best delivers that needed flexibility…and the fun that most of us are seeking. Read complete blog at HyperThink of CSC Ingenious Minds

Effective Pattern Identification Model for DDoS Attack Detection

Abstract: Distributed Denial of Service (DDoS) attacks are one of the major challenges to Internet community. Attackers send legitimate packets with often changing information from various compromised systems at random and at a very high frequency, rendering the target non-responsive for normal traffic. DDoS attacks are difficult to detect with traditional detection methods and standard Intrusion Detection Systems (IDS). Standard IDS tries to analyze the network traffic or system logs trying to identify emerging patterns on the network traffic. But due to randomness of the package origins it is difficult segregate true, false positive and normal traffic. This paper proposes a model based on Artificial Neural Networks to identify anomalies and detect DDoS patterns. In the proposed system sets of known characteristic features, which can separate attacks from normal traffic, are fed to the system to train the Artificial Neural Networks (ANN). This self learn system improves with each n