Week 1 Learning Journal
This a start of my DO-Learning Journal. This is not a blog, not an article, rather its a reflection of my thoughts and journey. During this week, I learnt the following things. This week discussion led by ayaz, director engineering at DigitalOcean.
What I loved was the digitalOcean goodie bags! It was amazing, especially the bottle, t shirt, dairy and other items. Such an amazing onboarding gift.
Cloud Infrastructure and Services
Virtual Private Servers (VPS)
- Introduction:
- Understanding Virtual Private Servers (VPS) and companies like Hetzner.
- DigitalOcean Droplet:
- Introduced around 2018, Droplet is a VPS offered by DigitalOcean.
- Hyperscalers:
- Companies providing large-scale cloud infrastructure services.
Infrastructure Overview
- Autoscaling:
- Dynamic scaling of resources based on demand.
- Vertical Scaling:
- Increasing the capacity of a single server.
- Horizontal Scaling:
- Adding more servers to distribute the load.
- Hyperscaling:
- Automated version of VPS provisioning for large-scale deployments.
- VPS Management:
- Concepts like VPA, IP, users, SSH keys, black screen, Linux server management.
- Web Services and Databases Setup:
- Configuring services like Nginx, databases, and their connections.
Hosting Providers and Technologies
- Apache, Windows IIS:
- Web server technologies.
- Debian, Ubuntu:
- Linux distributions commonly used for hosting.
- VMs, VPS, Managed Cloud Hosting:
- Different hosting options and their management.
Docker Concepts
- Overview:
- Grasping high-level concepts of Docker containers.
Cloud Services and Platforms
- IAAS, PAAS, SAAS:
- Understanding Infrastructure as a Service, Platform as a Service, and Software as a Service.
- Kinsta:
- A competitor in the managed hosting space.
- VectorOps, OpsGenie:
- Tools for managing cloud infrastructure and operations.
- Cloudways:
- Provider of managed cloud hosting services.
Architecture and Security
- Single-tier vs Multi-tier Application:
- Different application architectures.
- Denial of Service (DoS) Attack:
- Understanding DoS attacks and their mitigation.
- Load Balancer, Scaling Concepts:
- Exploring load balancing, vertical and horizontal scaling, self-healing, Docker Swarm, Kubernetes, and Supervisor on Ubuntu.
- Content Delivery Networks (CDN):
- Networks for delivering content efficiently.
Legal and Compliance
- TOS, SLA’s:
- Terms of Service and Service Level Agreements.
- DMCA Privacy Complaints:
- Dealing with Digital Millennium Copyright Act (DMCA) privacy complaints.
- IPv4, IPv6:
- Internet Protocol versions.
- Server Credentials Monitoring:
- Monitoring and managing server credentials, services, and settings.
Communication Platforms
- Slack:
- Basic concepts including channels, workspaces, threads, @mentions, and etiquette.
- IRC:
- History and concepts of Internet Relay Chat, including DALNET and FREENODE.
Summary
- Cloudways:
- Managed cloud hosting provider.
- VMs/VPS:
- Virtual machines and virtual private servers.
- PaaS/IaaS/SaaS:
- Different cloud service models.
Unix and Linux History
- Multiuser, Time-sharing:
- Unix and Linux systems are built on the concept of multiuser environments where multiple users can access the system simultaneously, facilitated by time-sharing mechanisms.
- Job:
- A set of instructions executed by a computer.
- Invention:
- Unix was invented by Bell Labs, with key figures including Ken Thompson and Dennis Ritchie.
- C++:
- Developed by Bjarne Stroustrup.
- Multics, C, Assembly:
- Early influences on Unix development, with Multics being an influential project, and C and Assembly being key programming languages used in Unix development.
- Berkeley University:
- Contributed significantly to Unix development.
- Operating Systems:
- Various Unix-based operating systems include HP-UX, IBM Unix, Darwin (older version of macOS), OpenBSD, FreeBSD, and NetBSD.
- MINIX:
- A stripped-down Unix-like operating system developed by Andrew Tanenbaum, which influenced the development of Linux by Linus Torvalds.
Kernel and Applications
- Kernel:
- The core of the operating system, providing access to hardware and facilitating communication between hardware and software components.
- File Systems:
- Examples include NFS, FAT32, and ext.
- Compiling Kernel:
- The process of compiling kernel modules and drivers to create a binary file.
- GNU:
- GNU applications complement the Linux kernel, forming the basis of many Linux distributions.
Free Software and Open Source
- Richard Stallman (RMS):
- Founder of the Free Software Foundation (FSF), promoting free software principles including the freedom to modify source code.
- GPL:
- GNU General Public License, ensuring software freedom.
- Licenses:
- Various licenses such as Apache, MIT, BSD, and Creative Commons govern the distribution and use of software.
- Unix Derivatives:
- Various Unix-based operating systems derived from Unix, including IBM Unix, HP-UX, Solaris, SunOS, and macOS.
System Calls and Interfaces
- System Calls:
- Functions in C used to request services from the operating system.
- Interface:
- The means through which users interact with the system, including UI, web interfaces, CLI, and function calls in C.
- Rootkits:
- Malicious software that can compromise system calls, necessitating the use of rootkit hunters for detection and removal.
Miscellaneous
- WSL:
- Windows Subsystem for Linux, enabling the execution of Linux binaries on Windows systems.
- Powershell:
- A powerful command-line shell and scripting language for Windows systems.
Linux Command Line Interface (CLI) and File System
CLI and Shells
- Main Point of Linux:
- Emphasis on Command Line Interface (CLI), contrasting with Windows’ UI-based approach.
- CLI Interface:
- Command interpreter facilitating interaction with the system.
- Shells:
- Different shells include BASH, ASH, SH, ZSH, CSH.
$SHELLEnvironment Variable:- Demonstrates the current shell being used.
Shells and Scripting
- Benefits of Different Shells:
- Exploration of the advantages of various shell environments, particularly BASH.
- Scripting:
- Introduction to scripting and execution methods.
File System and Libraries
- File Systems:
- Concepts of file systems including ext2, ext4, NTFS, extFAT.
- Libraries:
- Understanding the role and usage of libraries in Linux systems.
Linux Distributions (Distros) and GUI Environments
- Linux Distros:
- Overview of various distributions including Debian, Red Hat, SLS/Slackware, Gentoo, ArchLinux, and FreeBSD.
- GNU Applications:
- Distinction between GNU applications, GUI environments, and app sets, which together form a Linux distribution.
- GUI Environments:
- Examples include GNOME, KDE, XFCE, and Blackbox UI.
Additional Tools and Technologies
- Dual Boot:
- Setting up systems to run multiple operating systems.
- Virtualization:
- Use of tools like VirtualBox and WSL (Windows Subsystem for Linux) for virtualization.
- Docker:
- Introduction to Docker containers.
- XFCE:
- A lightweight desktop environment commonly used in Linux distributions.
Day 5
Linux Fundamentals
- Redhat’s Description of Linux:
- Redhat describes Linux as consisting of:
- Kernel
- System user space
- Applications
- Redhat describes Linux as consisting of:
- System Bootup:
- Systems boot using either BIOS or UEFI, which then run a bootloader initiating the kernel image execution. The kernel, in turn, initializes the system.
- System Userspace:
- This layer includes administrative components like shell or command interpreters, daemons, and software applications. Livepatching may also be applied here.
Linux Distributions
- Package Management:
- Red Hat-based distributions like Red Hat, CentOS, and Fedora use
yumordnfcommands, while Debian-based distributions like Ubuntu useapt.
- Red Hat-based distributions like Red Hat, CentOS, and Fedora use
- Commonality:
- All Linux distributions share a common kernel, which is the core component that ties them together.
- Variety of Distributions:
- Linux distributions include:
- Redhat, CentOS, Fedora
- Ubuntu, Debian
- OpenSUSE, SUSE
- Linux distributions include:
Open Source
- Definition:
- Open source refers to software that allows users to view, modify, and distribute its source code freely. It stems from the free software movement led by Richard Stallman and the GNU Project.
Other Operating Systems
- Non-Linux Operating Systems:
- Apart from Linux, there are numerous other operating systems available, each with its own characteristics and purposes.
Chapter 3: Types of Linux
Server Linux
- Used for server-side applications and services.
- Known for stability, reliability, and security.
- Often deployed in data centers and cloud environments.
Desktop Linux
- Used for personal computing purposes.
- Offers a user-friendly interface and a wide range of applications.
- Provides an alternative to proprietary desktop operating systems like Windows and macOS.
Mobile Linux
- Designed for portable devices with touch screens.
- Utilizes a modified Linux kernel and often licensed under the Apache License.
- Includes operating systems like:
- Ubuntu Touch
- PostmarketOS
- Sailfish OS
- Mobian (Debian Linux for mobiles)
Hypervisor or Virtualization
- Hypervisor: Software or hardware that creates and runs virtual machines.
- Virtualization allows for efficient resource utilization by running multiple virtual machines on a single physical machine.
- Two types of virtualization:
- Type 1: Runs directly on the host’s hardware (e.g., EC2 on a hypervisor).
- Type 2: Runs as a software application on top of the host’s operating system (e.g., VirtualBox).
64-bit CPUs
- CPUs from Intel or AMD that support 64-bit architecture.
- Also known as x64 or AMD64 architecture.
This post is licensed under CC BY 4.0 by the author.
