Win a copy of Terraform in Action this week in the Cloud forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Rob Spoor
  • Bear Bibeault
Saloon Keepers:
  • Jesse Silverman
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Al Hobbs
  • salvin francis

How we design microservice application?

 
Ranch Hand
Posts: 472
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Good day,

I'm new to Microservice, may i know is there any good guidance on this topic and any sample code on this? I try google but most of the page mentioned on concept only..I'm interest on how service can communicate to another service ..

thanks ahead!

 
Author and all-around good cowpoke
Posts: 13078
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I found this quote:

the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.



This sounds to me like just another buzzword trying to get traction in programmer's minds.

Trying to create components which can be connected together in various ways has a long history in programming. Sort of a reaction to the problems of huge monolithic programs which contained so many complex inter-dependencies that the were really hard to understand, much less debug.

As an example, I once tried to maintain a Fortran program having 4000 lines in the main routine and only 400 in subroutines. Yuck.

OF course, object oriented programming OOP (ie Java, Smalltalk, c++) is an attempt to create a conceptual framework that lets you build small, well validated, chunks of code that can work as a service. The importance of convenient communication between chunks is reflected in the old Sun slogan "the network is the computer" - Java has lots of communication mechanisms.

So I don't think "microservices" are much of a break from the best OOP practices.

Bill
 
Ranch Hand
Posts: 10198
3
Mac PPC Eclipse IDE Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Have a look here: http://microservices.io/
 
Nakata kokuyo
Ranch Hand
Posts: 472
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Joe and William!

the site mentioned by Joe is very good starting point to understand better on Microservices.
 
Author
Posts: 25
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Nakata kokuyo wrote:Good day,

I'm new to Microservice, may i know is there any good guidance on this topic and any sample code on this? I try google but most of the page mentioned on concept only..I'm interest on how service can communicate to another service ..

thanks ahead!



Hi Nakata,

I think Martin Fowler & James Lewis' article on the subject is a good place to go for a more detailed introduction on the topic. My book also goes into this topic in detail - both talking about how to find the boundaries, and how to pick the right sort of integration approach/technology.

William Brogden wrote:I found this quote:
So I don't think "microservices" are much of a break from the best OOP practices.



Hi William,

You're not the first person to make that observation! There are *some* aspects of good OOP that absolutely do make sense in the world of microservices - seeking high cohesion and low coupling for example. But there are a host of complexities inherent in distributed systems (CAP Theory, distributed transactions, latency, service discovery, fault tolerance, load balancing) on which OOP has nothing much to say. In fact if you just see these architectures as just OOP in the large, and don't take into account all these other forces, you could be in for trouble (see also Martin Fowler's 1st Rule Of Distributed Systems, and his Microservice-oriented followup from this year). Arguably, the UNIX philosophy has more baring on how we think about these architectures, but even then leaves out many things that have to be considered.

Many people also call microservices SOA done right. I have no objections with that. They represent a set of practices/principles which come from our improved understanding of building distributed systems/SOA etc, and take advantage of new technology that makes old ideas more practical.

They very much build on what comes before - I did a talk on this very topic, where I point out that, amongst other things, Parnas was on to something back in the 70s!
reply
    Bookmark Topic Watch Topic
  • New Topic