O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Modern Linux Administration

Book Description

With Early Release ebooks, you get books in their earliest form—the author's raw and unedited content as he or she writes—so you can take advantage of these technologies long before the official release of these titles. You'll also receive updates when significant changes are made, new chapters are available, and the final ebook bundle is released.

If you want to excel in your work as a Linux administrator, or perhaps land a job as one, you need this book. The amount of knowledge and expertise required of Linux administrators has grown tremendously over the past 10 years. Today you need an amazing variety of skills, several of them very new.

This book provides developers, enterprise architects, and site reliability engineers with a sound introduction to bleeding-edge Linux-based tools and technologies for both development and production environments. If you already know Linux administration basics, author Sam Alapati will help you explore and evaluate tools for virtualization, cloud and big data, configuration management and continuous delivery, and operations monitoring.

Topics include:

  • Scalability, web applications, web services, and microservices
  • Server virtualization, Linux containers, and Docker containers
  • Automating server deployment and managing development environments
  • Infrastructure as code, configuration management, and orchestration tools
  • Version control and source code management
  • Continuous integration, continuous delivery, and continuous deployment
  • Centralized log management and analysis, and streaming data

Table of Contents

  1. Preface
    1. Who Should Read This Book
    2. Why I Wrote This Book
    3. A Word on the New Technologies that are critical for Linux Administrators Today
    4. Navigating This Book
    5. Conventions Used in This Book
    6. Using Code Examples
    7. Safari® Books Online
    8. How to Contact Us
    9. Acknowledgments
  2. 1. Modern Linux System Administration
    1. Problems with Traditional Systems Administration
      1. Monitoring
      2. The Image Sprawl problem
      3. Agile Development Methodologies and the System Administrator
      4. Cloud environments
      5. Impact of Big Data
      6. Manual Operations without automation
    2. Automated Infrastructure Management
      1. Infrastructure as code
      2. Automating Redundant Work with Configuration Management Tools
      3. Automatic Server Deployment
      4. Provisioning: Spinning up virtual environments
    3. Server (hardware) Virtualization
      1. Types of Hardware Virtualization
      2. Benefits of virtualization
    4. Containerization – the new Virtualization
      1. LINUX CONTROL GROUPS
      2. NAMESPACES
    5. Docker and Containerization
      1. Docker Container Orchestration and Distributed Schedulers
      2. FLEET
      3. KUBERNETES
      4. SWARM
    6. Cluster Management and Cluster Operating Systems
    7. Distributed operations and remote command execution tools
    8. Version Control Systems
      1. Centralized Version Control Systems
      2. Distributed Version Control Systems
    9. Continuous Integration and Continuous Deployment
      1. Continuous Application deployment
      2. Tools for Implementing Continuous Integration
      3. Automatic Build Tools
    10. Log Management, Monitoring and Metrics
    11. Proactive Monitoring
    12. Cloud Computing
      1. What Cloud Computing is all about
      2. CLOUD CHARACTERISTICS
      3. CLOUD DEPLOYMENT MODELS
      4. CLOUD SERVICE MODELS
    13. The Rise of NoSQL Databases
    14. Modern Scripting Languages
    15. Microservices, Service Registration and Service Discovery
      1. Benefits of Microservices
      2. Service Discovery
      3. Service Registration
    16. Modern Infrastructure security concerns
    17. Performance Tuning, and Site Reliability Engineering
  3. 2. Networking Essentials for a System Administrator
    1. What the internet is
      1. Packets
      2. Packet Switches
      3. Applications and APIs
      4. Network Protocols
      5. Network Messages and Message Formatting
    2. Networking Essentials – Theory and Practice
      1. Breaking up the real work into layers – the OSI Model
      2. Protocol Layering
      3. The Internet Protocol Stack
    3. The Network Layer and TCP/IP Networking
      1. The Forwarding Function
      2. Routing Essentials and Routing Management
    4. The Hypertext Transfer Protocol (HTTP)
      1. Using the HTTP/2 Protocol for Enhanced Performance
    5. Network Load Balancing
      1. Benefits of Using a Network Load Balancer
      2. Load Balancing with DNS
      3. Enterprise Load Balancers
      4. Software Based Load Balancing
      5. Hardware Load Balancing
      6. Using a Hosted Load Balancer Service
    6. Modern Networking Technologies
      1. Quality of Service (QoS)
      2. Quality of Experience (QoE)
      3. Routing and Network Congestion Control
      4. Software-Defined Networking
      5. Limitations of current networks
      6. The three “Planes’ in Networking
      7. Defining Functions for the Network Control Plane
      8. Network Functions Virtualization
      9. The OpenFlow Protocol
  4. 3. Scalability, Web Applications, Web Services, and Microservices
    1. Scaling and Common Datacenter Infrastructures
      1. The Front End Technologies
      2. The Back End Technologies
      3. Scalability of Applications
      4. Content Delivery Networks
      5. How large websites scale
    2. Scaling Web Applications
      1. Managing state at the front end
      2. Other Types of State
      3. Scaling the Web Services
      4. Making Effective use of Third-party services
    3. Working with Web Servers
      1. Working with the Apache Web Server
      2. The NGINX Web Server
      3. Caching Proxies and Reverse Proxying
    4. Handling Data Storage with Databases
      1. Relational databases
      2. Other Types of Databases
      3. MongoDB as a Backend Database
    5. Caching
      1. HTTP-Based Caching (Browser caching)
      2. Caching Objects
    6. Asynchronous Processing, Messaging Applications and MOM
      1. Messages and Message Queues
      2. Components of a Messaging Architecture
      3. Message Brokers and Message Oriented Middleware (MOM)
      4. Messaging Protocols
      5. Popular Message Brokers
    7. The Model-View-Controller Architecture and Single Paged Applications
      1. The Problem
      2. MVC to the Rescue
      3. Ruby on Rails
      4. Full stack JavaScript Development with MEAN
      5. Single Page Applications – the new Paradigm for Web Applications
    8. Web Services
    9. Web Service Basics
      1. Simple Object Access Protocol (SOAP)
      2. Two Types of Web Services
    10. Service-Based Architectures and Microservices
      1. Similarities between traditional SOAs and the Microservice approach
      2. Differences between SOA and Microservices
      3. Service Types
  5. 4. Server Virtualization and Linux Containers
    1. Linux Server Virtualization
      1. The Architecture of Virtual Machines
      2. The Virtual Machine Monitor (Hypervisor)
      3. How VMs share Resources
      4. Benefits offered by Virtual Machines
      5. Drawbacks of Virtualization
      6. Virtualization Types
      7. Type of Hypervisors
      8. Xen Virtualization
      9. Kernel-Based Virtual Machines (KVM)
      10. Considerations in Selecting the Physical Servers for virtualization
      11. Migrating Virtual Machines
    2. Application Deployment and Management with Linux Containers
    3. Chroot and Containers
    4. Applications and their Isolation
      1. Virtualization and Containerization
      2. Benefits offered by Linux Containers
      3. Two Types of Uses for Linux Containers
    5. The Building Blocks of Linux Containers
      1. Namespaces and Process Isolation
      2. Control Groups (cgroups)
      3. SELinux and Container Security
      4. Linux Containers versus Virtualization (KVM)
      5. Linux Containers and KVM Virtualization – the Differences
      6. Limitations of LXC
      7. Container benefits
      8. Linux Container Adoption Issues
      9. Managing Linux Containers
  6. 5. Working with Docker Containers
    1. Docker Basics
      1. When Docker Isn’t Right for You
      2. What Docker Consists of
      3. The Docker Project
      4. Docker Images and Docker Containers
      5. What Linux Administrators should know in order to support Docker
    2. Setting up the Docker Container Run-Time Environment
      1. Getting Information about the Containers
    3. Running Container Images
      1. Managing Containers
      2. Running Interactive Containers
      3. Making your base Image Heftier
      4. Committing a Container
      5. Running Commands within a Container
      6. Linking Containers
      7. Running Services inside a Container
      8. Running Privileged Containers
    4. Building Docker Images
      1. Building Images with a Dockerfile
      2. Image Layers
    5. Docker Image Repositories
      1. Using a Private Docker Registry
    6. New Operating Systems Optimized for Docker
      1. Using CoreOS
      2. Working with Atomic Host
    7. The Docker Stack in Production
      1. Provisioning Resources with Docker Machine
      2. Docker Orchestration
      3. Docker Orchestration and Clustering Tools
      4. Distributed Schedulers for Docker Containers
    8. Docker Containers, Service Discovery and Service Registration
      1. Connecting Containers through Ambassadors
      2. How Service Discovery Works
      3. Zero-Configuration Networking
      4. Service Discovery
      5. Service Registration
  7. 6. Automating Server Deployment and Managing Development Environments
    1. Linux Package Management
      1. Using the rpm and dpkg commands
      2. Package Management with YUM and APT
    2. Fully Automatic Installation (FAI)
      1. How FAI Works
      2. How it Works
      3. Setting up the Network Server
      4. Setting up the PXE Server for a Network Installation
      5. Using Kickstart
    3. Automatically Spinning up Virtual Environments with Vagrant
      1. Some Background
      2. Vagrant and its Alternatives
      3. Getting Started with Vagrant
      4. Spinning up a New VM
      5. The Vagrantfile
      6. Vagrant Box
      7. Provisioning Vagrant Boxes
      8. Automated Provisioning
      9. Creating Vagrant Base Boxes
      10. Using Packer and Atlas for creating base boxes
    4. Parallel Job-Execution and Server Orchestration Systems
      1. Working with Remote Command Execution Tools
      2. Server Provisioning with Razor
      3. Server Provisioning with Cobbler
  8. 7. Infrastructure as Code, Configuration Management and Orchestration Tools
    1. Infrastructure as Code
      1. Benefits of Treating Infrastructure as Code
      2. Cloud Environments and Infrastructure as Code
      3. Tools for Treating Infrastructure as Code
      4. Test-Driven Infrastructures
    2. Configuration Management Automation
      1. Need for Configuration Management Tools
      2. Declarative Versus Imperative Programming
    3. Configuration Management with Chef
      1. Chef’s Architecture and Key Components
      2. Writing Chef Recipes
      3. Using Test Kitchen to Manage Test Environments
      4. Using Chef Client to Manage Nodes
    4. Using Puppet for Configuration
      1. Installing Puppet
      2. Puppet Manifests
      3. Creating Puppet Modules
      4. Using a Puppet Server
    5. Server Provisioning and Orchestration with Salt
      1. Architecture of Salt – the Basics
      2. Examples of Salt usage
      3. Grains and Pillars
      4. Basic Salt Commands
      5. Execution Modules
      6. Salt States and Configuration Management
    6. Using Ansible for CM, Orchestration, and Provisioning
      1. How Ansible is Different from the other CM Tools
      2. The Guts of Ansible
      3. How Playbooks Work
      4. Modules
      5. Inventories Describe your Infrastructure
  9. 8. Version Control and Source Code Management
    1. Version Control - An Introduction
      1. Types of Version Control Systems
      2. Revision Control and Infrastructure Management
      3. Why Use Source Control?
    2. Our First Foray into the World of Git
    3. Introduction to Git
      1. What Sets Git Apart from other CVS Systems?
    4. Creating Local Repositories with Git
      1. Creating a Repository
      2. Checking the Repository Status
      3. Checking the Logs and the Status of a Repository
    5. Staging and Committing Files
      1. Committing Multiple Files
      2. Cloning Repositories
      3. Remote Git
    6. The Git Branching Model
      1. Creating Branches
      2. Merging Branches
      3. Resolving Conflicts
    7. Setting up Git on a Server – Hosting Git Repositories
      1. Multiple Protocols
      2. Setting up a Git Server
      3. Enterprise Deployment of Git
      4. Tools for Managing Git Repositories
    8. Using GitHub
      1. Setting up your Account
      2. The GitHub Workflow
  10. 9. Continuous Integration, Continuous Delivery, and Continuous Deployment
    1. Builds and Deployment
    2. How Build Tools Help – Maven, Ant and Gradle
      1. The Maven Build Tool
      2. Using Ant to Perform Builds
      3. Using Gradle as a Build Tool
    3. An Overview of the Software Development Process
      1. The Software Development Life Cycle
      2. Following the Waterfall Model of Development
      3. The Agile Software Development Process
      4. The Scrum Framework
      5. The Agile Software Development Process and Continuous Integration
    4. Continuous Integration (CI)
      1. The CI Process
      2. Problems Detected by CI
      3. Building Software at Every Change
      4. Benefits of a CI System
      5. Best Practices for CI
      6. Requirements for a CI System
      7. Features of a CI System
      8. A Typical CI Scenario
    5. Continuous Delivery
      1. CD and CI
      2. The Build (or Deployment ) Pipeline
      3. Continuous Delivery and DevOps
    6. Continuous Integration with Jenkins
      1. Architecture of Jenkins
      2. Components of the Jenkins Framework
      3. Jenkins and other Continuous Integration Tools
      4. The Need for a Binary Repository Tool
    7. A Typical Continuous Integration Strategy using Jenkins
      1. Branching strategies
      2. Creating the Continuous Integration Pipelines
      3. Continuous Delivery with Jenkins
      4. Continuous Deployment with Jenkins
    8. Continuous Integration with TeamCity/GO
  11. 10. Centralized Log Management and Analysis, and Handling Streaming Data
    1. Introduction to Logging and Its Issues
      1. What is a Log?
      2. Varieties of Log Data
      3. Issues in Performing Log Analysis
      4. Centralizing Logs with Syslog
      5. Using Rsyslog for Logging
      6. SYSLOG-NG
      7. Rotating Logs with Logrotate
    2. Log Aggregation
      1. Possible Strategies
      2. Log Aggregation Workflow
      3. Log Aggregation Alternatives
    3. Effective Log Management and Log Analysis with ElasticSearch, Logstash, and Kibana
      1. Searching Engines and Indexing - Elasticsearch
      2. Basic Concepts of ElasticSearch
      3. Understanding the ElasticSearch APIs
      4. Elasticsearch Marvel and Shield
    4. Logstash
      1. Logstash Plugins
      2. Logstash under the Hood
      3. The Logstash Workflow
      4. Configuring Logstash – Some Examples
    5. Kibana
    6. A Simple Example Showing How ELK Works
      1. The Input Data
      2. Configuring the Logstash Input
      3. Using ElasticSearch in a Production Setting
    7. Log Analysis with Splunk
      1. Scaling and High Availability
      2. Working with Data
      3. Using the Splunk Processing Language
      4. Advanced Analytics with Log Files
      5. Splunk versus ELK
      6. Saas solutions for Logging –Sumologic and Loggly
    8. Handling Streaming Data
    9. Apache Kafka
      1. Benefits offered by Kafka
      2. Kafka Architecture
      3. How Kafka Works
  12. 11. 11. System Monitoring, Event Processing, and Tracking Application Performance
    1. Monitoring – an Overview
      1. How Monitoring is generally done
      2. Need for New Monitoring Tools
      3. Do-it-yourself Versus using External Monitoring Services
      4. Monitoring and the Mean Time to Recovery
      5. How Metrics and Logs can help Proactive Behavior
      6. Different Types of Metrics
      7. Metric Tracking across Multiple Services
      8. Devops and Monitoring
    2. Time Series Databases
      1. Using Cacti
      2. Using Librato
      3. Graphite
      4. Components of Graphite
      5. Statistics and Transformations
    3. Event Processing Tools
      1. Riemann
      2. Big Panda
    4. System Monitoring
      1. Nagios
      2. Ganglia
      3. Using Munin
      4. Using Collectd
      5. Using Sensu
    5. Web and User Monitoring
      1. Synthetic Monitoring
      2. Real User Monitoring
      3. Using Synthetic Monitoring and RUM Together
      4. Pingdom
    6. Application Performance Monitoring (APM) Suites
      1. New Relic APM
    7. DynaTrace
      1. AppDynamics
      2. A Quick Comparison of New Relic, Dynatrace, and AppDynamics
    8. On-Call Management Tools
  13. 12. Enterprise Infrastructure-as-a-Service Using Openstack
    1. What is OpenStack?
      1. How OpenStack Abstracts Resources
      2. What Openstack Offers You
      3. Trying out OpenStack with DevStack
      4. How you Perform Operations with OpenStack
      5. OpenStack as a Managed Service
      6. OpenStack Node Types
      7. OpenStack Shared Services
      8. OpenStack Deployment Tools
    2. OpenStack Services
      1. OpenStack Logical Structure
      2. Compute Services
      3. Hypervisors
      4. Segmenting your Cloud
      5. How the Compute Service is Architected
      6. Images and Instances
    3. OpenStack Storage
      1. Object Storage (Swift)
      2. Block Storage (Cinder)
      3. Creating the Operating System
      4. Choosing a Storage Backend
    4. Cloud Orchestration with OpenStack heat
      1. Heat Templates and Ubuntu Juju
      2. Autoscaling your Cloud
    5. Identity Services with Keystone
      1. Basic Key Keystone Concepts
      2. The Tenant Model
    6. OpenStack Networking
      1. Public Addressing
      2. Flat Networks and Traditional Networks
      3. Types of Network Traffic
    7. The Database Service and the Data Processing Service
    8. OpenStack High Availability
      1. HA and the Type of Service
      2. HA Deployment Architectures
      3. Scaling your Infrastructure
    9. Telemetry Service (Ceilometer)
    10. Monitoring OpenStack
      1. Service Status Checks
      2. API Checks
  14. 13. Cloud System Administration – A Crash Course on Amazon Web Services
    1. What is Amazon Web Services?
      1. MANAGING THE AWS INFRASTRUCTURE COMPONENTS
    2. Renting Computing Resources by the Hour – Elastic Compute Cloud (EC2)
      1. Use Cases for EC2
      2. How AWS Bills for Its Services
    3. AWS Instances and Images
      1. Instance Types
      2. AWS Regions and Availability Zones
      3. IMAGES (AMAZON MACHINE IMAGES)
      4. Launching an Instance
      5. AWS INSTANCE TYPES
      6. AMAZON EC2 INSTANCE FEATURES
      7. Reducing your cost with Reserved Instances and Spot Instances
    4. Managing Storage in AWS
      1. Instance Storage (Amazon EC2 Instance Store)
      2. Amazon Elastic Block Store
      3. Amazon S3
      4. Amazon Glacier
      5. Which Storage Type Should You Use?
    5. Databases in the Amazon Cloud – RDS, Aurora, DynamoDB, and Redshift
      1. Amazon RDS – A Managed Relational Database Service
      2. Amazon Aurora
      3. DynamoDB - Amazon’s NoSQL Database
      4. Amazon Redshift
    6. AWS and Data Analytics
    7. AWS Networking and the Amazon Virtual Private Cloud (VPC)
      1. How AWS uses Virtual Private Networks
      2. Amazon Route 53
    8. Security with AWS Identity and Access Management
    9. RedHat CloudForms
      1. How a Cloud Management platform differs from Openstack
    10. Programming the AWS Infrastructure – Various Ways
      1. Configuring AWS from the Command Line
      2. Programming with an SDK
      3. CloudFormation and Infrastructure as Code
    11. Automating Application Deployment
      1. Using AWS CloudFormation and Shell Scripts
      2. Using Elastic Beanstalk to Deploy Simple Web Applications
      3. Deploying Multilayered Applications with OpsWorks
    12. Ensuring High Availability – AWS CloudWatch, Availability Zones, and Auto-Scaling
      1. AWS CloudWatch for Effective Monitoring
      2. Recovering from a Data Center Outage with Multiple Availability Zones
      3. Using AWS Auto Scaling to Run a Constant Number of Servers
      4. Elastic Load Balancing
    13. Computing without any Infrastructure
      1. AWS Lambda and Microsliced, Serverless Computing
      2. AWS Batching for Batch Computing Jobs
    14. Beginner’s Mistakes when Moving to AWS
      1. Reducing Exposure to Outages
      2. Avoiding Problems through Efficient Monitoring and Setting up Alerts
      3. Preventing waste through a Continuous Utilization Review
      4. Avoiding over Provisioning of Resources by taking advantage of Elasticity
      5. Adopting the most suitable EC2 Pricing Model
      6. Paying Attention to the Services in the “Other” Category
      7. Leaving the Lights On
      8. Overdoing the EBS Snapshots
      9. Learning Which Services Carry a Charge
  15. 14. Big Data, Data Science, Apache Hadoop, and Apache Mesos
    1. Drawbacks of Traditional Database Systems
      1. Unstructured Data and the Growth of Data Analytics
      2. Scaling out versus Scaling Up
      3. How Hadoop solves the Problems with Traditional Databases
    2. Hadoop as a Big Data Operating System
      1. Hadoop and the Distributed Computing Model
      2. Unique Capabilities of Hadoop
      3. Big Data and Hadoop
      4. A Typical Scenario for Using Hadoop
      5. Large Datasets and Hadoop
    3. Hadoop Clusters
      1. Master and Worker Nodes
      2. Hadoop Services
    4. Hadoop Architecture
      1. Data Storage—the Hadoop Distributed File System
      2. APACHE ZOOKEEPER
      3. FUNCTIONS OF THE DATANODES
    5. The HDFS File System
      1. File System Organization
      2. HDFS Data Formats
      3. Data Replication
      4. WebHDFS
    6. Data Processing with YARN, the Hadoop Operating System
      1. Architecture of YARN
      2. YARN Containers—How YARN Allocates Resources
      3. The ResourceManager
    7. The Hadoop Ecosystem
    8. Distributed Data Processing: MapReduce and Spark, Hive and Pig
      1. MapReduce
      2. Apache Spark
      3. Apache Hive
      4. Apache Pig
    9. Data Integration: Apache Sqoop, Apache Flume and Apache Kafka
    10. Typical Hadoop Administrative Tasks
      1. Managing the Cluster Storage
      2. Allocating the Cluster Resources
      3. Scheduling Hadoop Jobs
    11. Securing Hadoop Data
      1. DEFAULT SECURITY
      2. KERBEROS
      3. APACHE SENTRY
      4. APACHE RANGER
      5. APACHE KNOX
      6. Big Data and Data Science
    12. Apache Mesos and the Idea of an Application-Centric Data Center
      1. The Fundamental Idea behind Mesos
      2. Dynamic Allocation of Resources Vs Static Partitioning of Resources
      3. Mesos Architecture
      4. Key Mesos Concepts
      5. How Mesos Does its Work
      6. Ensuring Fault Tolerance and High Availability
      7. Types of Environments Suitable for Mesos
      8. Virtual Machine Based Vs Container Based Application Deployment
      9. Ways to Deploy Applications in a Mesos Cluster
      10. Mesosphere DCOS – Enterprise Mesos Distribution
    13. The Rise of No-SQL Databases and Apache Cassandra
      1. SQL and Transactions
      2. Web Scale and the Need for NoSQL Databases
      3. Relational Databases and the Issue of Scaling
      4. NoSQL Databases to the Rescue
      5. An Introduction to Apache Cassandra
      6. WHERE CASSANDRA IS A GOOD FIT
      7. THE CASSANDRA DATA MODEL
  16. 15. Security and Compliance in the Modern Systems Environment
    1. DevOps, Microservices, and Security
      1. Security and Continuous Delivery
      2. Why Security Should be an Early Concern when building Applications
      3. Infrastructure as Code and Security
      4. Securing Microservices
    2. Docker Security
    3. Reducing the Docker Daemon Attack Surface
      1. Using SELinux and AppArmor
      2. Using Secure Docker Images
    4. Zero Trust Networks
    5. Drawbacks of the Perimeter Security Model
    6. How Zero Trust Networking seeks to Strengthen Security
    7. Implementing Zero Trust Networks – Automation as the Key
    8. Key Components of a Zero Trust Network
    9. Security in the Cloud
      1. The Shared Security Responsibility Model
      2. Common Cloud Security Threats
      3. Cloud Security - It’s a Dance.
      4. Security in the Cloud – How AWS Does It
      5. AWS Service-Specific Security
    10. Big Data and Security – How to Secure hadoop
      1. Securing Hadoop
      2. Authentication through Kerberos
      3. Authorization in Hadoop
    11. Securing Hadoop Data
    12. Web Application Security
      1. The OWASP Top 10
      2. INJECTION
      3. BROKEN AUTHENTICATION AND SESSION MANAGEMENT
      4. CROSS-SITE SCRIPTING
      5. INSECURE DIRECT OBJECT REFERENCE
      6. SECURITY MISCONFIGURATION
      7. SENSITIVE DATA EXPOSURE
      8. MISSING FUNCTION LEVEL ACCESS CONTROL
      9. CROSS-SITE REQUEST FORGERY
      10. USING COMPONENTS WITH KNOWN VULNERABILITIES
      11. UNVALIDATED REDIRECTS AND FORWARDS
      12. Testing Web Application Security
      13. OWASP Proactive Security Controls
  17. 16. New Computing Environments, Site Reliability Engineering, and Modern Linux Performance Tuning
    1. Learning from Failure
      1. Chaos Engineering
      2. Graceful Degradation
      3. The Circuit Breaker Pattern
      4. Graceful Failover versus Self-Healing Systems
      5. Blameless Postmortems
      6. GOOGLE’S POST MORTEM CULTURE
    2. Reliable Systems, Data Intensive Systems, and Partial failures
      1. Data Intensive Applications
      2. An Advantage of a Distributed system – Partial Failures
      3. Google’s SRE Model – Going from a Software Engineer to an Operations Expert
      4. An Alternative SRE Model – Operational experts acquiring additional programming skills
    3. Understanding and Tuning Java Performance – JVM and Java Applications
      1. Tuning Java Performance
      2. Tuning the Java Virtual Machine
      3. Java Performance Monitoring Tools
      4. Setting Java Tuning Flags
      5. Java Profiling Tools
      6. Java Mission Control
      7. Garbage Collection and JVM Performance – A Primer
      8. The importance of the GC Log
      9. THREADING AND SYNCHRONIZATION AND JAVA PERFORMANCE
      10. The Four Key Metrics to Monitor
      11. Observation and Monitoring through Standard Linux Tools
      12. Tuning the Linux Kernel
      13. Scalability - Running Things at Web Scale and the Effective Use of Caching
      14. Caching and Performance
      15. Edge serving
    4. The Importance of Tuning the Network
      1. Tuning the Network Kernel
      2. TUNING TCP/IP
      3. SOME GENERAL NETWORK TUNING TIPS
      4. TCP SPLITTING: OPTIMIZING CLOUD PERFORMANCE