Hi Nuria!
Much of this has been discussed before, but I'm happy to give you pointers.
On 06/12/2014 09:53 AM, Nuria Ruiz wrote:
> Hello,
>
> I came kind of late to this discussion so you guys might have already
> talked about this, please ignore if that is the case.
I think some of that is already called out. We see it very much as one of
> I see that in the goals page there is a bunch of work regarding current
> projects but there is little mentioning of the 'background work' needed to
> deploy services. It seems that the work of building the infrastructure
> should be called out explicitly.
our responsibilities to improve practices across services. We also already
have some experience with production services like Parsoid, so we are not
starting from scratch.
We are aiming for more REST and less RPC. We'll start with JSON and HTML
> For example:
>
> 1. Transport: have we chosen what is it going to be our transport protocol?
> as in json-rpc, protocol buffers...
resources, but could consider other representations later.
As stated in the goals, we'll start the first phase with simple internal
> 2. Authentication: are services for internal consumption only (and thus
> inside our firewall) or do they provide an authentication scheme?
authentication, but invest time in a proper solution later on in the fiscal,
in collaboration with platform. See
https://www.mediawiki.org/wiki/Requests_for_comment/SOA_Authentication.
Matt just set up a GELF sink feeding into logstash. Tracking requests across
> 3. Logging: How would you follow requests across services, or at least,
> follow the jump from client to server?
the infrastructure should be possible by including a unique request id in
the structured log information.
> 4.Versioning
> 5.Testing (version aware)
https://www.mediawiki.org/wiki/Requests_for_comment/Storage_service#API_versioning
https://www.mediawiki.org/wiki/Services/Roadmap#Drive_automated_service_testing
Re versioning: I'm leaning towards testing version transformations
separately from the main functionality, as it reduces the number of cases we
need to cover.
Are you more interested in discovery of internal services or external API
> 6.Client Configs, how does the client know where services are?
end points?
Are you interested in clients or mocks?
> 7.Code generation from service api descriptor
Gabriel