Hands-On Linux for Architects
Design and implement Linux-based IT solutions
- 380 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Hands-On Linux for Architects
Design and implement Linux-based IT solutions
About This Book
Explore practical use cases to learn everything from Linux components, and functionalities, through to hardware and software support
Key Features
- Gain a clear understanding of how to design a Linux environment
- Learn more about the architecture of the modern Linux operating system(OS)
- Understand infrastructure needs and design a high-performing computing environment
Book Description
It is very important to understand the flexibility of an infrastructure when designing an efficient environment. In this book, you will cover everything from Linux components and functionalities through to hardware and software support, which will help you to implement and tune effective Linux-based solutions.
This book gets started with an overview of Linux design methodology. Next, you will focus on the core concepts of designing a solution. As you progress, you will gain insights into the kinds of decisions you need to make when deploying a high-performance solution using Gluster File System (GlusterFS). In the next set of chapters, the book will guide you through the technique of using Kubernetes as an orchestrator for deploying and managing containerized applications. In addition to this, you will learn how to apply and configure Kubernetes for your NGINX application. You'll then learn how to implement an ELK stack, which is composed of Elasticsearch, Logstash, and Kibana. In the concluding chapters, you will focus on installing and configuring a Saltstack solution to manage different Linux distributions, and explore a variety of design best practices. By the end of this book, you will be well-versed with designing a high-performing computing environment for complex applications to run on.
By the end of the book, you will have delved inside the most detailed technical conditions of designing a solution, and you will have also dissected every aspect in detail in order to implement and tune open source Linux-based solutions
What you will learn
- Study the basics of infrastructure design and the steps involved
- Expand your current design portfolio with Linux-based solutions
- Discover open source software-based solutions to optimize your architecture
- Understand the role of high availability and fault tolerance in a resilient design
- Identify the role of containers and how they improve your continuous integration and continuous deployment pipelines
- Gain insights into optimizing and making resilient and highly available designs by applying industry best practices
Who this book is for
This intermediate-level book is for Linux system administrators, Linux support engineers, DevOps engineers, Linux consultants or any open source technology professional looking to learn or expand their knowledge in architecting, designing and implementing solutions based on Linux and open source software. Prior experience in Linux is required.
Frequently asked questions
Information
Section 1: High-Performance Storage Solutions with GlusterFS
- Chapter 1, Introduction to Design Methodology
- Chapter 2, Defining GlusterFS Storage
- Chapter 3, Architecting a Storage Cluster
- Chapter 4, Using GlusterFS on the Cloud Infrastructure
- Chapter 5, Analyzing Performance in a Gluster System
Introduction to Design Methodology
- Defining the stages of solution design and why they matter
- Analyzing the problem and asking the right questions
- Considering possible solutions
- Implementing the solution
Defining the stages of solution design and why they matter
Analyzing the problem and asking the right questions
Technical standpoint
- You can understand, from the premise, that your customer needs some kind of solution that can sustain some amount of website hits, but you can't be certain if the web server is already set up, and whether the customer only needs a load balancing solution. Alternatively, maybe the customer needs both, a web server, that is NGINX, Apache, or something of that sort, and the load balancing solution.
- The customer mentions at least 10,000 hits to their website, but they didn't mention if these hits are concurrent per second, daily, weekly, or even monthly.
- You can also see that they need to stay available during updates and be able to continue serving their website if the company has an outage, but all these statements are very general, since availability is measured in 9s. The more 9s you have, the better (in reality, this is a percentage measurement of the amount of time during the year; a 99% availability means that there can only be 526 minutes of downtime per year). Outages are also very hard to predict, and it's almost impossible to be able to say that you will never have an outage, therefore, you need to plan for it. You have to have a Recovery point objective (RPO) and a Recovery time objective (RTO) for your solution in case of a disaster. The customer didn't mention this, and it is crucial to understand how much time a business can sustain an outage.
- When it comes to budget, this is usually from a business perspective, but the technical aspects are affected directly by it. It looks like the budget in the project is tight, and the customer wants to spend as little as possible on their solution, but they're not mentioning exact numbers, which you will require in order to fit your proposals to it. Little to no upfront cost? What does this mean? Are we repurposing the existing resources and building a new solution? How can we implement a design with no upfront cost? One way to overcome low budgets, or no upfront costs, at least in software, is to utilize open source software (OSS), but this is something that we need to ask the customer.
- Gaining momentum can only mean that they are predicting that their userbase will grow eventually, but you need an estimate of how much they predict this will grow and how fast, as this will imply that you have to leave the solution ready to be scaled vertically or horizontally. Vertically, by leaving space to increase the resources eventually and take into account the business's procurement process if you need to buy more resources such RAM, CPU, or storage. Horizontally will also involve a procurement process and a considerable amount of time to integrate a new node/server/VM/container into the solution. None of these are included in the premise, and it's vital information.
- Is this solution for a new/existing website or web server?
- When you say 10,000 hits, are these concurrent per second or is it daily/weekly/monthly?
- Do you have any estimates or current data of how large your userbase is?
- Considering that the budget is low, can we use OSS?
- Do you ha...
Table of contents
- Title Page
- Copyright and Credits
- About Packt
- Contributors
- Dedication
- Preface
- Section 1: High-Performance Storage Solutions with GlusterFS
- Introduction to Design Methodology
- Defining GlusterFS Storage
- Architecting a Storage Cluster
- Using GlusterFS on the Cloud Infrastructure
- Analyzing Performance in a Gluster System
- Section 2: High-Availablility Nginx Web Application Using Kubernetes
- Creating a Highly Available Self-Healing Architecture
- Understanding the Core Components of a Kubernetes Cluster
- Architecting a Kubernetes Cluster
- Deploying and Configuring Kubernetes
- Section 3: Elastic Stack
- Monitoring with the ELK Stack
- Designing an ELK Stack
- Using Elasticsearch, Logstash, and Kibana to Manage Logs
- Section 4: System Management Using Saltstack
- Solving Management Problems with Salty Solutions
- Getting Your Hands Salty
- Design Best Practices
- Assessments
- Other Books You May Enjoy