Designing and Implementing Distributed, Service Based Architectures

Duration: 3 Days

Course Overview

This three day seminar will take the attendees through the tools and processes needed to be able to efficiently design and implement a micro service or distributed system architecture.

Each offering provides a mixture of seminar and lab with a full project being designed and built throughout the whole offering. The teachings are, as far as possible, language agnostic; where code examples were needed they would be simple and available in at least two languages.

How can I attend my course?

On-line from
your chosen location

At our dedicated
training facility

On-site at
your premises

Course Content

Day One:

• The first day teaches students to break a monolithic requirement into a set of micro service or distributed services, in particular aimed at an efficient Restful API and focused on the creation of product based services.
• These services would be simple in the product they supplied as the focus is on the creation of them rather than their internal capabilities.
The students will understand the reason and boundaries for breaking a large design into a set of inter-communicating system. This will include such ideas ranging from the simple, e.g. ‘chunky’ versus ‘chatty’ systems through to the more sophisticated, e.g. the role of CAP or Brewers theorem in modern systems.
• Day one would explore the benefits of AWS support for autoscaling and the relevance of asynchronous communication and how it is treated in current distributed systems, this would use AWS SQS as an example message bus.

Day Two:

• The second day allows students to design and implement interactions with the services using a set of patterns aimed at micro services and distributed systems, e.g. Aggregator, Mediator, Circuit Breaker, Chained and Proxy.
• Significant focus will be placed on the need to design for failure.
• The day will also revolve around caching and the various ways of handling this in a distributed system including the popular EHCache, memcache and Redis mechanisms.
• The storage of caches would naturally lead onto material about eventual consistency data stores and the various types of NoSQL products that support this.
• Datastores investigated would include MongoDB, Redid, HBase.

Day Three:

• The third day allows students to deploy systems to container based environments, in particular Docker.
• These systems would be deployed both individually, within Docker instances and then to allow scale and interaction using Docker Swarm and Compose.
• The final part  of the last day will focus on other possibilities for the provision of a distributed system based architecture based on ideas such as Event Condition Action (ECA) structured systems using a variety of mechanisms ranging from AWS SNS through to the more recent AWS Lambdas.

Further Information:

• As far as possible the days are be broken into a 60:40 or 50:50 ratio of teach to lab.
• The teach material will be a mix of theory, live demos and ‘chalk and talk’ sessions.
• The lab work will be available in a choice of languages (Java, PHP and Scala).

You will receive a full set of course notes
and all supporting materials for your course.

Hard Copy Delivered to your premises or Downloaded to a chosen device.

To book this course please call 
+44 (0) 1444 410296 or email Info@kplknowledge.co.uk