舉報

會員
Microservices with Clojure
YoushouldhaveaworkingknowledgeofprogramminginClojure.However,noknowledgeofRESTfularchitecture,microservices,orwebservicesisexpected.Ifyouarelookingtoapplytechniquestoyourownprojects,takingyourfirststepsintomicroservicearchitecture,thisbookisforyou.
目錄(222章)
倒序
- coverpage
- Title Page
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the author
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Conventions used
- Get in touch
- Reviews
- Monolithic Versus Microservices
- Dawn of application architecture
- Monolithic architecture
- Microservices
- Data management
- When to use what
- Monolithic applications to microservices
- Identifying candidates for microservices
- Release cycle and the deployment process
- Summary
- Microservices Architecture
- Domain-driven design
- Bounded context
- Identifying bounded contexts
- Organizing around bounded contexts
- Components
- Hexagonal architecture
- Messaging and contracts
- Direct messaging
- Observer model
- Service contracts
- Service discovery
- Service registry
- Service discovery patterns
- Data management
- Direct lookup
- Asynchronous events
- Combining data
- Transactions
- Automated continuous deployment
- CI/CD
- Scaling
- Summary
- Microservices for Helping Hands Application
- Design
- Users and entities
- User stories
- Domain model
- Monolithic architecture
- Application components
- Deployment
- Limitations
- Moving to microservices
- Isolating services by persistence
- Isolating services by business logic
- Messaging and events
- Extensibility
- Workflows for Helping Hands
- Service provider workflow
- Service workflow
- Service consumer workflow
- Order workflow
- Summary
- Development Environment
- Clojure and REPL
- History of Clojure
- REPL
- Clojure build tools
- Leiningen
- Boot
- Clojure project
- Configuring a project
- Running a project
- Running tests
- Generating reports
- Generating artifacts
- Clojure IDE
- Summary
- REST APIs for Microservices
- Introducing REST
- RESTful APIs
- Status codes
- Naming conventions
- Using RESTful APIs via cURL
- REST APIs for Helping Hands
- Consumer and Provider APIs
- Service and Order APIs
- Summary
- Introduction to Pedestal
- Pedestal concepts
- Interceptors
- The interceptor chain
- Importance of a Context Map
- Creating a Pedestal service
- Using interceptors and handlers
- Creating routes
- Declaring routers
- Accessing request parameters
- Creating interceptors
- Handling errors and exceptions
- Logging
- Publishing operational metrics
- Using chain providers
- Using server-sent events (SSE)
- Creating interceptors for SSE
- Using WebSockets
- Using WebSocket with Pedestal and Jetty
- Summary
- Achieving Immutability with Datomic
- Datomic architecture
- Datomic versus traditional database
- Development model
- Data model
- Schema
- Using Datomic
- Getting started with Datomic
- Connecting to a database
- Transacting data
- Using Datalog to query
- Achieving immutability
- Deleting a database
- Summary
- Building Microservices for Helping Hands
- Implementing Hexagonal Architecture
- Designing the interceptor chain and context
- Creating a Pedestal project
- Defining generic interceptors
- Interceptor for Auth
- Interceptor for the data model
- Interceptor for events
- Creating a microservice for Service Consumer
- Adding routes
- Defining the Datomic schema
- Creating a persistence adapter
- Creating interceptors
- Testing routes
- Creating a microservice for Service Provider
- Adding routes
- Defining Datomic schema
- Creating a persistence adapter
- Creating interceptors
- Testing routes
- Creating a microservice for Services
- Adding routes
- Defining a Datomic schema
- Creating a persistence adapter
- Creating interceptors
- Testing routes
- Creating a microservice for Order
- Adding routes
- Defining Datomic schema
- Creating a persistence adapter
- Creating interceptors
- Testing routes
- Creating a microservice for Lookup
- Defining the Elasticsearch index
- Creating query interceptors
- Using geo queries
- Getting status with aggregation queries
- Creating a microservice for alerts
- Adding routes
- Creating an email interceptor using Postal
- Summary
- Configuring Microservices
- Configuration principles
- Defining configuration parameters
- Using configuration parameters
- Using Omniconf for configuration
- Enabling Omniconf
- Integrating with Helping Hands
- Managing application states with mount
- Enabling mount
- Integrating with Helping Hands
- Summary
- Event-Driven Patterns for Microservices
- Implementing event-driven patterns
- Event sourcing
- Using the CQRS pattern
- Introduction to Apache Kafka
- Design principles
- Getting Kafka
- Using Kafka as a messaging system
- Using Kafka as an event store
- Using Kafka for Helping Hands
- Using Kafka APIs
- Initializing Kafka with Mount
- Integrating the Alert Service with Kafka
- Using Avro for data transfer
- Summary
- Deploying and Monitoring Secured Microservices
- Enabling authentication and authorization
- Introducing Tokens and JWT
- Creating an Auth service for Helping Hands
- Using a Nimbus JOSE JWT library for Tokens
- Creating a secret key for JSON Web Encryption
- Creating Tokens
- Enabling users and roles for authorization
- Creating Auth APIs using Pedestal
- Monitoring microservices
- Using ELK Stack for monitoring
- Setting up Elasticsearch
- Setting up Kibana
- Setting up Logstash
- Using ELK Stack with Collectd
- Logging and monitoring guidelines
- Deploying microservices at scale
- Introducing Containers and Docker
- Setting up Docker
- Creating a Docker image for Helping Hands
- Introducing Kubernetes
- Getting started with Kubernetes
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-30 19:25:10
推薦閱讀
- 社交網絡對齊
- 6G潛在關鍵技術(下冊)
- Web安全防護指南:基礎篇
- 網絡協議工程
- RCNP實驗指南:構建高級的路由互聯網絡(BARI)
- Mastering Machine Learning for Penetration Testing
- 重新定義Spring Cloud實戰
- 射頻通信系統
- Mastering Dart
- 網絡AI+:2030后的未來網絡
- 物聯網工程導論(第3版)
- Hands-On Bitcoin Programming with Python
- Hands-On Docker for Microservices with Python
- Hands-On Reactive Programming in Spring 5
- Microsoft System Center 2012 Configuration Manager:Administration Cookbook
- Telerik WPF Controls Tutorial
- 邊緣計算及其資源管理技術
- 局域網組建與維護項目教程
- Full-Stack Web Development with Vue.js and Node
- Developing Web Applications with Oracle ADF Essentials
- 5G波形設計
- 順”信”而為:信息化思維與領導力
- 軟件定義世界:云計算中心與智能運維的軟件定義解析
- 網絡綜合布線技術(Vcom)(第2版)
- 大數據環境下的物聯網系統
- 網絡文化通論(國家社科基金后期資助項目)
- 物聯網關鍵技術
- 互聯網之達芬奇密碼
- 神一樣的產品經理
- 企業遷云實戰