Designing and Deploying Micro-services using Cloud Foundry
Join us for a deep dive into the nuances of breaking a large complex system into smaller independently scalable MicroServices. This will be a hands on workshop that will introduce you to the MicroServices ecosystem.
MicroServices as an architecture pattern does not guarantee characteristics such as composability, maintainability, resiliency and fault tolerance. It only facilitates our thinking around these aspects better. We will be sharing the design principles that we have learned and applied to achieve these characteristics.
In this workshop we will be building a Cloud Native MicroServices application from the ground up. In the process will be introducing below concepts and discuss advantages, disadvantages, alternative approaches etc.
- Gateway/edge services
- Service discovery
- Load balancing
- Inter-service communication and protocols
- Circuit breaker pattern
We will be using SpringBoot to build the application and Pivotal Cloud Foundry to deploy the same. However the concepts are platform agnostic.
All code samples will be available on GitHub. Please feel free to bring your laptops and join us for the ride.
Outline/Structure of the Workshop
- Iteration 0
- Introduction to problem statement
- Design exercise
- Iteration 1
- Starting with a service
- Deploying to Pivotal Cloud Foundry
- Iteration 2
- Deploying multiple services to Pivotal Cloud Foundry
- Iteration 3
- Introducing a Gateway with Zuul
- Iteration 4
- Adding service discovery with Eureka
- Iteration 5
- Authenticating requests at gateway
- Iteration 6
- Circuit Breaker with Hystrix
- Monitoring with Hystrix Dashboard
- Iteration 7
- Consuming APIs with Feign
- Client side load balancing with Ribbon
- Iteration 8
- Autoscaling services
- Q & A
Each iteration will be 5 to 10 min in duration.
- A practitioner's approach to building MicroServices
- Design principles that help break down complex systems into small, independently scalable MicroServices
- Avoiding MicroServices design pitfalls
- Objective look at concepts such as gateways, service registry, auto-scaling and circuit breaker. Is there merit to these fancy terms.
Software Architects, Technical Leaders and anyone interested in MicroServices and Cloud Native Application Architecture.