
Building Microservices with .NET Core
Beschreibung
Alle Preise
Weitere Details
Person
Soumya has a great experience in Software Test Automation using professional tools like QTP, QC, LoadRunner, Jmeter, Neoload GreenHat and with Open Source Tools like Selenium RC & Webdriver with Java.Net Python Ruby, FitNess, JMeter, SoapUI, TestNG, ReportNG, JUnit, Cucumber & Capybara, Tosca & Perfecto. He has developed a Test Automation web based framework for selenium Automation and also developed solution for IOS / Android based application automation. Agile Practitioner, Mentor team's to use Open Source Technologies. He is currently the co-founder of QAAgility Technologies where he does application development using JAVA Springs/PHP/C#,.Net, MySQL, SQL Server, JBoss/IIS, jQuery/Angular JS, Restful Service, Jasper Reports, XML. He has trained People at Thomson Reuters, Wells Fargo, Barclays, Capgemini, Aricent, Lnt Infotech, Ness Technologies, Qatar Petroleum and some more. in.linkedin.com/pub/soumya-mukherjee/3/3b3/247 Aroraa Gaurav :
Gaurav Aroraa is a serial entrepreneur and start-up mentor. He has done an M.Phil in computer science. He is a Microsoft MVP award recipient. He is a lifetime member of the Computer Society of India (CSI), is an advisory member and senior mentor at IndiaMentor, is certified as a Scrum trainer/coach, is ITIL-F certified, and is PRINCE-F and PRINCE-P certified. He is an open source developer and a contributor to the Microsoft TechNet community. Recently, Gaurav was awarded "Icon of the year excellence in Mentoring Technology Startups" for 2018-19 by Radio City, a Jagran initiative, for his extraordinary work during his 22-year career in the industry in the field of technology mentoring.Kale Lalit :
Lalit Kale is a technical architect and consultant with more than 12 years of industry experience. Lalit has helped clients achieve tangible business outcomes through the implementation of best practices in software development. He is a practitioner of TDD and DDD, and a big believer in agile and lean methodologies. He has worked with several organizations, from start-ups to large enterprises, in making their systems successful, be it in-house or mission critical, with clients in the USA, the UK, Germany, Ireland, and India. His current interests include container technologies and machine learning using Python. He holds a bachelor's degree in engineering (IT).Kanwar Manish :
Manish Kanwar completed his masters of science in computer applications from MD University, India, and is a cofounder of Innatus Curo Software LLC, with a presence in India. He has been working in the IT industry across domains for the last 17 years. He started exploring.NET right from the first release and has been glued to it ever since. His range of experience includes global wealth management (financial service industry, USA), life insurance (insurance industry, USA), and document management system (DMS), ECMS, India. Manish does his bit for the community by helping young professionals through the IndiaMentor platform.
Inhalt
- Cover
- Copyright
- Credits
- Foreword
- About the Authors
- About the Reviewers
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: What Are Microservices?
- Origin of microservices
- Discussing microservices
- Monolithic architecture
- Service-oriented architecture
- What is 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 problems with the monolithic architecture 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
- Summary
- Chapter 2: Building Microservices
- 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 case study--Flix One
- 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
- Summary
- Chapter 3: Integration Techniques
- Communication between services
- Styles of collaborations
- Integration patterns
- The API gateway
- The event-driven pattern
- Event sourcing
- Eventual consistency
- Compensating Transaction
- Competing Consumers
- Azure Service Bus queues
- Implementation of an Azure Service Bus queue
- Prerequisites
- Sending messages to the queue
- Receiving messages from the queue
- Summary
- Chapter 4: Testing Strategies
- 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 with the test project
- Unit tests
- Integration tests
- Summary
- Chapter 5: Deployment
- 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
- It works on your machine? Let's ship your machine!
- Docker quick introduction
- Microservice deployment with Docker overview
- Microservice deployment example using Docker
- Setting up Docker on your machine
- Creating an ASP.NET web application
- Adding Docker Support
- Summary
- Chapter 6: Security
- Security in monolithic applications
- Security in microservices
- Why traditional .NET auth mechanism won't 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
- Step 1 - Registration of TodoListService and TodoListWebApp with Azure AD tenant
- Step 2 - Generation of AppKey for TodoListWebApp
- Step 3 - Configuring Visual Studio solution projects
- Step 4 - Generate client certificates on IIS Express
- Step 5 - Run both the applications
- Azure API management as an API gateway
- Container security
- Other security best practices
- Summary
- Chapter 7: Monitoring
- 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
- Monitoring strategies
- Logging
- Logging challenges
- Logging strategies
- Centralized logging
- Use of 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
- Scalability overview
- Scaling infrastructure
- Vertical scaling (scaling up)
- Horizontal scaling (scaling out)
- Microservices scalability
- Scale Cube model of scalability
- X-axis scaling
- Z-axis scaling
- Y-axis scaling
- 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
- Redundancy and fault tolerance
- Circuit breakers
- Service discovery
- Summary
- Chapter 9: Reactive Microservices
- What are reactive microservices?
- Responsiveness
- Resilience
- Autonomous
- Being message-driven
- Making it reactive
- Event communication
- Security
- Message-level security
- Scalability
- Communication resilience
- Managing data
- The microservice ecosystem
- Reactive microservices - coding it down
- Creating the project
- 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 auth microservice
- Summary
- Index
Systemvoraussetzungen
Dateiformat: ePUB
Kopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an.
Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.
Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.
Dateiformat: PDF
Kopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist.
Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.
Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.