About the course:
Our instructor-led Microservices with Docker training course will give you hands-on experience designing and creating flexible and scalable services for your enterprise applications using this cornerstone containerisation technology platform.
You'll learn how to plan, build and implement streamlined services, in the form of lightweight containers which will allow you to modularise an otherwise monolithic architecture and take a more Agile approach to your enterprise / deployment architecture.
The course is suitable for all comers, with example code available to demonstrate microservices built on Java, Node.js, GoLang, and .NET Core. We'll cover software installation during the course so you just need to bring yourself and your laptop and an absorbent mind.
Does your whole team need to gain experience of designing and managing your microservices architecture? We would love to discuss your requirements as an in-house / remote training course might be the best option. Whether you are deploying in the cloud and / or on-premises, we can can take into account your tech stack, use cases and business domain in order to deliver a cost-effective and highly relevant tailored course. Get in touch to find out more.
Learning outcomes
- Microservices Fundamentals
- The architecture of a Microservice
- Obtaining and Deploying the Docker platform
- How to model Microservices
- Integrating multiple Microservices
- Testing Microservices
- Going live
- Maintaining healthy Microservices
- Microservices Security
- Scaling up your Microservices
Useful resources
Who should attend
This course is aimed at SysAdmins and Developers who wish to develop and deploy Microservices.
Prerequisites
Delegates should have some understanding of systems architecture and design. Experience of administering Linux or Windows servers may also be useful. Some basic editing of code will happen during the course, so experience with a language such as Java, C#, C++ would be advantageous.
Live, instructor-led online and on-site training
We appreciate that you need flexibility to fit in with new working situations - whether you're an individual, part of a distributed team, or simply have projects and deadlines to meet.
Our remote training can take place online in a virtual classroom, with content split into modules to accommodate your scheduling challenges and meet your learning goals. Get in touch today to find out how we can help design a cost-effective, flexible training solution.
As soon as it's safe, we'll return to also offering the on-site custom training courses and programmes upon which we've built our reputation.
Course syllabus
Microservices Fundamentals
- How did we get here
- What’s in a name
- What is a Microservice Architecture
- What is a Microservice
- Benefits of Microservices
- Downsides of Microservices
- Use Cases for Microservices
Introducing Docker
- What is a Container
- What is Docker
- Alternatives to Docker
- The Evolution of Containers
- Hypervisor Virtual Machines
- How containers work
- Containers and Microservice Architectures
Getting Started with Docker
- Prerequisites
- Installing Docker – Native Linux
- Installing Docker – Other Operating Systems
- Docker Toolbox
- Docker Machine Basics
- Running your first Container
Developing a Microservice
- Spring Boot
- Template Microservice
- Docker
Dockerfile
- Dockerfile
- Instructions and images
- FROM
- RUN
- Building Images
- The Build Context
- Adding files to an Image
- Executing Commands
- Specifying an Entrypoint
Docker Port Mapping
- Multi Container Hosting
- Automatic Port Mapping
- Specific Port Mapping
Deployment Patterns
- Service instance per host
- Multiple service instances per host
- Service instance per VM
- Service instance per container
Communication Patterns
- API Gateway
- Partial Failures
- Circuit Breaker
Service Discovery Patterns
- Client Side Discovery
- Server Side Discovery
- Service Registry
- Self Registration
- 3rd Party Registration
Data Management Patterns
- Shared Database
- Database per Service
- Event Driven Architecture
- Event Sourcing
- Transaction Log Tailing
- Database Triggers
- Application Events
- CQRS
Docker Hub
- What is Docker Hub
- Creating an account
- Creating a Repository
- Markdown Format
- Pushing an Image
Integrating Multiple Microservices
- Keep it simple
- Avoid Breaking Changes
- Sync and Async
- Logging
- Docker Logging
Microservices Security
- Kerckhoff’s Principle
- Shannon’s Maxim
- Security through obscurity
- General Security Considerations
- Middleware Security Considerations
- Edge Services Security Considerations
- Web and Other Client Security Considerations
- People and Process Security Considerations
REST Interfaces to Microservices
- What is a RESTful Web service?
- HTTP verbs
- HTTP response codes
- Versioning Strategy
- Richardson Maturity Model
- Example scenario
- Key Principles of RESTful Web Services
- Using JAX-RS
Other Interfaces to Microservices
- Protocol Buffers
- Web Sockets
Asynchronous Requests
- Message Brokers
- JMS
- AMQP
- STOMP
- Point to Point
- Publish – Subscribe
Software Development Process
- Speed over Efficiency
- Test Your Assumptions
- High Freedom, High Responsibility
- Conway’s Law
- Continuous Integration
- Continuous Delivery / Deployment
- DevOps
- Deliver Early, Deliver Often
- Immutable Infrastructure