devops pain

oct 2023

so i've started on my first ever internship - and let's say that I've never been so happy to be able to find out that I could learn Selenium, which I have been eyeing to study. (Fellow colleagues who are stalking me here, you didn't see anything okay!!!)

Let's backtrack to about two months back - in august, where I still had school (i say this as if I'm out of school, but I still have a long way to go). August is the time of assignment submission, and during which, I had the opportunity to present my final year project on GitHub (its not hosted there anymore, sorry).

When our second marker of the project looked at our Github activity within the repo, he was immediately disappointed - ZERO QA? ZERO AUTOMATED TESTING? simple git push and pull?????

Our second marker looking at us, with zero devops, not even devsecops in our project. Amazing. Photo Credit:https://i.pinimg.com/originals/9b/7a/83/9b7a83a7b07a9944dabf496faa63561a.gif

We're lucky that marker did not kill us on the spot. (We were developing this project for a third party)

Which brings us back to the topic today - that project, told me - ITS TIME TO WAKE UP. WE NEED TO LEARN DEVOPS, ASAP, especially if I want to create innovative solutions to make our cyberspace more secure.

Cool. Let's hop into it (very into it) - At this point, I've already covered Selenium, AGILE, Robots framework and SSDLC, so I'll be going into Testing.

Types of testing

  • Unit Testing

  • Integration Testing

  • System Testing

  • User Acceptance Testing

  • Functional Testing

  • Smoke and Sanity Testing

  • Alpha Testing

  • Beta Testing

  • Destructive Testing

  • A/B Testing

  • Blue Green Testing

A combination of testing is required at different stages of the project, and can be a mixture of any of the three below to address different concerns/scenarios in testing.

• Unit testing via Emulation

• Component and System testing via Simulation

• Performance testing via real devices

CI

As DevOps aims to fully automate several processes, this is where Continuous Integration (CI), comes into play. The key difference between normal testing and using CI, is that every commit into the repository (Pushed into remote) is tested automatically with automated build and test processes.

Manual Process without CI Photo Credit: Thanks School

This helps to:

• Ensure high quality of the code.

• Reduce potential errors.

• Instantaneous feedback on code errors

How can we start with CI? - Easy. We use GitHub Actions.

Github Actions

Github Actions is divided into different layers - workflows, jobs, runners, steps and actions (last two are part of jobs).

Let's start from the Workflow File.

So, once the workflow file defines the jobs, and the trigger conditions are met, Runners are used to run the jobs/task. Runners then reports the progress, logs and result to GitHub.

Jobs can be run in parallel, and in sequence if they are dependent on each other too.

Writing a Workflow File

[ To be continued ]

syk

Last updated