OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

soa-rm message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [soa-rm] Microservices re-use?

Ken, Martin,

This is turning into an interesting conversation, and one that needs to be made outside of the app provider/paas context. Their self-interest tends to get in the way. I think that's why our ongoing work on SOA is relevent and, to use Ken's metaphor, the kitchen may need to be remodeled.

I think the key issues revolve around ownership boundaries and governance, hence the difficulty with maintaining data integrity across concurrent micro-service iterations housed in containers in differing execution contexts, ie. public v. private clouds, inter-enterprise infrastructure, governmental systems. I can foresee data service providers coming into existence to service these cross-environment apps/microservices that use common datasources.

I also look forward to hearing from a micro-services developer.


On 5/30/2016 8:50 PM, Martin Smith wrote:
Ken -- Always good to open the aperture: referring to your idea of moving the app to the data, etc. 

However.  You identified one requirement for making this work: very robust config/patch/revision control to keep all the copies of the code in synch.  Not trivial.  

Backing further up the development process I think there's another hard problem: where do the requirements for the micro-service come from? Is the motivation for someone to make a micro-service to meet the needs of a single, specific containerized application? If so, it seems a remote possibility that that specification would closely meet the needs of other applications. Result: minimal re-use, unless the whole application is copied. (I admit I am assuming what provides the motivation for creation of a micro-service.) 

I keep thinking: how does someone creating a micro-service differ from someone adding a new function to an open-source project on Github? The latter seems more valuable both because it's likely to be written in contemplation of re-use by others, and also the code is probably more efficient because it probably uses in-process communication vs. sockets. 

Looking forward to hearing from a micro-services developer!!


PS--Also just starting to noodle around with AWS Lambda ("serverless" framework.) 

On Fri, May 27, 2016 at 4:45 PM, Ken Laskey <klaskey@mitre.org> wrote:
Doing a bit more reading, a consideration could be whether it is easier to move the data to the processing or the processing to the data.

In our work on describing SOA, we assumed crossing ownership boundaries was a critical part of the paradigm: the consumer used services where they were offered rather than having a private copy.  Part of the rationale was that private copies held by consumers (who were effectively also forcing themselves to be providers) often meant enumerable modified copies that became one-of-a-kind albatrosses to maintain.  Under the SOA paradigm, the consumer and provider interacted under agreed upon terms (the execution context) with neither under the other’s control.  (What control really existed before is another topic for discussion.)

But with VMs and containers, we should be able to manage exact copies, including making sure the copies have a known, controlled configuration.  So now if I generate terabytes of data a day, it may be more efficient to bring the processing to the data rather than the data to the processing.  My configuration management makes sure the “manifest” for the new VM/container is up to date at all needed locations, and things like applications needing to be deployed are already pre-staged to any place that may need that application.

What does this say about deploying on-premise infrastructure vs. cloud vs. what combination?  What SOA principles are still useful to guide us?  The house of the SOA paradigm may still basically function but it may need to have the kitchen remodeled.

Dr. Kenneth Laskey
MITRE Corporation, M/S F510          phone: 703-983-7934
7515 Colshire Drive                           fax: 703-983-1379
McLean VA 22102-7508

On May 25, 2016, at 10:58 AM, Martin Smith <bfc.mclean@gmail.com> wrote:

This is a request for input on how re-use is accomplished in the microservices world.  Please provide info or comment via this list or via the public comment list for this TC:  soa-rm-comment@lists.oasis-open.org 

Please also pass this request to others in your network who may have microservices implementation experience.

In the April 13, 2016, meeting of the TC there was a discussion of comparison of characteristics of SOA architecture/design principles vs. "microservices" architecture (with specific reference to NIST Special Publication 800-180 (DRAFT) NIST Definition of Microservices, Application Containers and System Virtual Machines  of Feb 2016.) 

One issue discussed was how re-use is accomplished in a microservices-style implementation.  

It was suggested that the NIST SP seemed to imply that a microservice instance is confined inside a single container. If so, this would be a significant distinction from an “SOA-style” service, in that it would mean that the only way a microservice could be re-used outside the container would be to copy the code and run an entirely separate instance in another container or elsewhere. This “confinement” also implies that microservces are not “multi-user” (or “multi-tennant”) whereas multi-tenant capability might be considered an intrinsic characteristic of SOA-style services. These apparent characteristics of microservices would seem to give away most of the potential efficiencies of a scaleable, easily maintainable shared service.

Can anyone with microservices implementation experience explain how re-use is accomplished in this architectural style?  


Martin F Smith, Principal
BFC Consulting, LLC
McLean, Va 22102

Martin F Smith, Principal
BFC Consulting, LLC
McLean, Va 22102
703 506-0159
703 389-3224 mobile

Rex Brooks
Starbourne Communications Design
Email: rexb@starbourne.com
1361 Addison St. Apt. A
Berkeley, CA 94702
Phone: 510-898-0670 

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]