Intro to Cloud Technology & Foundational Cloud/DevOps Concepts Linux, Python, and Cloud Computing with AWS
Instructors: Cam Flowers and Shafan Sugarman
Program Start Date: September 22nd
Class Times: TU, TH, FR 6:00-9:00 p.m. & SA 10 a.m.- 5:00 p.m.
Office Hours: Book 1-1 time @ https://calendly.com/camflowers
Modernized software systems have required engineers to develop their skills across the entire software delivery lifecycle: Design, Development, Testing, Deployment and Maintenance. Armed with new software architectural patterns, more powerful cloud infrastructure, and efficient automation/management tools engineers working along the DevOps lifecycle are able to build more scalable and elastic systems while being test-driven and secure.
As a result of participating in this course, you will work along the different steps of the Software Delivery Lifecycle learning about different software architectural patterns including Microservice Architecure, Serverless Architecture, and Containerized Architecture and manners of automating the testing, build and deployment of those various systems.
By the end of this course, you will understand the various roles of a full-stack engineering team. You will learn how to build a fully production ready application using test-driven development, and collaborating with other engineers through Agile Development practices like SCRUM and KANBAN. You will establish CI/CD pipelines and create strategies for automation and monitoring to ensure your confidence in your application releases. You will develop your ability to actively engage in technical discussions about architecture, code reviews and pair-programming.
This course meets three times a week and once on the weekend to facilitate both lecture and lab components of instruction. This course is intended to reflect industry norms as much as possible; to that end, project delivery and collaboration are emphasized over written homework or assessments. Sessions will not be recorded by default, though some materials may be pre-recorded to facilitate instruction.
In order to fully participate in this course you are expected to have demonstrated profieciency in the essentials of Linux, Python, and AWS as discussed in Phase 1A.
There is a guide of recommended precourse work available here
Tasks and assignments are intended to align with the learning outcomes specified above.
Attendance is a weighed component of this class, students are encouraged to attend all lectures to fully benefit from the delivered material and peer discussion.
In adhering to "real-world" industry norms, this class does not have any required texts, as all course material can be obtained through various free online resources. However, various readings will be recommended during the course of this class and will likely be helpful to student learning.
Student evaluations in this course will be assigned as follows:
-
Attendance
- Intents:
- Reinforce readings/lecture content
- Practice writing code
- Practice using GitHub (delivery/submission vehicle)
- Intents:
-
Technical Communication
- Intents:
- Demonstrate understanding of software delivery lifecycle stages
- Demonstrate understanding of various software architectures
- Demonstrate a growing acquisition of knowledge in new domains
- Intents:
-
Project Development
- Intents:
- Demonstrate adept knowledge of Python
- Demonstrate understanding of various engineering roles
- Demonstrate ability to work in AGILE work environments
- Intents:
May change to accommodate guest presenters & student needs.
Week | Date | Content | README | Assigned |
---|---|---|---|---|
0 | 9/14 - 9/21 | Intersession | -- | -- |
1 | 9/22 - 9/28 | Software Delivery Lifecycle | SDLC | Microservice Project |
2 | 9/29 - 10/05 | Test Driven Development | TDD | Microservice Project |
3 | 10/06 - 10/12 | Continuous Integration | CI/CD | Microservice Project |
4 | 10/13 - 10/19 | Microservices & Containerization | Docker | Microservice Project |
5 | 10/20 - 10/26 | Configuration Management | CM | Deployment Environments & CI/CD |
6 | 10/27 - 11/02 | Container Orchestration / Kubernetes | K8s | Deployment Environments & CI/CD |
7 | 11/03 - 11/09 | Infrastructure as Code | IaC | Deployment Environments & CI/CD |
8 | 11/10 - 11/16 | Server Monitoring & Logging | Monitoring | Deployment Environments & CI/CD |
Due -- | TBA | -- | -- | -- | Final Showcase
Each student in this course is expected to abide by a policy of Academic Integrity. Any work submitted by a student in this course for credit will be the student's own work. Collaboration is allowed where assignments are designated as group projects.
You are encouraged to study together and to discuss information and concepts covered in lecture and the sections with other students. You can give "consulting" help to or receive "consulting" help from such students. However, this permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in the form of an e-mail, an e-mail attachment file, a diskette, or a hard copy.
Our team is available to discuss appropriate academic accommodations that may be required for student with disabilities or reasonable accommodations.
We understand that our members represent a rich variety of backgrounds and perspectives. The Instructional Team is committed to providing an atmosphere for learning that respects diversity. While working together to build this community we ask all members to:
- share their unique experiences, values and beliefs
- be open to the views of others
- honor the uniqueness of their colleagues
- appreciate the opportunity that we have to learn from each other in this community
- value each other's opinions and communicate in a respectful manner
- keep confidential discussions that the community has of a personal (or professional) nature
- use this opportunity together to discuss ways in which we can create an inclusive environment in this course and across the community