Building Microservices with . NET Core 2. 0 Transitioning Monolithic Architectures Using Microservices with . NET Core 2. 0 Using C# 7. 0, 2nd Edition.: Transitioning Monolithic Architectures Using Microservices with . NET Core 2. 0 Using C# 7. 0, 2nd Edition. (2017)
- Record Type:
- Book
- Title:
- Building Microservices with . NET Core 2. 0 Transitioning Monolithic Architectures Using Microservices with . NET Core 2. 0 Using C# 7. 0, 2nd Edition.: Transitioning Monolithic Architectures Using Microservices with . NET Core 2. 0 Using C# 7. 0, 2nd Edition. (2017)
- Main Title:
- Building Microservices with . NET Core 2. 0 Transitioning Monolithic Architectures Using Microservices with . NET Core 2. 0 Using C# 7. 0, 2nd Edition.
- Other Names:
- Aroraa, Gaurav
- Contents:
- Cover -- Title Page -- Copyright -- Credits -- Foreword -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: An Introduction to Microservices -- Origin of microservices -- Discussing microservices -- Monolithic architecture -- Service-Oriented architecture -- What is a service? -- Understanding the microservice architecture -- Messaging in microservices -- Synchronous messaging -- Asynchronous messaging -- Message formats -- Why should we use microservices? -- How does the microservice architecture work? -- Advantages of microservices -- SOA versus microservices -- Prerequisites of the microservice architecture -- Understanding the problems with the monolithic architectural style -- Challenges in standardizing a .NET stack -- Fault tolerance -- Scaling -- Vertical scaling or scale up -- Horizontal scaling or scale out -- Deployment challenges -- Organizational alignment -- Modularity -- Big database -- Prerequisites for microservices -- Functional overview of the application -- Solutions for current challenges -- Handling deployment problems -- Making much better monolithic applications -- Introducing dependency injections -- Database refactoring -- Database sharding and partitioning -- DevOps culture -- Automation -- Testing -- Versioning -- Deployment -- Identifying decomposition candidates within monolithic -- Important microservices advantages -- Technology independence -- Interdependency removalCover -- Title Page -- Copyright -- Credits -- Foreword -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: An Introduction to Microservices -- Origin of microservices -- Discussing microservices -- Monolithic architecture -- Service-Oriented architecture -- What is a service? -- Understanding the microservice architecture -- Messaging in microservices -- Synchronous messaging -- Asynchronous messaging -- Message formats -- Why should we use microservices? -- How does the microservice architecture work? -- Advantages of microservices -- SOA versus microservices -- Prerequisites of the microservice architecture -- Understanding the problems with the monolithic architectural style -- Challenges in standardizing a .NET stack -- Fault tolerance -- Scaling -- Vertical scaling or scale up -- Horizontal scaling or scale out -- Deployment challenges -- Organizational alignment -- Modularity -- Big database -- Prerequisites for microservices -- Functional overview of the application -- Solutions for current challenges -- Handling deployment problems -- Making much better monolithic applications -- Introducing dependency injections -- Database refactoring -- Database sharding and partitioning -- DevOps culture -- Automation -- Testing -- Versioning -- Deployment -- Identifying decomposition candidates within monolithic -- Important microservices advantages -- Technology independence -- Interdependency removal -- Alignment with business goals -- Cost benefits -- Easy scalability -- Security -- Data management -- Integrating monolithic -- Overview of Azure Service Fabric -- Summary -- Chapter 2: Implementing Microservices -- Introduction -- C# 7.0 -- Entity Framework Core -- Visual Studio 2017 -- Microsoft SQLServer -- Size of microservices -- What makes a good service?. DDD and its importance for microservices -- Domain model design -- Importance for microservices -- The concept of seam -- Module interdependency -- Technology -- Team structure -- Database -- Master data -- Transaction -- Communication between microservices -- Benefits of the API gateway for microservices -- API gateway versus API management -- Revisiting the Flix One case study -- Prerequisites -- Transitioning to our product service -- Migrations -- Code migration -- Creating our project -- Adding the model -- Adding a repository -- Registering the repositories -- Adding a product controller -- The ProductService API -- Adding EF core support -- EF Core DbContext -- EF Core migrations -- Database migration -- Revisiting repositories and the controller -- Introducing ViewModel -- Revisiting the product controller -- Adding Swagger support -- Summary -- Chapter 3: Integration Techniques and Microservices -- Communication between services -- Styles of collaboration -- Integration patterns -- The API gateway -- The event-driven pattern -- Event sourcing -- Eventual consistency -- Compensating transactions -- Competing consumers -- Azure Service Bus -- Azure queues -- Implementing an Azure Service Bus queue -- Prerequisites -- Sending messages to the queue -- Adding configuration settings -- Receiving messages from the queue -- Summary -- Chapter 4: Testing Microservices -- How to test microservices -- Handling challenges -- Testing strategies (testing approach) -- Testing pyramid -- Types of microservice tests -- Unit testing -- Component (service) testing -- Integration testing -- Contract testing -- Consumer-driven contracts -- How to implement a consumer-driven test -- How Pact-net-core helps us achieve our goal -- Performance testing -- End-to-end (UI/functional) testing -- Sociable versus isolated unit tests -- Stubs and mocks -- Tests in action. Getting ready for the test project -- Unit tests -- Integration tests -- Consumer-driven contract tests -- Summary -- Chapter 5: Deploying Microservices -- Monolithic application deployment challenges -- Understanding the deployment terminology -- Prerequisites for successful microservice deployments -- Isolation requirements for microservice deployment -- Need for a new deployment paradigm -- Containers -- What are containers? -- Suitability of containers over virtual machines -- Transformation of the operation team's mindset -- Containers are new binaries -- Does it work on your machine? Let's ship your machine! -- Introducing Docker -- Microservice deployment with Docker overview -- Microservice deployment example using Docker -- Setting up Docker on your machine -- Prerequisites -- Creating an ASP.NET Core web application -- Summary -- Chapter 6: Securing Microservices -- Security in monolithic applications -- Security in microservices -- Why won't a traditional .NET auth mechanism work? -- JSON Web Tokens -- What is OAuth 2.0? -- What is OpenID Connect? -- Azure Active Directory -- Microservice Auth example with OpenID Connect, OAuth 2.0, and Azure AD -- Registration of TodoListService and TodoListWebApp with Azure AD tenant -- Generation of AppKey for TodoListWebApp -- Configuring Visual Studio solution projects -- Generate client certificates on IIS Express -- Running both the applications -- Azure API management as an API gateway -- Rate limit and quota policy example -- Container security -- Other security best practices -- Summary -- Chapter 7: Monitoring Microservices -- Instrumentation and telemetry -- Instrumentation -- Telemetry -- The need for monitoring -- Health monitoring -- Availability monitoring -- Performance monitoring -- Security monitoring -- SLA monitoring -- Auditing sensitive data and critical business transactions. End user monitoring -- Troubleshooting system failures -- Monitoring challenges -- Scale -- DevOps mindset -- Data flow visualization -- Testing of monitoring tools -- Monitoring strategies -- Application/system monitoring -- Real user monitoring -- Semantic monitoring and synthetic transactions -- Profiling -- Endpoint monitoring -- Logging -- Logging challenges -- Logging strategies -- Centralized logging -- Using a correlation ID in logging -- Semantic logging -- Monitoring in Azure Cloud -- Microsoft Azure Diagnostics -- Storing diagnostic data using Azure storage -- Using Azure portal -- Specifying a storage account -- Azure storage schema for diagnostic data -- Introduction of Application Insights -- Other microservice monitoring solutions -- A brief overview of the ELK stack -- Elasticsearch -- Logstash -- Kibana -- Splunk -- Alerting -- Reporting -- Summary -- Chapter 8: Scaling Microservices -- Scalability overview -- Scaling infrastructure -- Vertical scaling (scaling up) -- Horizontal scaling (scaling out) -- Microservice scalability -- Scale Cube model of scalability -- Scaling of x axis -- Scaling of z axis -- Scaling of y axis -- Characteristics of a scalable microservice -- Scaling the infrastructure -- Scaling virtual machines using scale sets -- Auto Scaling -- Container scaling using Docker Swarm -- Scaling service design -- Data persistence model design -- Caching mechanism -- CacheCow -- Azure Redis Cache -- Redundancy and fault tolerance -- Circuit breakers -- Closed state -- Open state -- Half-Open state -- Service discovery -- Summary -- Chapter 9: Introduction to Reactive Microservices -- Understanding reactive microservices -- Responsiveness -- Resilience -- Autonomous -- Message-driven: a core of reactive microservices -- Let's make code reactive -- Event communication -- Security -- Message-level security -- Scalability. Communication resilience -- Managing data -- The microservice ecosystem -- Coding reactive microservices -- Creating the project -- Communication between the application and the database -- Client -- coding it down -- Summary -- Chapter 10: Creating a Complete Microservice Solution -- Architectures before microservices -- The monolithic architecture -- Challenges in standardizing the .NET stack -- Scaling -- Service-oriented architecture -- Microservice-styled architecture -- Messaging in microservices -- Monolith transitioning -- Integration techniques -- Deployment -- Testing microservices -- Security -- Monitoring -- Monitoring challenges -- Scale -- Component lifespan -- Information visualization -- Monitoring strategies -- Scalability -- Infrastructure scaling -- Service design -- Reactive microservices -- Greenfield application -- Scoping our services -- The book-listing microservice -- The book-searching microservice -- The shopping-cart microservice -- The order microservice -- User-authentication -- Synchronous versus asynchronous -- The book-catalog microservice -- The shopping-cart microservice -- The order microservice -- The user-authentication microservice -- Summary -- Index. … (more)
- Edition:
- 2nd ed
- Publisher Details:
- Birmingham : Packt Publishing Ltd
- Publication Date:
- 2017
- Copyright Date:
- 2017
- Extent:
- 1 online resource (295 pages)
- Subjects:
- 005.1
Computers -- Programming Languages -- C#
Computers -- Software Development & Engineering -- Tools
Computer programming / software development
Programming & scripting languages: general
Application software -- Development
Microsoft .NET Framework - Languages:
- English
- ISBNs:
- 9781788399968
- Related ISBNs:
- 178839996X
9781788393331 - Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.253497
- Ingest File:
- 04_015.xml