DevOps, Github
Dev Ops
Manual Example:
Team gonna build login functionality of a software
team: 3 Developers, tester, system engineer
1 dev for FE, 1 dev for DB, 1 dev for BE working in parallel
They will discuss what they are gonna use and how they are gonna approach this particular task
- Dev 2 will create framework for project and upload in Github in a repository
- thereafter, Dev 3 will copy whatever that has been uploaded on Github and start to work on that file
- this allows all 3 devs to work on the same version at the same time
- once dev 3 finish, he will push the code to the repository and inform other devs
- before the dev 1 and 2, push his or her code into Github, they need to merge the code of dev 3 and then push their latest changes to Github
- once development is done and all pushed to Github, dev will inform system engineer
- system engineer will grab all that code and deploy it to the test environment for the tester to start testing
- it was then decided that 10 out of 50 TCs will be automated
- so each tester will work to automate 5 TCs each. Both working parallelly
- same process as developers process
- once testing completed and testers signed off, system engineer is informed
- system engineer will grab the latest code in Github and then deploy it into production
Problem with above process is what if system engineer goes on leave and this is a very manual process
- this is where DevOps comes in
DevOps approach
- more automated
- there will be DevOps engine (Azure DevOps, Jenkins, AWS pipeline, TravisCI)
- DevOps engine is able to automate the process of integration and deployment
Example:
- through DevOps engines, we are able to create Jobs
- each jobs is a unique task or responsibility
- job 1 (continuous integration): when dev or testers push a code into Github, job 1 will get from Github the latest code from repo and will do a build operation
- build operation will ensure that the code does not have any coding errors
- job 2 (continuous deployment): deploy the code to test environment
- job 3 (continuous testing): will then go to repo again, and run automation test in test env
- job 4 (continuous deployment): will retrieve latest code that has been signed off and deploy to production
- job 5 (continuous testing): run the automation test in production
- basically, DevOps now replaces the jobs that was done by system analyst previously
- note: a rule can be imposed to pause the automatic job until a certain condition has been fulfilled (until manual test cases has been run and signed off to be passed)
- Need a DevOps engineer to build the codes for the jobs
- all these jobs are called pipeline
Github
- is a repository hosting service; version control
- tool that allows you to collaborate codes with team
- software development version of a Google drive
- repository is similar with folders in Google drive
- so a repository for a specific project
Google drive
- store docs, spread sheets, photos
- able to share docs with people
Comments
Post a Comment