icon-arrow icon-check icon-mail icon-phone icon-facebook icon-linkedin icon-youtube icon-twitter icon-cheveron icon-download icon-instagram play close close icon-arrow-uturn icon-calendar icon-clock icon-search icon-chevron-process icon-skills icon-knowledge icon-kite icon-education icon-languages icon-tools icon-experience icon-coffee-cup
Werken bij Integration & Application Talents
Blog 23/03/2016

Microservices, a different SOA approach

SOA

What are microservices?

Have you heard of Microservices yet? First time I heard the word I had strong associations with a new appliation for bacterial life in food processing. Maybe my background in biochemistry got the better of me.

Actually, the Microservices Architecture (MSA) is a new sprout on the ever-growing tree of Service-Oriented Architecture concepts. The definition sounds vaguely familiar: A particular method of designing (usually complex) enterprise software applications as suites of small, independent services, communicating with each other using language-agnostic API’s.

Yes, that reminds us of the definition of a service-oriented architecture. There are many similarities. Both service types are designed to be easily replaceable, fit into a continuous delivery development process, are language-agnostic (that is, many programming languages and backends can be used in conjunction) and each service represents an element of functionality.

There is one major difference. Where a SOA focusses on integrating a multitude of enterprise applications, a  MSA consists of one application, developed as a suite of small services. The communication makes use of lightweight API’s, for instance with REST, and there is hardly any centralized management.

There are many benefits to this type of architecture. A few are mentioned here:

Independence by decoupling

With correctly decoupled services, the change of one service has minimal impact on other parts of the application

Scalability

As opposed to a “monolithic” application, microservices can be scaled individually, adapting the resource usage independently to the needs for each individual service.

Agility by diversity

Because every service has a very distinct task, the opportunity arises to create that service in the language that is most suitable for that task.

Business capability-oriented instead of siloed.

What’s often seen in software development, is that the grouping of development activities and hence the creation of teams is based on the technology layer, for instance DBA’s, frontend-developers and integration specialists. The design becomes a copy of the organization structure. MSA has a a natural tendency to create services that represent business capabilities, wherein a multidisciplinary approach is key.

Old wine in a new bottle?

Well, yes, in some ways. strong decoupling of functions is a proven technique and a very old one too. (I think UNIX here). SOA is there for some time, and we mentioned the analogies with MSA. But why not pick the strengths of every architecture, while leaving the weaknesses behind? Cross-over ideas to other disciplines, evolution in ICT architecture. Maybe my association with biochemistry wasn’t that far-fetched at all.

Overzicht blogs

Geen reacties

Geef jouw mening

Reactie plaatsen

Reactie toevoegen

Jouw e-mailadres wordt niet openbaar gemaakt.

Geen HTML

  • Geen HTML toegestaan.
  • Regels en alinea's worden automatisch gesplitst.
  • Web- en e-mailadressen worden automatisch naar links omgezet.

Wil je deel uitmaken van een groep gedreven en ambitieuze experts? Stuur ons jouw cv!