Last week we were given a set of assignments for us to improve as programmers and to be better prepared as what’s out there in the professional world, even do Windows is a popular operating system it isn’t the best environment for developing, our professor gave us this assignment so that we have better tools for working and growth as a professional. The assignments are the follow:
- Install a Linux distribution
- Install support for your development environment. This should include:
- git installed for pushing to your GitHub repository.
- Setup web deployment. You can choose a classic LAMP stack or go with another option like Node.js
- Secure GitHub external setup
- GitHub repository that you have permissions to push to yourself.
- Setup Two-Factor Authentication on your
- Setup your ssh keys for use with GitHub
- You will want to look at setting up personal access tokens to access GitHub repositories through clients without ssh key support.
- Testing environment.
- Setup your chosen testing environment for your language. JUnit, SUnit, PHPUnit, unittest (PyUnit), or any of the XUnit family.
- Automation with Cron
- Learn to create a simple cron job.
- Make it run every 5 minutes and check that is working.
- Advanced setup should ensure that not two instances of the same cron script is running simultaneously (why?). Check that is working.
- Automate a git pull from your repository to update your local version (will need to clone to local system first)
- Automate testing of that code. How can you monitor results of that test?
- Automate deployment. For this example we can do a git pull of the web code to the web environment locally.
- What is next? What ideas and struggles came up in this exercise. Write about it and document what you still need to learn in this area.
As you can see these are interesting assignments to do, and they seem pretty fun too, for the moment I finish installing ArchLinux, must say it was a real pain hahaha, because I wanted to be able to boot either Windows or Arch at the start of the computer I didn’t knew that in my school network it wouldn’t let me download the files, and because it was link to the boot of windows I ended up corrupting the image, one thing let to another and at the end had to download Windows again and lost all my file, but good think that the important files are or in my git repositories or in google drive, so just remembered to back up everything constantly.
I have already installed Java and Python on Arch so first and second assignment check. I’m in the process of configuring GitHub, I have Eclipse on Windows so I have JUnit in it, so I’ll give a try to PyUnit in Arch.
For the end, what is DevOps? For what I read from the links provided (What is DevOps? And DevOps) DevOps are a set of practices already stablish that are tended to help shorten the system development life-cycle, which is the process of planning, creating, testing, and deploying an information system.
This will be all, next post I hope to have all the assignments done.
PD: I think you should try Arch it really is awesome!!