Skip to main content

Devops for beginners

 Devops:



Software development life cycle:


1.requirement gathering


2.planning


3.design


4.development


5.testing


6.deployment and maintenance


###################


Models in SDLC:


1. Waterfall model


2.Agile


3.Spiral


4.Big bang


######################


Waterfall method:


once 1 step is completed then only we go to 2nd step.


1.requirement gathering


2.planning


3.design


4.development


5.testing


6.deployment and maintenance

#################



Agile: waterfall model is repeated many times until clients needs are satisfied.


#############

Continuous Integration:


Scenario:


developers write the several lines of code everyday creating the software. this code should be stored somewhere at the centralized place. This centralized repository called as the version control system like github. everyday developers push and pull the code from such repositories. code changes or the code commits happens continously. On the repository, this code will be built, tested and evaluated. artifacts/software is the bundle of the files which will be created from the repository. That artifact will be moved and deployed to the built server. Testers will test the code on the test servers and once the code is approved it will be deployed to production servers.


problem:


developers have worked 3 weeks straight and worked on the software module and pushed the code to the repository.once the code is deployed on the server, during the testing you notice there are lot of errors and bugs. Now the developer have to rewrite the code at many places and deply it again. problem here is code is getting merged with the repository but not really getting integrated.




Solution(achieved through the CI):


After every single commit from the developers, code should be built and tested. but developer commit several time a day and it is not humanly possible to build and test the code after the commit. So we need to automate this process, When the developer commits any code, automated process will fetch the code, build it test it, and send the notification if there is any failure in the code. As soon as the failure notification is received. The developers will fix the code and commit again. 



#######################


cyclic view of CI:


code

fetch

build

test 

notify

 feedback 

repeat.


##################

Continuous Delivery: (CD)


it is an automated process for delivering the code changes to the servers quickly and efficiently. continuous delivery is the extension of the continous integration.


process:



When the developer commits any code, automated process will fetch the code, build it.test it, and send the notification if there is any failure in the code. As soon as the failure notification is received, the ddeveloper will fix the code and commit again. if everything is good with the code, Artifact(bundle of files) is genrated and it is stored in repository. That artifact is deployed to the server and then the code is tested.


But deployment of the code contains so many steps:


server provisioning

installing the dependancies

configuration changes

network

artifact deployment

any other changes




This is so much of manual task and can be automated. in continuous delivery below tasks are automated:

server provisioning


installing the dependancies


configuration changes


network


artifact deployment


any other changes


#########################


There are so many automation tools available in the market:


Ansible


terraform


jenkins for ci cd automation


and many more

##################


tasks in Testing also needs to be automated:


functional


load


performance


DB


Security


any other task

#####################


testing team can automate the above mentioned tasks.



development team > integrate the Cl Operations team > automate the deployment QA team: automate the testing


all the 3 processes are integrated together.



Comments

Popular posts from this blog

Post build configurations on Redhat VM

  ************************************* Post build configuration on Linux VM: ************************************* Set the hostname. hostnamectl set-hostname <Servername> ***************************************** Network configuration : Make sure VM gets the ipv4 ip address either from DHCP or assign the static ip address to it.   Question : How to assign the static ip address to the linux machine using the nmcli ?  Answer: fire the below commands: nmcli device nmcli connection modify enpos3 ipv4.addresses 10.253.1.34/24 nmcli connection modify enpos3 ipv4.gateway 10.253.1.1 nmcli connection modify enpos3 ipv4.method manual nmcli connection modify enpos3 ipv4.dns 8.8.8.8 nmli connection down enpos3 nmcli connection up enpos3 ip address show enpos3 nmcli connection show ************************†****************** Register to RHΝ. Register to redhat network if the linux vm is redhat vm. subscription-manager register --org <org>  --activationkey <activat...

AWS cloud practitioner notes

 AWS Certified cloud practitioner: What is cloud computing? cloud computing is the on demand delivery of the compute power, database storage, applications and other IT resources through a cloud services platform with pay-as-you-go pricing. you can provision exactly the right type and size of the computing resources you need. you can access many resources as you need almost instantly like servers, storage,databases and application services as well. Amazon web services owns and maintains the network connected hardware required for these application services, while you provision and use what you need via a web application. ***************************************** Deployment models of Cloud: Private Cloud: Cloud service used by a single organisation, not exposed to the public. complete control. security of the sensitive applications meeting specific business needs. ********************** Public Cloud: Cloud resources owned and operated by the third party. cloud service provider delive...