Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
Introduction to Microservices
Business idea
Data collection
Linking users across sites
Rank developers
User interaction
Implementation
Development issues
Configuration and maintenance hazards
Difficult to get started
New functionality
Restart and update
Testing and deployment
Scalability
Isolation
Isolation in space
Isolation in time
Overview of application design till now
Microservices
Code example
Restructuring
What exactly are microservices
Sharing of a database
Defining microservice
Micro in microservice
Polyglot
The dark side of microservices architecture
Why Scala
Summary
Introduction to Play Framework
Quick introduction to Play 2.66
Getting started
Hello world
Structure of the Play project
Routing
Routes
HTTP POST
Actions
Auth
Templates
REST
JSON marshalling/Unmarshalling
Reading JSON
Macro to generate Reads
Generating JSON
Macro to generate Write
Play production mode
Summary
Asynchronous and Non-Blocking
Being asynchronous
Scenario 1 - synchronous
Scenario 2 - synchronous
Scenario 3 - asynchronous
Scenario 4 - waiting
Being asynchronous in Scala
ExecutionContext
Synchronous ExecutionContext
Future
Functional composition with Futures
Blocking
scala.concurrent.blocking
Non-blocking I/O
Blocking and synchronous, non-blocking and asynchronous
Work Stealing - what makes Play fast!
Scheduling improvements - 1
Scheduling improvements - 2
Work Stealing in Play
Play thread pools
Mixing synchronous and asynchronous code
Asynchronous WebService calls
Summary
Dive Deeper
Talent search engine
Project structure
The build.sbt file
Brief overview of the application
Security
Inter-microservice authentication
The auth-app microservice explained
Action.async
Brief introduction to Slick
Slick evolutions
Slick is asynchronous
The web-app microservice
The rank-app microservice
The stackoverflow-app (so-app) microservice
github-app (github-app)
The commons project
Pitfalls
Summary
Reactive Manifesto
Reactive hype?
Reactive Manifesto
Manifesto explained
Elastic
Resilience
Message-driven
Brief overview of Akka
Akka versus message brokers
Isolation
Flow control
Location Transparency
Immutability
Event driven versus message-driven
Summary
Introduction to Lagom
Why Lagom?
Brief overview of Lagom
Lagom Service API
Minimized chirper application
Anatomy of a Lagom project
Dependency injection in Lagom
API and Impl
Defining services
ServiceCall
Brief overview of Macwire
Implementing friend-impl
Akka Streams
Chirp service
Activity Stream
Frontend
Running the application
Multi project builds
Summary
CQRS and Event Sourcing
Data modelling
Bounded context
Domain-driven design
Event Sourcing
Advantages of Event Sourcing
Event
CQRS
CQRS example
Pain points with CQRS
Event Sourcing and CQRS
Conclusion
Lagom Persistence API
Getting started with setup
Managing Friends with CQRS
Command
Events
State
PersistentEntity
Implementing FriendService
Summary
Effective Communication
Isolation
Isolation - part 2
Message brokers
Apache Kafka
Conclusion
Lagom Message Broker API
Friend Recommendation
build.sbt
Friend-api
The friend-recommendation-api
Summary
Development Process
Getting to know the key ingredients
The feedback loop
Code versioning
Testing strategies
Continuous integration and deployments
Deployments
Jenkins pipelines
Jenkins pipeline - In action
Traditional deployments and machine images
Dependency versus package manager
Containers
Introducing hardware virtualization
OS-level virtualization
What do we expect from containers?
Container runtime - Docker
What made Docker a possibility?
Container images
Deployments with containers
Container concerns
Summary
Production Containers
Distributed systems and their essentials
Distributed system - definition
Reasons to distribute
Components of a distributed system
Domain name service
Server automation
What does an automation framework look like?
Infrastructure as code - Ansible
Ansible primitives
Ansible - creating a Pageview counter
Ansible cloud modules
An introduction to cluster orchestration
Kubernetes
K8s internals
API objects
Config management
K8s setup guide
K8s example app
K8s monitoring
K8s security
Network level
Service level
Certificates
Authentication
Authorization using RBAC
Caveats
Summary
Example Application in K8s
Talent search engine example
Dockerize
Creating a Docker image
Testing the Docker image
Pushing the Docker image
Deployment topology
K8s configurations
Auth-service
Installation of K8s
Deploy!
Rolling deployments
Persistent workloads
Persistent disks
Summary
← Prev
Back
Next →
← Prev
Back
Next →