Loading Events

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.