DevOps
DevEdu... Edtech Cloud Development Environment
Excited to announce the lunch of DevEdu[1]. Educators can create an account, create a course, and assign development environments to the course. Students access containerized development environments through their web browsers, featuring VSCode with integrated terminal access.
Instructors can configure specific environments—I use Django in my UCCS courses—where they specify the version of Python and Django each student gets. Students enroll using course links and launch containers matching the instructor’s specifications.
For students unable to purchase licenses, the platform offers docker images as open-source software so they can host the environments locally. The service also partners with bookstores to provide bulk licensing through textbook affordability programs.
The platform has proven successful at UCCS with over 100 students, eliminating the need for individual technical support on personal devices while maintaining flexibility for different programming stacks.
References
1st Docker Multi-Platform Build
Built my first multi-platform Docker project for students who are utilizing Apple’s M1 processor…
My 1st #multiplatform #Docker build. My students are starting to jump on the #M1 train w/ #Apple.
Knocking Down Barriers for CS Education
Students deserve the best education regardless of socioeconomic factors and the pandemic has been widening the equity gaps. Last semester I found many of my CS students relied heavily on school computers to do their assignments. I’ve spent the last two weeks working nights and weekends to build a platform which can run as a #SaaS or on-prem. Students will be able to dev using a web browser on a platform that scales using #Kubernetes. Teachers can create #dev #environments for their students with a few clicks and schools can use their existing infrastructure (yes, even behind a firewall as long as the nodes can reach the internet) with the self hosted application.
K8s & Docker
Enjoying Microk8s, Docker, and the TICK Stack.
All the metrics. Monitoring #k8s[1], #docker[2], and #baremetal[3] using the #TICK[4] stack. Hosting #RocketChat[5], #GitLab[6], #Artifactory[7], #Nginx[8] (reverse proxy), & #Keyclock[9] (for SSO across all) in #Docker[10]. Spinning dev containers on-demand running #RoR[11] and #Cloud9[12] using #MicroK8s[13] & #MetalLB[14]. pic.twitter.com/tJA9WVHagF[15]— Tom Hastings (@tghastings)
References
- twitter.com/hashtag/k8s
- twitter.com/hashtag/docker
- twitter.com/hashtag/baremetal
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/TICK
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/RocketChat
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/GitLab
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/Artifactory
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/Nginx
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/Keyclock
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/Docker
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/RoR
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/Cloud9
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/MicroK8s
- web.archive.org/web/20250714144249/https://twitter.com/hashtag/MetalLB
- web.archive.org/web/20250714144249/https://t.co/tJA9WVHagF
Docker Catch Sigterm
Sometimes I like to stash commands that I use regularly. Below is a snippet of code that I find helpful from time to time. Here is a good script for catching sigterms inside of a docker container.
#!/bin/bash
term_handler() {
${TOMCAT_DIR}/bin/shutdown.sh
exit 143; # 128 + 15 -- SIGTERM
}
# setup handlers
# on callback, kill the last background process, which is tail -f /dev/null and execute the specified handler
trap 'kill ${!}; term_handler' SIGTERM
# run application
${TOMCAT_DIR}/bin/startup.sh
ln -sf /dev/stdout ${TOMCAT_DIR}/catalina.out
# wait forever
while true
do
tail -f /dev/null & wait ${!}
done