- syllabus
- create aws stack
- terminal command reminder
- users
- permissions
- ssh keys
- private vs public
- .ssh/config
- .ssh/authorized_keys
- .ssh/known_hosts
- git & GitHub
- clone
- init
- add
- rm (and rm --cached)
- commit
- push
- pull
- branch
- fetch / merge
- checkout
- merge conficts
- Pull Requests
- .gitignore
- markdown essentials
- git guide
- crash course python notes
- package version dependencies and usage
- APIs
- REST APIs
- querying
- version dependent (how queries are requested can change)
- syncronous vs asyncronous APIs
- Requesting and using OAuth keys
- REST APIs
- authentication vs authorization
- OAuth - allow third party to do x y z
- JSON Web Tokens & session cookies
- keeping you logged in and maintaining session details
- process exploration
- bot runs as long as starting terminal is open
- screen / background jobs (2350) - detaching processes
- cloud solutions?
- containers?
- Discord Bot using Discord API w/ discord.py
- managing secrets for a project
- using branches for changes
- linters and unit tests
- using hooks to trigger
- networking review
- IPv4 addresses
- Subnets & CIDR notation
- routes
- gateways
- NAT
- Firewalls
- network wide (AWS Security Groups)
- per machine (iptables)
- the cloud
- types of cloud services
- regions
- access management of cloud resources
- token based can create(?) access(?) delete(?) view billing(?)
- intro to navigating AWS
- EC2 instance types
- images / AMI
- networking (VPC, subnet, gateways, routes, security group)
- Manually creating the resources
- VPC
- instance type & AMI
- EIP to instance
- intro to contents of CloudFormation Template
- using YAML/JSON formatted files
- system logs & service control
- installing and configuring a webserver
- apache vs nginx
- status / control of services (systemctl)
- service logs (apache & ssh)
- security groups
- iptables? system level firewalls
- nmap -p 1-5000 server
- Create CloudFormation template
- should mimic what was manually created
- intro to proxies & HAProxy
- Midterm review
- Midterm
- Midterm review
- NAT Gateways
- one EIP, external communication allowed
- messing with a webserver
- HTTPS vs HTTP and notes on certificates
- load balancing and fault tolerance
- HAproxy configurations
- keeping backend servers private - when are public IPs needed?
- fault tolerance of non-responsive backends
- monitoring
- Networked systems (Grafana?)
- cloud costs and usage
- CF Template
- create three instances
- create one NAT gateway? Connect two instances to that?
- Configure load balancer
- Configure hosts to hold unique content
- containers (Docker)
- purpose & constraints
- images
- Dockerfiles (recipes)
- deploying containers
- continuous development and integration
- GitHub actions
- docker hub
- GitHub webhooks?
- Directory service & relational database concepts and usage
- host db on a system? the books API example?
- Understanding of what can be accomplished be using modern language features and software development practices to develop a distributed information technology system
- Understanding of networking roles in a distributed information technology infrastructure
- Use of and application of modern software development tools and methodologies and part of a team
- Distributed architecture and fault tolerance concepts
- Application programming interface design and usage
- Directory and relational database concepts and integration
- Introduction to cloud systems and modern deployment techniques
- Introduction to continuous development and continuous integration
- Using the command line interface & scripting
- Networking (private vs public accessibility, sockets & ports, SSH keys)
- Understanding logs, usage of configuration files, process control
- Development tools (version management, team organization)
- Cloud infrastructure & Infrastructure as a Service (IaaS)
- Utilizing Application Programming Interfaces (APIs) & Service Oriented Architecture (SOA)
- Directory service & relational database concepts and usage
- Continuous integration & automating change management
- Continuous deployment & automating production
- Distributed architecture
- Infrastructure as Code (IaC)
- Fault tolerance & health monitoring
- Introduction to scalability, cost, and maintenance considerations