💌 Group k—Radiator | Link |
---|---|
Website | http://164.92.167.188:3000 |
Swagger | http://164.92.167.188/swagger/index.html |
Monitoring and Logging (requires login) | http://164.92.167.188:9091 |
Status on projects | http://104.248.134.203/status.html |
Weekly commit activity per group | http://138.197.185.85/commit_activity_weekly.svg |
We currently lack the following features:
- Deploy to DigitalOcean with Vagrant.
- Refactor the tests to work with new design.
- Implement end-to-end tests.
- Make UML-diagram of system.
- Add scaling.
- Use Terraform for IaC.
It would be nice to have the following features:
- Create automatic releases when merging into main branch.
- Switching from HTTP To HTTPS.
Refactor ITU-MiniTwit to work on modern system.
- 1) Adding Version Control.
- 2) Try to develop a high-level understanding of ITU-MiniTwit.
- 3) Migrate ITU-MiniTwit to run on a modern computer running Linux.
- 4) Share your Work on GitHub.
Refactor ITU-MiniTwit in another programming language and tech stack.
- 1) Refactor ITU-MiniTwit to another language and technology of your choice.
- 2) Containerize ITU-MiniTwit with Docker.
- 3) Describe Distributed Workflow, see CONTRIBUTE.md.
Continue refactoring, introduction of DB abstraction layer, and deployment of your ITU-MiniTwit to a remote server.
- 1) Implement an API for the simulator in your ITU-MiniTwit.
- 2) Continue refactoring of your ITU-MiniTwit.
Continue refactoring, Setup CI & CD for reproducible builds, tests, delivery, and deployment.
- 1) Complete implementing an API for the simulator in your ITU-MiniTwit.
- 2) Creating a CI/CD setup for your ITU-MiniTwit.
- 3) Continue refactoring of your ITU-MiniTwit.
Cleaning and polishing of your ITU-MiniTwit, introduction of DB abstraction layer, and entering maintenance (Simulator starts).
- 1) Add missing features.
- 2) Introduce a DB abstraction layer in your ITU-MiniTwit.
Add monitoring to your ITU-MiniTwit and peer-review.
- 1) Add Monitoring to Your Systems.
- 2) Software Maintenance II: Check the user interface of another group (Group m, Jason Derulo), see Issue#17.
- Do you see a public timeline?
- Does the public timeline show messages that the application received from the simulator?
- Can you create a new user?
- Can you login as a new user?
- Can you write a message?
- After publishing a message, does it appear on your private timeline?
- Can you follow another user?
Enhancing CI/CD setup with test suite and static code analysis.
- 1) Add tests to your CI chain (Selenium)
- 2) Enhance your CI Pipelines with at least three static analysis tools
- eslint (typescript)
- codeql (csharp)
- Snyk (containers)
- 3) Add Maintainability and Technical Debt estimation tools to your projects
- Sonarqube
- Code Climate (hosted from Code Climate, not in GitHub actions)
- 4) Software Maintenance
Add logging to your ITU-MiniTwit.
- 1) Add Logging to Your Systems
- 2) Test that Your Logging Works
- The Devs introduce a bug; the Ops resolve the bug by using the logs.
Security Assessment & Pen Testing.
- 1) Perform a Security Assessment, see SECURITY_ASSESSMENT.md
- A. Risk Identification
- B. Risk Analysis
- C. Pen-Test Your System
- 2) White Hat Attack The Next Team
- Group k Radiator -[checks]-> Group m Jason Derulo, see Issue#20.
Isolate components into services/containers/VMs.
- 1) Add Scaling to your projects
- 2) Rolling Updates
- 3) Software Maintenance
Workshop: How to SSL in front of Docker Swarm.
- 1) Using LetsEncrypt and Nginx as a reverse proxy.
- 2) Using Digital Ocean managed load balancers as SSL terminator.
Encode your infrastructure setup.
- Automating also the creation of infrastructure.
- Write report, see BSc_group_k.pdf.
As a participant of the DevOps course at the IT University of Copenhagen, we are in for a hands-on learning experience. Every week, we will make changes to a Twitter project to put into practice the concepts and tools that we learn in class. Here is what we will be covering during this course:
-
Bash: We will learn the basics of the shell, navigate the file system, and execute commands.
-
Packaging applications: We will get hands-on experience with packaging applications for distribution and deployment.
-
Containerization: We will learn how to create and manage containers to isolate applications and their dependencies.
-
Virtual Machines: We will explore the use of virtual machines for testing, development, and deployment.
-
CI/CD: We will understand the concepts of Continuous Integration and Continuous Deployment, and implement them using popular tools such as Jenkins and GitLab.
-
Monitoring: We will learn how to monitor the performance of our applications and infrastructure to ensure optimal operation.
-
Maintainability: We will gain insight into making our applications maintainable, and understand the importance of clean code and testing.
-
Log analysis: We will collect and analyze log data to identify and resolve issues in our applications.
-
Web security: We will explore the importance of web security and the measures we can take to protect our applications and users.
-
Scalability: We will understand the concept of scalability and learn how to design and implement scalable applications.
-
Load balancing: We will balance loads across multiple servers to improve performance and reliability.
-
Infrastructure as Code: We will manage and provision infrastructure using code, and understand how this can improve the consistency and reliability of our deployments.
By the end of this course, we will have developed a solid foundation in DevOps concepts and practices, and will have the skills and confidence to build, deploy, and manage applications at scale.