软件工程
Building Microservices, 2nd Edition 豆瓣
作者: Sam Newman O'Reilly Media 2021 - 7
Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings its own set of headaches. With lots of examples and practical advice, the second edition of this practical book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures.
Microservice technologies are moving quickly, and this revised edition gets you up to date with a new chapter on serverless and cloud-native applications, expanded coverage of user interfaces, more hands-on code examples, and other additions throughout the book.
Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You’ll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.
Building Secure and Reliable Systems 豆瓣 Goodreads
作者: Heather Adkins / Betsy Beyer O'Reilly Media 2020 - 3 其它标题: Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems
Can a system ever truly be considered reliable if it isn't fundamentally secure? In two previous O'Reilly books, experts from Google showed how reliability is fundamental to service design. Site Reliability Engineering and The Site Reliability Workbook demonstrated how and why a commitment to the entire service lifecycle enables organizations to successfully build, deploy, monitor, and maintain software systems.
Security is also crucial to the design and operation of scalable systems in production, as it plays an important part in product quality, performance, reliability, and availability. In a world where most products are connected to the internet, and with cloud technologies and machine learning becoming more prevalent, enabling security by default is increasingly important.
This book shares best practices to help an organization of any size design scalable and reliable systems that are fundamentally secure. It also offers insights into how teams across an organization can collaborate on security and reliability.
Specifically, you'll learn about:
Design Strategies
Implementation & Operations
Preparing for the Worst: Detection & Response
Scaling Security and the Organization
gRPC: Up and Running 豆瓣
作者: Kasun Indrasiri / Danesh Kuruppu O'Reilly Media 2020 - 2
Get a comprehensive understanding of gRPC fundamentals through real-world examples. With this practical guide, you’ll learn how this high-performance interprocess communication protocol is capable of connecting polyglot services in microservices architecture, while providing a rich framework for defining service contracts and data types.
Complete with hands-on examples written in Go, Java, Node, and Python, this book also covers the essential techniques and best practices to use gRPC in production systems. Authors Kasun Indrasiri and Danesh Kuruppu discuss the importance of gRPC in the context of microservices development.
Hands-on Smart Contract Development with Solidity and Ethere 豆瓣
作者: David H. Hoover / Randall Kanna O'Reilly Media 2019
Learn how to design, develop, and deploy smart contracts on the Ethereum blockchain. With this practical book, software developers with a high-level understanding of the blockchain will use the Solidity programming language to write decentralized applications (dApps) using the web3.js library.
Smart contracts have allowed technologists to create a new breed of software systems that have ushered in the next revolution in human organization. Kevin Solorio, Randall Kanna, and David Hoover teach you the fundamentals of Solidity, as well as key topics such as unit testing, deployment, and preventing security vulnerabilities. You'll also learn how to leverage the built-in public/private key cryptography in the Ethereum protocol.
Learn the fundamentals of how the Ethereum blockchain works
Setup a local Ethereum client using Parity
Develop and test secure smart contracts using Solidity and Vyper
Learn how to deploy smart contracts
Interact with your smart contract using Web3 (JavaScript)
Work with hands-on examples and walkthroughs of common scenarios
Distributed Tracing in Practice 豆瓣
作者: Ben Sigelman / Jonathan Mace O'Reilly Media, Inc. 2020 - 7
Most applications today are distributed in some fashion. Monitoring the health and performance of these distributed architectures requires a new approach. Enter distributed tracing, a method of profiling and monitoring applications—especially those that use microservice architectures. There’s just one problem: distributed tracing can be hard. But it doesn’t have to be.
With this practical guide, you’ll learn what distributed tracing is and how to use it to understand the performance and operation of your software. Key players at LightStep walk you through instrumenting your code for tracing, collecting the data that your instrumentation produces, and turning it into useful, operational insights. If you want to start implementing distributed tracing, this book tells you what you need to know.
You’ll learn:
The pieces of a distributed tracing deployment: Instrumentation, data collection, and delivering value
Best practices for instrumentation (the methods for generating trace data from your service)
How to deal with or avoid overhead, costs, and sampling
How to work with spans (the building blocks of request-based distributed traces) and choose span characteristics that lead to valuable traces
Where distributed tracing is headed in the future
Your Linux Toolbox 豆瓣
作者: Julia Evans No Starch Press 2019 - 8
The awesome Linux zines you love, now as a fancy box set!
Ever wished you could spy on your computer with a handy incantation or bewitch your programs to debug themselves--now you can by becoming a Linux wizard! Okay, reading these zines won't actually make you a wizard, but you'll sure feel like one after you learn some neat Linux tricks.
With this collected edition of Julia Evans's wildly popular Linux zines, you'll get super awesome repackaged versions of the zines like:
* Networking, ACK! to learn how cat pics teleport from a server to your laptop through the magic of networking
* So You Want to be a Wizard, which teaches you how to become a certified programming wizard
* Bite Size Linux to explore the nitty gritty of how signals, sockets, and virtual memory work.
* Let's Learn tcpdump! to dump all your network traffic right into your CLI
* Linux debugging tools you'll love, so you can get the scoop on things like opensnoop, netcat, and netstat
* Spying on Your Programs with strace lets you be a secret agent so you can see what programs your computer is (or isn't!) running
* Profiling & Tracing with perf teaches you how much CPU your functions are using
Through Julia's insatiable curiosity for all things technical, you'll view programming in a way you never have before--now on fancier paper!
Readings in Database Systems 豆瓣
作者: Joseph M. Hellerstein / Michael Stonebraker The MIT Press 2005 - 1
The latest edition of a popular text and reference on database research, with substantial new material and revision; covers classical literature and recent hot topics.
Lessons from database research have been applied in academic fields ranging from bioinformatics to next-generation Internet architecture and in industrial uses including Web-based e-commerce and search engines. The core ideas in the field have become increasingly influential. This text provides both students and professionals with a grounding in database research and a technical context for understanding recent innovations in the field. The readings included treat the most important issues in the database area―the basic material for any DBMS professional. This fourth edition has been substantially updated and revised, with 21 of the 48 papers new to the edition, four of them published for the first time. Many of the sections have been newly organized, and each section includes a new or substantially revised introduction that discusses the context, motivation, and controversies in a particular area, placing it in the broader perspective of database research. Two introductory articles, never before published, provide an organized, current introduction to basic knowledge of the field; one discusses the history of data models and query languages and the other offers an architectural overview of a database system. The remaining articles range from the classical literature on database research to treatments of current hot topics, including a paper on search engine architecture and a paper on application servers, both written expressly for this edition. The result is a collection of papers that are seminal and also accessible to a reader who has a basic familiarity with database systems.
Database System Concepts 豆瓣
作者: Abraham Silberschatz Professor / Henry F Korth McGraw-Hill Education 2019 - 2
Database System Concepts by Silberschatz, Korth and Sudarshan is now in its 7th edition and is one of the cornerstone texts of database education. It presents the fundamental concepts of database management in an intuitive manner geared toward allowing students to begin working with databases as quickly as possible.
The text is designed for a first course in databases at the junior/senior undergraduate level or the first year graduate level. It also contains additional material that can be used as supplements or as introductory material for an advanced course. Because the authors present concepts as intuitive descriptions, a familiarity with basic data structures, computer organization, and a high-level programming language are the only prerequisites. Important theoretical results are covered, but formal proofs are omitted. In place of proofs, figures and examples are used to suggest why a result is true.
Scaling Microservices 豆瓣
作者: Diptanu Choudhury / Cindy Sridharan O'Reilly Media 2020 - 5
Microservices have become the backbone of the largest web companies in existence today, including Netflix, Amazon, and Google. These companies run large distributed systems that span multiple datacenters and geographic regions, and this usually involves distributed schedulers, service discovery, load balancing, traffic shaping, monitoring, and logging solutions.
This practical book provides several common design patterns for building a platform around microservices at scale. Developers, software architects, infrastructure engineers, and site reliability engineers will learn about schedulers, fault tolerant remote procedure calls, distributed tracing, traffic shaping, and the role of chaos engineering in building resilient systems. You’ll be able to design a platform that can power microservices that span multiple datacenters, regions, and provide a high degree of availability on public and hybrid clouds.
You’ll explore:
The landscape of internet scale services
Guiding principles, practices, and core infrastructure components for building and scaling services on top of SOA/microservice architecture
Practices, tools, and techniques for operating large-scale microservices and distributed systems on dynamic and elastic infrastructure
Patterns and techniques for making internet services highly available and reliable, including multi-geography architectures
Mastering Distributed Tracing 豆瓣
作者: Yuri Shkuro Packt Publishing 2019 - 2
Understand how to apply distributed tracing to microservices-based architectures
Key Features
A thorough conceptual introduction to distributed tracing
An exploration of the most important open standards in the space
A how-to guide for code instrumentation and operating a tracing infrastructure
Book Description
Mastering Distributed Tracing will equip you to operate and enhance your own tracing infrastructure. Through practical exercises and code examples, you will learn how end-to-end tracing can be used as a powerful application performance management and comprehension tool.
The rise of Internet-scale companies, like Google and Amazon, ushered in a new era of distributed systems operating on thousands of nodes across multiple data centers. Microservices increased that complexity, often exponentially. It is harder to debug these systems, track down failures, detect bottlenecks, or even simply understand what is going on. Distributed tracing focuses on solving these problems for complex distributed systems. Today, tracing standards have developed and we have much faster systems, making instrumentation less intrusive and data more valuable.
Yuri Shkuro, the creator of Jaeger, a popular open-source distributed tracing system, delivers end-to-end coverage of the field in Mastering Distributed Tracing. Review the history and theoretical foundations of tracing; solve the data gathering problem through code instrumentation, with open standards like OpenTracing, W3C Trace Context, and OpenCensus; and discuss the benefits and applications of a distributed tracing infrastructure for understanding, and profiling, complex systems.
What you will learn
How to get started with using a distributed tracing system
How to get the most value out of end-to-end tracing
Learn about open standards in the space
Learn about code instrumentation and operating a tracing infrastructure
Learn where distributed tracing fits into microservices as a core function
Who this book is for
Any developer interested in testing large systems will find this book very revealing and in places, surprising. Every microservice architect and developer should have an insight into distributed tracing, and the book will help them on their way. System administrators with some development skills will also benefit. No particular programming language skills are required, although an ability to read Java, while non-essential, will help with the core chapters.
Reactive Application Development 豆瓣
作者: Duncan K. DeVore / Sean Walsh Manning Publications 2018 - 7
Modern distributed applications run in environments that may include thousands of processors, web and mobile clients, hybrid cloud deployments, and petabytes of data. The traditional patterns and practices for enterprise application development simply can't deliver the millisecond response times and near-perfect reliability these systems require. Reactive applications meet these demands by employing a loosely-coupled system of independent, isolated components that communicate via asynchronous message passing. These systems are highly responsive to changes in load, extremely fault tolerant through self-healing, and designed to elastically scale. For developers working in JVM-based systems, the Typesafe stack, anchored by the Java and Scala programming languages and the Akka toolkit and runtime, gives developers the tools to build a production-ready reactive application platform.
Rebuilding Reliable Data Pipelines Through Modern Tools 豆瓣
作者: Ted Malaska O'Reilly Media, Inc. 2019 - 7
When data-driven applications fail, identifying the cause is both challenging and time-consuming—especially as data pipelines become more and more complex. Hunting for the root cause of application failure from messy, raw, and distributed logs is difficult for performance experts and a nightmare for data operations teams. This report examines DataOps processes and tools that enable you to manage modern data pipelines efficiently.
Author Ted Malaska describes a data operations framework and shows you the importance of testing and monitoring to plan, rebuild, automate, and then manage robust data pipelines—whether it’s in the cloud, on premises, or in a hybrid configuration. You’ll also learn ways to apply performance monitoring software and AI to your data pipelines in order to keep your applications running reliably.
You’ll learn:
How performance management software can reduce the risk of running modern data applications
Methods for applying AI to provide insights, recommendations, and automation to operationalize big data systems and data applications
How to plan, migrate, and operate big data workloads and data pipelines in the cloud and in hybrid deployment models
Practical Deep Learning for Cloud and Mobile 豆瓣
作者: Anirudh Koul / Siddha Ganju O'Reilly Media 2019 - 11
Whether you’re a software engineer aspiring to enter the world of artificial intelligence, a veteran data scientist, or a hobbyist with a simple dream of making the next viral AI app, you might have wondered where do I begin? This step-by-step guide teaches you how to build practical applications using deep neural networks for the cloud and mobile using a hands-on approach.
Relying on years of industry experience transforming deep learning research into award-winning applications, Anirudh Koul, Siddha Ganju, and Meher Kasam guide you through the process of converting an idea into something that people can use in the real world. Train, optimize, and deploy computer vision models with Keras, TensorFlow, CoreML, TensorFlow Lite, and MLKit, rapidly taking your system from zero to production quality.
Develop AI applications for the desktop, cloud, smartphones, browser, and smart robots using Raspberry Pi, Jetson Nano, and Google Coral
Perform Object Classification, Detection, Segmentation in real-time
Learn by building examples such as Silicon Valley’s "Not Hotdog" app, image search engines, and Snapchat filters
Train an autonomous car in a video game environment and then build a real mini version
Use transfer learning to train models in minutes
Generate photos from sketches in your browser with Generative Adversarial Networks (GANs with pix2pix), and Body Pose Estimation (PoseNet)
Discover 50+ practical tips for data collection, model interoperability, debugging, avoiding bias, and scaling to millions of users
Presto: The Definitive Guide 豆瓣
作者: Matt Fuller / Martin Traverso O'Reilly Media 2020 - 1
Perform fast interactive SQL analytics against different data sources using the Presto distributed SQL query engine. With this practical book, you’ll learn how to conduct analytics on data where it lives, including Hive, Cassandra, relational databases, and proprietary data stores. Matt Fuller from Starburst Data and Presto cocreator Martin Traverso show analysts how to manage, use, and even develop with Presto.
Initially developed by Facebook, open source Presto is now used by Netflix, Airbnb, LinkedIn, Twitter, Uber, and many other companies. You’ll learn how a single Presto query can combine data from multiple sources to allow for analytics across your entire organization.
This book will help you:
Get started using Presto
Explore Presto architectural concepts
Learn best practices and tuning
Use Presto with various business intelligence and SQL analytical tools
Query data from different data sources, including query federation
Learn how to use Presto on Amazon Web Services, Microsoft Azure, and Google Cloud Platform
Natural Language Processing with Spark NLP 豆瓣
作者: Alex Thomas O'Reilly Media 2020 - 2
Want to build an application that uses natural language text, but aren’t sure where to start or what tools to use? This practical book gets you started with natural language processing from the basics to powerful modern techniques. Data scientists will learn how to build enterprise-quality NLP applications using deep learning and the Apache Spark distributed processing framework.
This guide includes concrete examples, practical and theoretical explanations, and hands-on exercises for NLP on Spark. You’ll understand why these techniques work from machine learning, linguistic, and practical points of view.
This book shows you how to:
Process text in a distributed environment using Spark-NLP, a production-ready library for NLP built on Spark
Create, tune, and deploy your own word embeddings
Adapt your NLP applications to multiple languages
Use text in machine learning and deep learning
JavaScript: The Definitive Guide, 7th Edition 豆瓣
作者: David Flanagan O'Reilly Media, Inc. 2020 - 4
For web developers and other programmers interested in using JavaScript, this bestselling book provides the most comprehensive JavaScript reference section on the market. The seventh edition represents a significant update, with new material for ECMAScript 2017 (ES8), and new chapters on language-specific features. JavaScript: The Definitive Guide is ideal for experienced programmers who want to learn the programming language of the web, and for current JavaScript programmers who want to master it.
Learn LLVM Core Libraries, 2nd Edition 豆瓣
作者: Dmitrii Borisenkov / Bruno Lopes Packt Publishing 2019 - 10
Overcome the steep learning curve to start effectively using LLVM libraries and tools
Key Features
Learn how to configure, build, and use LLVM and Clang based tools,
Explore the depths of the LLVM front-end, IR, code generator, and libraries, and learn how a modern compiler is implemented in a practical way,
Customize your project to benefit from Just in Time compilation (JIT), static analysis and source-to-source transformations.
Book Description
This book is intended for enthusiasts, computer developers, and compiler engineers interested in learning about the LLVM framework internals as well as for C++ software engineers keen to use compiler-based tools for code analysis and improvement. You need a background in C++ and, although not mandatory, should know at least some compiler theory. Whether you are a newcomer or a compiler expert, this book provides a practical introduction to LLVM and avoids complex scenarios. If you are interested enough and excited about this technology, then this book is definitely for you.
LLVM is a leading compiler technology framework. Easily extendable and designed as a multitude of libraries, LLVM provides a smooth experience for compiler newcomers and reduces the steep learning curve often associated with compiler development. To start, this book will show you how to configure, build, and install LLVM libraries, tools, and external projects. Next, you will be introduced to LLVM design and how it works in practice throughout each LLVM compiler stage: frontend, optimizer, and backend. The final chapters of this book will address just-in-time compilation issues. Despite initially LLVM was not designed as a JIT-compiler, high demand for dynamic languages pushed the community to implement JIT-compilation features in LLVM. The book will summarize the current state of JIT-compilation support LLVM provides.
By the end of the book, with multiple hands-on examples and source code snippets, you will be able to put a solid and smooth first step into the LLVM compiler development framework.
What you will learn
Understand LLVM compiler high-level design
Extend the compiler frontend, optimizer and backend
Use LLVM as a just-in-time compiler
Understand an architecture description with TableGen
Use compiler-based tools to improve the quality of code in a C++ project
Understand how clang based tools could help even in non-compiler development
Understand LLVM coding style and coding practice
Who This Book Is For
This book is intended for enthusiasts, computer science students, and compiler engineers interested in learning about the LLVM framework. You need a background in C++ and, although not mandatory, should know at least some compiler theory.
Mining of Massive Datasets 豆瓣
作者: Jure Leskovec / Anand Rajaraman Cambridge University Press 2014
Written by leading authorities in database and Web technologies, this book is essential reading for students and practitioners alike. The popularity of the Web and Internet commerce provides many extremely large datasets from which information can be gleaned by data mining. This book focuses on practical algorithms that have been used to solve key problems in data mining and can be applied successfully to even the largest datasets. It begins with a discussion of the map-reduce framework, an important tool for parallelizing algorithms automatically. The authors explain the tricks of locality-sensitive hashing and stream processing algorithms for mining data that arrives too fast for exhaustive processing. Other chapters cover the PageRank idea and related tricks for organizing the Web, the problems of finding frequent itemsets and clustering. This second edition includes new and extended coverage on social networks, machine learning and dimensionality reduction.
High-Performance Java Persistence 豆瓣
作者: Vlad Mihalcea VLAD MIHALCEA 2016 - 10
A high-performance data access layer must resonate with the underlying database system. Knowing the inner workings of a relational database and the data access frameworks in use can make the difference between a high-performance enterprise application and one that barely crawls.
This book is a journey into Java data access performance tuning. From connection management, to batch updates, fetch sizes and concurrency control mechanisms, it unravels the inner workings of the most common Java data access frameworks.
The first part aims to reduce the gap between application developers and database administrators. For this reason, it covers both JDBC and the database fundamentals that are of paramount importance when reducing transaction response times. In this first part, you'll learn about connection management, batch updates, statement caching, result set fetching and database transactions.
The second part demonstrates how you can take advantage of JPA and Hibernate without compromising application performance. In this second part, you'll learn about the most efficient Hibernate mappings (basic types, associations, inheritance), fetching best practices, caching and concurrency control mechanisms.
The third part is dedicated to jOOQ and its powerful type-safe querying capabilities, like window functions, common table expressions, upsert, stored procedures and database functions.