[okfn-help] The Future of Our Tech Infrastructure: RFC

John Bywater john.bywater at appropriatesoftware.net
Fri Apr 16 12:22:48 BST 2010


Hi Rufus,

Thanks for picking up the service oriented initiative I started!

My comments:

1. The well-trodden concept of "service orientation" (and the included 
subject of SOA) is set out in this (and other) books, which, having seen 
TFOOTI I would strongly recommend you buy and read:
[1] http://www.cambridge.org/catalogue/catalogue.asp?isbn=0521843367

2. TFOOTI conflicts in purpose, but does not reference, two already 
existing Wiki pages:

(a) The Asset Inventory is the keystone of any service orientated 
effort. It is the "well known" repository for all service-related docs:
[2] http://knowledgeforge.net/okfn/tasks/wiki/AssetInventory

(b) The Service Oriented Architecture policy document is the overarching 
policy document for the design of service-oriented services. It already 
contains most of the questions that remain to be answered (but TFOOTI 
hardly contains any of the answers):
[3] http://knowledgeforge.net/okfn/tasks/wiki/ServicesPolicy

3. "Unix philosophy" does not pertain to service orientation. That's a 
level error. To be specific, the central distinction of service 
orientation is not singularisation. Service orientation is also not 
primarily the object-oriented doctrine of high cohesion and low coupling 
(but that isn't excluded). Instead, service orientation is about 
satisfaction: of a service level agreement which has "agreed 
expectations for the measurable levels of service a provider must 
achieve and terms of use that a customer must comply with". In other 
words, services and users must adequate to a set of expectations, but 
neither services nor users are restricted to having only one purpose. In 
respect of service design, it's an inappropriate and unhelpful doctrine, 
and I recommend removing the statement.

4. The purpose of service oriented architecture is neither reaping 
economies of scope and scale, nor simplifying internal architecture, nor 
following the "Unix philosophy". Rather, the purpose of service oriented 
architecture (SOA) consists in both conditioning individual service 
designs and bridging the two main areas of service orientated activity: 
  service level management (SLM) and service execution management (SEM). 
For brevity, descriptions of SLM and SEM are beyond the scope of this email.

5. The diagram of "Service Architecture" doesn't make sense to me on two 
levels:

Firstly, it appears to be an arrangement of services, so it would be 
better to denote it as a Service Design. As indicated, service oritented 
architecture is about conditioning service designs and bridging SLM and 
SEM. It is constituted of the concerns I have set out in [3] above. 
Service design determines a specification of service (SoS), which may 
involve an arrangement of services. Hence...

Secondly, if it is a service design, then I don't understand why it 
resembles an n-tier software design (with interface, middleware, 
persistence). A service dependency diagram wouldn't look like that. 
Perhaps it's some other kind of diagram, one I'm not familiar with?


6a. RFC what? There is neither an RFC number nor an OKF RFC process. Why 
use "RFC" when it's just a draft and you just want some comments?

6b. Infrastructure what? If your infrastructure is physical and 
organisational structures which are critical to the operation of the 
OKF, then not all OKF infrastructure is provided by the OKF (e.g. you 
use train and telephone systems) and not all services provided by the 
OKF are infrastructural (e.g. you provide services to others). So, 
presuming TFOOTI is "doing one thing and one thing well" either it's 
concerned with securing OKF infrastructure or it's concerned with how to 
sustain quality services. I recommend cutting it like this: firstly 
establish how to sustain quality services; then use this approach to 
secure quality infrastructure.



That's probably enough for now. :-)

Best wishes,

John.




Rufus Pollock wrote:
> Useful associated diagram:
> <http://knowledgeforge.net/okfn/tasks/wiki/ServiceArchitecture>
> (Source version of this text at [1])
> 
> The Future
> ==========
> 
> Having developed, deployed and maintained apps and services at the
> OKFN for the last 5 1/2 years we are not at a point of relative
> maturity and I think it is time to take stock of where we are and look
> to the future.
> 
> We currently support more than 10 production or semi-production
> application services (apps or app services from hereon) as well as
> lots of bleeding edge development. The majority of these apps are OKFN
> projects but we also do some service provision to others.
> 
> It appears likely that both internal and external demand is only
> likely to grow. Furthermore, there is some important re-architecting
> we can do that both ease our ability to scale and significantly
> improve the app development process by providing key base services
> (see below) in a standardized way.
> 
> Our aim: solid, scalable infrastructure on which to develop the open
> knowledge application "stack"
> 
> Some Observations on the World at Present
> =========================================
> 
>   * We are in a world in which hardware/bw are **cheap** and rented
>   * Larger machines are cheaper per compute unit than smaller machines.
>   * Clear economies of scope across projects and services
>   * Many application services require a common a set of 'base'
> services/infrastructure ranging from file storage to the full-text
> search.  While each of these can be provided as part of the individual
> app (i.e. by integrating search software into the app) it is
> increasingly attractive to provide these at the **service** level.
>   * In general, we (and others) are moving towards a more
> "service-oriented" architecture in which different services are
> integrated together
> 
> Service-oriented architecture
> =============================
> 
> **Aim:** Reap benefits of economies of scope and scale, simplify our
> internal architecture, and follow the UNIX philosophy (each tool
> (service) does one thing and one thing well).
> 
> Key base services provided:
> 
>   * Bare-metal machines
>   * Relational databases: mysql and postgresql
>   * RDF: 4store
>   * Keyvalue: redis + mongo (couchdb?)
>   * Filestorage (?): more than bare-metal machines
>   * Messaging and job queue: celery + redis + rabbitmq
>   * Indexing: solr + xapian (?)
>   * Mailing lists: lists.okfn.org
>   * MX: mail exchange but no mail accounts
> 
> For each of these we deliver:
> 
>   * Provisioning and availability
>   * Backup
>   * Redeployment from backup
> 
> General architecture for a application service detailing its use of
> key base services is shown in diagram here:
> 
> <http://knowledgeforge.net/okfn/tasks/wiki/ServiceArchitecture>
> 
> Appendix: The Unix Philosophy
> =============================
> 
> See unix-philosophy.txt
> 
> [1]: <http://knowledgeforge.net/okfn/sysadmin/file/b9c53a5e1765/doc/future-of-infrastructure.txt>
> 
> _______________________________________________
> okfn-help mailing list
> okfn-help at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/okfn-help




More information about the okfn-help mailing list