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

Popular posts from this blog

Specflow, Gherkin

Test Automation tool, VS, selenium, Github, Gitbash