EIEIOTECHNOVATION
← Training programmes

EIEIO / PROJECT MANAGEMENT

Agile Software Development

Course outline

3 days

Duration

3 days

Overview

The advent of reactive microservice architectures and the popularity of functional programming in recent years has prompted many companies to reconsider their traditional n-tier architectures. While traditional architectures served them well in the past, scalability, availability, and performance have become more of a concern to many organizations seeking to meet the ever-growing demands of their customers. To accomplish their goals, companies must also incorporate NoSQL and Agile DevOps into their architectures, resulting in a holistic solution that emphasizes automation and scalability.

Learning Objectives

  • Understanding reactive microservices
  • Agile DevOps using Ansible, Vagrant, and Docker
  • Developing a simple microservice application in Play or ACT framework
  • Securing microservices, encrypting data at rest, and using PKI/HMAC
  • Distributed caching and making full use of the HTTP protocol (CORS, HTTP/2, HSTS, Public key pinning)
  • Common practices/Best Practices for Microservices
  • Future of web development with web components and isomorphic JS
  • SaaS and multi-tenancy in microservices
  • Testing microservices

Prerequisite

  • Some programming knowledge in an imperative or functional programming language such as Java, .NET, PHP, etc.
  • Some background in software architecture

Suggested Audience

  • Developers
  • Solution Architects
  • Software Architects

Day 1

What are microservices? (60 min)

  • Microservice architecture
  • Reactive Manifesto
  • History of Web architectures (N-tier, SOA, etc)

Building an architecture from scratch (30 min)

  • Stakeholder map
  • Business goals

BREAK (15 min)

Business Processes and Value Streams (60 min)

  • Business Process Mapping
  • Value Stream Mapping
  • Identify atomic processes
  • Define methods

Automate to reduce cycle time and increase value-added activities (60 min)

  • Brainstorming automation
  • Choosing the right technology stack
  • Forming teams
  • Consumer-driven contracts and Dependencies
  • Interface boundaries and DDD (Domain-Driven Design)

Q&A (15 min)

LUNCH (60 min)

Defining Domains and Resources (60 min)

  • Create a domain resource map
  • Specify size of resources and which persistence store they belong to
  • Document using Swagger

Creating an API – Defining routes and methods (30 min)

  • API best practices and conventions
  • CORS

BREAK (15 min)

Creating an API – Data formats (30 min)

  • HTTP/REST/JSON

Hands-on Exercise (45 min)

  • Participants will be asked to create a stakeholder map
  • Participants will be asked to create a business process and value stream
  • Participants will be asked to identify domains and resources for their business process

Day 2

What is DevOps? (60 min)

  • CI/CD
  • Versioning
  • Deployment

Agile DevOps (30 min)

  • Functional Testing
  • Stress/Load Testing
  • Security/Penetration Testing

BREAK (15 min)

Using DevOps Tools (120 min)

  • Vagrant
  • Ansible
  • Docker and Containers

Q&A (15 min)

LUNCH (60 min)

Hands-On Excercise (60 min)

  • Participants will be asked to create a Vagrant box
  • Participants will be asked to create a simple Ansible playbook
  • Participants will be asked to create a docker image

What is Cloud Computing? (30 min)

  • Virtualized instances
  • Microservices in the cloud

BREAK (15 min)

Using Cloud Computing (30 min)

  • Introduction to AWS, GCP, and Azure
  • Sample VPC in AWS

Hands-on Exercise (45 min)

  • Participants will be asked to create an AWS account
  • Participants will be asked to create a VPC
  • Participants will be asked to create an EC2 instance

Day 3

Securing microservices (30 min)

Introduction to Encryption (60 min)

  • One way encryption – hashing and HMAC
  • Two-way symmetric encryption - AES
  • Two-way asymmetric encryption – RSA and PKI
  • Use cases

BREAK (15 min)

Caching and Protocols (60 min)

  • Client-side and Server-side caching
  • HTTP protocol – Request and Response Headers
  • HTTP/2 and Pipelining

SaaS and Multi-tenancy (60 min)

Q&A (15 min)

LUNCH (60 min)

Hands-On Excercise (60 min)

  • Participants will be asked which encryption they use
  • Participants will be asked to specify their caching strategies
  • Participants will be asked to specify what request and response headers they generate

BREAK (15 min)

Testing Microservices (60 min)

  • Unit, integration, component, contract, and end-to-end testing
  • DDD (Domain Driven Development) Test pyramid

Hands-on Exercise (45 min)

  • Participants will be asked to create a web component

Programme scope, delivery arrangements and suitability are confirmed during enquiry.