CAE EPNC

Introduction to Cloud Native Engineering with Open-Source Tools
2021-02-23 16:00 - 2021-03-18 19:00 (America/Chicago) | Online Course
Course Description:
This course is designed to introduce students to modern software development, particularly focused on microservices and Cloud Native engineering. Students will start by developing their basic experience with Linux into a more complete understanding of how commands interact with each other and how Linux interacts with a network. This includes the essential components of security and networking for developers leveraging Linux environments. We introduce the concept of version control through git and its critical role in software development. The class then focuses on combining the commands learned earlier into complete scripts that achieve specific purposes. Finally, we cover containers, containerized processes, and container orchestration. Students will be tested on their new container proficiency by building, testing, and running a simple microservice using Docker containers.
The class will meet virtually every Tuesday and Thursday from February 23 to March 18 via Zoom. Register Here: https://tinyurl.com/cssiatraining
This course contains 4 major topics, each with two Lab components. Each day will consist of a Pre-Lecture, a Lab, and a Post-Lecture. The final lab will consist of a project assembling a microservices that encompasses knowledge from the entire course.
Course Components:

Week 1 – Linux Environments and Networks

Lab 1: Environment Variables and Command Piping
Lab 2: Networking with Linux

Week 2 – Version Control

Lab 3: Version Control (git) for Solo Use
Lab 4: git Collaboration

Week 3 – Shell Scripting and Automation

Lab 5: Introduction to Shell Scripting
Lab 6: Scripting with Command Line Tools

Week 4 – Introduction to Containers

Lab 7: Containers (Docker)
Lab 8: Container Orchestration and Microservices

Course Targets:

Gain a basic understanding of the Linux operating system focused on networking and shell scripts.
Understand the role of version control in modern software design from both the perspective of an individual and a development team.
Build, understand, and interact with containers.
Interpret the design of a microservice as a series of containers interacting with one another.
Build a micro service that uses all of the major themes of this course (Linux, shell scripting, containers, security, networking, etc.).

Course Outcomes:

Students will understand how to interact with almost all containers through their Linux fundamentals.
Students will understand the utility and potential of even simple shell scripts.
Students will understand how even simple processes, when isolated and containerized, can provide valuable functions.
Students will understand the security and network considerations of both containers and microservices.
Students will understand, appreciate, and know how to implement version control.
