
Cloud computing lets developers provision on-demand resources, servers, storage, databases, networking and analytics, via a pay-as-you-go model, using virtualization to create scalable virtual instances with hardware abstraction layers and hypervisors.
Cloud computing boosts cost efficiency, agility, and faster time to market by provisioning on-demand resources with pay-as-you-go pricing, while offering scalability, elasticity, reliability, and security through data centers and backups.
Explore cloud computing service models—IaaS, PaaS, and SaaS—and compare them with traditional on-premises setups, including pay-as-you-go resources via a web-based console for the cloud tenant.
Explore infrastructure as a service (iaas), a cloud model delivering scalable on-demand computing resources via a subscription managed by a third party, with dashboards or APIs for provisioning.
Explore Platform as a Service (PaaS), where providers manage hardware and software, enabling scalable deployments, rapid development, and DevOps collaboration with tools like Google App Engine and Heroku.
Discover software as a service, subscription-based cloud apps delivered via browser, desktop, or mobile. Vendors manage infrastructure, data storage, middleware, upgrades, patches, and security.
Compare the three cloud service models—IaaS, PaaS, and SaaS—by examining on-premises data centres versus vendor-managed infrastructure and the market share trends and growth projections.
Set up a Linode account by signing up, verifying your email, entering billing and payment details, and accepting the Master Services Agreement to access the cloud manager.
Navigate the Linode Cloud Manager to manage nodes, block and object storage, explore the marketplace, and use the account dashboard and support resources.
Enable two-factor authentication on your Linode account, using knowledge and possession elements with a password and Google Authenticator, secured via a QR code and a scratch code.
Deploy and configure your first virtual instance by selecting Ubuntu 20.0, the Newark data center, and an appropriate RAM, CPU, and storage plan for your workloads.
Explore the Linode instance dashboard to monitor deployment status and view resources, including analytics and network usage. Manage storage and volumes, backups, and configuration profiles via SSH and IP addresses.
Securely connect to an L.A. instance to administer it via the command line, using web-based or software tools to update operating system, install software, monitor performance, and apply security patches.
Learn how ssh key authentication strengthens remote access by replacing passwords with a private and public key pair. Use ssh keygen to generate keys and enable secure connections.
Generate a 4096-bit SSH key pair on Windows with PuTTYgen, save the keys, and configure PuTTY to connect to a node instance via SSH key authentication.
Generate an SSH key pair on a mac or linux system, then copy the public key to the root user and connect to your instance via SSH key authentication.
Learn to remotely connect to your instance using the Lish web console from the node cloud manager, log in, run commands, and securely terminate sessions.
Learn to add SSH public keys to your node cloud manager and apply them to future instance deployments by labeling and saving keys to your account.
Explore the Linux kernel, distributions, and open source principles, compare Linux and Windows, and learn core terms like bootloader and memory management, plus server roles, desktop environments, and software centers.
Explore the Linux file system structure, absolute and relative paths, and key directories like /bin, /home, /var, and /etc to prepare for secure server administration.
Log into an Ubuntu server and execute Linux maintenance commands, including apt update, apt upgrade, and dist-upgrade, manage packages from repositories, and apply security updates.
Learn to navigate Linux directories using cd, pwd, and ls, moving from root to /var and back to root's home, and create and edit text files with nano.
Learn linux directory commands in ubuntu by creating, moving, copying (including cp -r for directories), and deleting files and folders with ls and cd, navigating from root to user directories.
Configure Ubuntu server basics by setting a hostname, updating /etc/hosts with Saturn, and adjusting time zone and clock settings using time date ctl, UTC, and RTC.
Understand root and non-root accounts, group-based permissions, and how pseudo and SU commands secure admin access through wheel group.
Create a non-root user named Bob, assign a password, and add Bob to the pseudo group to enable super user privileges; verify with groups.
Secure a non-root user account with SSH key authentication by generating Bob's 4096-bit key pair, configuring authorized_keys, and using Bob with sudo for admin tasks.
Enhance server security by disabling root login and password authentication, enforcing SSH key authentication, and validating access with tests using putty.
Explore how web servers host and deliver web content using hardware and software. Grasp the HTTP request–response model with browsers, DNS, and URLs, and how 404 errors arise.
Explore why hosting on a home computer may fall short compared with a hosting provider due to limited bandwidth, power needs, backups, dynamic IP, security risks, and scalability concerns.
Compare Engine X and Apache to understand asynchronous, event-driven handling of thousands of connections, dynamic versus static content, and centralized versus decentralized configuration for reverse proxy and load balancer roles.
Explore what a database is, how DBMSs manage data storage and retrieval, and the differences between relational SQL and NoSQL databases used in web apps.
Contrast SQL and NoSQL databases by examining relational databases with SQL, the relational database management system, primary keys and relationships, alongside NoSQL categories such as document databases using JSON.
Compare relational and non-relational databases and contrast the ACID standard with the cap theorem, detailing all-or-nothing transactions, consistency, isolation, and durability.
Explore the CAP theorem for no SQL databases, including consistency, availability, and partition tolerance, and compare it to ACID in relational databases with a focus on horizontal scalability.
Explore the key characteristics of SQL and NoSQL databases, including the acid principle and cap theorem, with MongoDB (document store) and Redis (key-value store) to guide relational vs non-relational choices.
Identify key terms like software stack, lamp stack, merlin stack, and mean stack, and learn how Linux, Apache, MySQL, PHP, React, Angular, Node.js, and Express.js compose web apps.
Explore the difference between frameworks and libraries, including inversion of control and opinionated design, with examples like React JS, Angular JS, View JS, Express JS, Laravel, Django, and Flask.
Differentiate server side and client side scripting languages with examples like PHP, Python, Node.js, Ruby, and Perl, and note that HTML, CSS, and JavaScript drive client side UI and behavior.
Install and configure the lamp stack on Ubuntu via command line, including Apache, MariaDB, PHP, and security steps, with testing via the default Apache page.
Install a lamp stack quickly via the Linode marketplace's one-click apps during server deployment, configure root passwords, ssl certificate, image, and region, then verify via browser.
Test PHP on Apache by creating a PHP info file in the web root (/var/www/html) and loading it in a browser to verify PHP configuration and version.
Learn to connect PHP to MariaDB, create a database and user, grant privileges, and perform basic SQL operations like creating a table, inserting data, and querying.
Create a PHP script in the web root to connect to MariaDB and output records from the name list table as an HTML list, validating the connection in a browser.
Set up a graphical desktop on a remote Linode via glitch client or x2go, install xfce, and browse /var/www/html with a visual file manager.
Learn foundational server security for hosting web apps, including firewall configuration and network monitoring, and defend against DDoS, directory traversal, and brute-force attacks with Apache hardening.
Configure a firewall to filter and scan incoming packets, block threats, and enforce rules for http port 80 and ssh port 22, with network and hosted firewall demonstrations.
Configure a network firewall at the cloud level to control inbound and outbound traffic. Block inbound http requests on port 80 and apply changes in the cloud console.
Learn to secure a server by changing the SSH port from 22 to a custom port within 1024–65535, configure a network firewall to allow only trusted IPs, and validate access.
Configure a strict inbound firewall by setting default to drop and adding http, https, dns, mysql, and icmp rules, then test access to verify the Apache page loads.
Configure hosted firewalls on your web server with ufw on ubuntu, enabling default deny, and tailoring rules for ssh, http/https, dns, and database traffic.
Explore scaling web apps by increasing resources vertically or horizontally. Learn how instance clusters, nodes, and load balancers distribute load and perform health checks to maintain performance.
Demonstrate vertical scaling by resizing from the nano one gigabyte plan to the node for gigabyte plan, boosting to 4 gigabytes of RAM, 2 CPUs, and 50 gigabytes of storage.
Learn to horizontally scale across two nodes using an application load balancer (node balancer), assign private IPs, configure round robin health checks, and distribute web traffic.
Demonstrate swapping public IPs between production and test VM instances using the IP transfer feature, then verify with Apache index pages and update hosts as needed.
Explore how to back up cloud deployments using disk images and snapshots, compare manual image creation with automated backups, and deploy new instances from saved images.
Create a custom image from a running instance, verify disk usage with df -h. Ensure the primary disk stays under six gigabytes and deploy the image to new nodes.
Enable Linode backup service for an instance, configure manual and automated snapshots with daily and weekly rotation, manage backups, clone volumes, and set auto enrollment for deployments.
Learn to clean up a Linode account by terminating instances, deleting volumes and custom images, and closing the account to prevent charges, with guided steps in the Linode management console.
This segment reinforces practical skills to deploy and configure cloud instances, secure servers with non-root accounts and firewalls, and host robust web apps via Linux remote access.
Welcome to our latest course. Here, you will learn how to deploy fully scalable React web apps on some of the most powerful cloud computing platforms available, including AWS and Linode. The course starts with exploring the foundations of cloud computing where we dive into a comprehensive overview of the three main cloud service models. This includes: Infrastructure as a Service, Platform as a Service, and Software as a Service. From there we offer an in-depth guide to deploying and configuring virtual instances and the foundations of remote server administration and server security using SSH. Students are then introduced to Linux, where we explore various Linux distributions, the Linux filesystem, and essential Linux maintenance and directory commands.
Once students have a handle on working with Linux, we’ll dive into the foundations of Web Servers. Here, we’ll explore two industry leaders in the server software space including Apache and NGINX. Students will learn the benefits and use cases of each server technology, combined with an in-depth technical analysis of their performance in production environments. From there we’ll explore database management systems, including both SQL and NoSQL databases, coupled with database transaction standards. In this section students gain valuable insights into a variety of different database options available, and the best use case for each depending on the project type and complexity.
With a firm handle on the theoretical aspects of web servers and DBMSes, we jump into a practical guide to setting up LAMP stack on Ubuntu through terminal for MacOS and PuTTY for Windows. Here we configure Linux with Apache, MariaDB, and PHP. Students will also learn how to upload data to a MariaDB database, and fetch records from within PHP scripts. The course then takes a theoretical and practical deep dive into server security. Here, we explore both network and hosted firewalls. We emphasize the pitfalls of lax server configurations, and provide a step-by-step guide to enabling and setting up UFW for Ubuntu. Students will also learn how to configure custom ports for SSH tunneling as an added layer of security.
The second half of the course provides a comprehensive guide to Amazon Web Services. We start with demonstrating how to setup, secure, and navigate an AWS account. This includes setting up billing alerts and multi-factor authentication. From there, we take a deep dive into AWS Identity and Access management for enhanced account security, and the management of user accounts for various AWS services. Here we explore IAM User management and permissions, IAM Groups, IAM Policies, and access key rotation. Following the IAM section, we’ll jump into the Amazon Elastic Compute Cloud (EC2) service. In this module students lean to deploy virtual instances on AWS using Amazon Machine Images, Elastic IPs, and Launch Templates. We will also explore IAM roles for EC2, EC2 Security Groups, SSH key pair authentication, and remote administration using both terminal and EC2 Instance connect.
After students have a mastery of cloud computing, the next segment explores the development and deployment of interactive web apps using both JavaScript and React. Here we start with JavaScript foundations including the document object model, and DOM manipulation. From there, we hop into JavaScript variables, arithmetic operations, data types, objects, arrays, loops, functions, and events. The JavaScript section concludes with two hands-on projects where students build a background color changer, and photo gallery. After completion of the JavaScript section, students will use their new found skills to build out dynamic front-end UI components using the React JS library. Through a series of hands-on projects, students will build a calculator, Connect-4 Game clone, and a fully customizable e-commerce site. The react modules start from the basics and work up to several intermediate level concepts. This includes: working with code pen, JSX, Functional components, Props, Callbacks, Events, the React State hook, conditional rendering, Fetch API, Refactoring, and much more.
As you can see this course covers a tremendous bit of ground. Best of all it’s co-authored by Tim Maclachlan - a renowned senior full-stack developer with over 20 years of commercial development experience. As a multi-faceted developer, Tim specializes in algorithmic, analytical and mobile development. To date, he’s written hundreds of applications and worked in a number of industries from commercial aviation and military, to banking and finance. Tim has a genuine passion for teaching others how to become better coders and looks forward to interacting with his students.
With that said, we hope you’re just as excited about this course as we are, if so - hit that enroll button and let’s get started.