My thought would be to keep core microservices as single repo and single 
release.

Regards,
Adi

-----Original Message-----
From: Myrle Krantz [mailto:mkra...@mifos.org] 
Sent: 31 May 2016 18:54
To: dev@fineract.incubator.apache.org
Subject: Re: Microservices release question

Adi,

I like your approach.  So within the core set of microservices, we'd take 
solution 2 right?

Greets,
Myrle


*Myrle Krantz*
Solutions Architect
RɅĐɅЯ, The Mifos Initiative
mkra...@mifos.org | Skype: mkrantz.mifos.org | http://mifos.org 
<http://facebook.com/mifos>  <http://www.twitter.com/mifos>


On Tue, May 31, 2016 at 7:21 AM, Adi Raju <adi.r...@confluxtechnologies.com>
wrote:

> I would expect there would be X number of microservices which are 
> core/heart of the application which no deployment can do away with. I 
> would suggest these to be released as a single package/release.
>
> All other microservices should be optional based on the deployment/end 
> user requirements. They can be released individually by mentioning the 
> minimum core dependency version.
>
> This suggestion would mean multiple projects under apache fineract, 
> but I feel this is where we are heading by keeping separate repo for 
> each microservice.
>
> Regards,
> Adi
>
> -----Original Message-----
> From: Myrle Krantz [mailto:mkra...@mifos.org]
> Sent: 30 May 2016 23:43
> To: dev@fineract.incubator.apache.org
> Subject: Re: Microservices release question
>
> We should create a docker image and host it on docker hub for small 
> organisations.  These users would install docker, and run a single 
> command to start the system.  They wouldn't even have to download our 
> compiled source directly; docker does that for you.  We would need to 
> figure out how to make installing a valid certificate for their domain 
> in their docker image easy.
>
> The answer to that question for larger organisations who want to take 
> advantage of the scalability that microservices offer, particularly 
> ones which wish to adjust the code before deploying it in their 
> environments, will depend on how we answer the question I started this thread 
> with.
>
> Greets,
> Myrle
>
>
> *Myrle Krantz*
> Solutions Architect
> RɅĐɅЯ, The Mifos Initiative
> mkra...@mifos.org | Skype: mkrantz.mifos.org | http://mifos.org < 
> http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>
>
> On Mon, May 30, 2016 at 6:46 PM, Ashok <as...@confluxtechnologies.com>
> wrote:
>
> > Hi Myrle,
> >
> > Release process looks very interesting and same time highly 
> > confusing, I am wondering how small organisations or independent 
> > implementors will understand this process to carry out their 
> > implementations without much hurdles.
> >
> > Regards,
> > Ashok
> >
> > On Mon, 30 May 2016 at 7:57 PM, Myrle Krantz <mkra...@mifos.org> wrote:
> >
> > > Hi Fineract,
> > >
> > > I'm starting a new thread for a question which Roman asked in the
> > multiple
> > > repos thread.  He asked how we'd like to release if we are 
> > > dividing our code into microservices.  Assuming we want to do 
> > > clockwork releases,
> > there
> > > are three major alternatives:
> > >
> > > 1.) Release each microservice version separately, on its own 
> > > schedule,
> > > 2.) Release a set of microservices as one release which are 
> > > compatible
> > with
> > > each other, taking the newest service version from the leafs of 
> > > the dependency tree, or
> > > 3.) Release a set of microservice versions as one release which 
> > > are compatible with each other, taking the newest service from the 
> > > root of
> > the
> > > dependency tree.
> > >
> > >
> > > 2 and 3 probably require a bit more background to understand:
> > > Microservices will be dependent on each other.  For example all 
> > > services will depend on the tenant provisioning service, and on 
> > > the service for managing users and permissions.
> > >
> > > So let's say you have services A, B, and C in multiple versions 
> > > which depend on each other like this:
> > >
> > > Av1 -> {} (no dependencies)
> > > Av2 -> {}
> > > Av3 -> {}
> > > Av4 -> {}
> > >
> > > Bv1 -> Av1
> > > Bv2 -> oneOf(Av1, Av2)
> > > Bv3 -> oneOf(Av2, Av3)
> > > Bv4 -> oneOf(Av3, Av4)
> > >
> > > Service C: depends on B
> > > Cv1 -> Bv1
> > > Cv2 -> oneOf(Bv1, Bv2)
> > >
> > > In solution one, we'd release a new version of A as soon as it was 
> > > complete, even if none of the other services were updated and 
> > > still required older versions of A.
> > >
> > > In solution two, we'd release a source code tar ball containing 
> > > Cv2, Bv2, and Av2.  Even though Av3 and Av4 exists we wouldn't 
> > > include it in a release until all services were updated to be compatible 
> > > with it.
> > >
> > > In solution three we'd release a source code tar ball containing 
> > > Av4, and Bv4.  We wouldn't include any version of C because there 
> > > would be none which is transitively compatible with the latest 
> > > version of A. If C is a service which not everyone deploys, this 
> > > may
> be acceptable.
> > >
> > > What do you guys think?  Keep in mind that in Apache the release 
> > > is a source code release. It's signed and it should include all 
> > > the source code...
> > >
> > > Greets,
> > > Myrle
> > >
> > >
> > >
> > > *Myrle Krantz*
> > > Solutions Architect
> > > RɅĐɅЯ, The Mifos Initiative
> > > mkra...@mifos.org | Skype: mkrantz.mifos.org | http://mifos.org 
> > > <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
> > >
> > --
> > Regards,
> > Ashok
> >
> > Sent from mobile device
> >
>
>

Reply via email to