Continous Integration
Continous Integration
working in a team.
Everyday developers will pull and push code such repositories several
times in a day.
This code will be build, tested and evaluated, which generates the
software, or we call it artifact
at this stage.
language.
From repository
After deploying this artifact on the servers, software testers can conduct
further testing, and once
These developers are creating a software model and have worked for
three weeks straight.
Now Developers have to fix all these defects, have to rewrite the code at
several places.
This could have been much easier if the problem was detected very early
in the process, but then code
So the code is getting merged into the repository, but not really getting
integrated.
The solution to this is a very simple and a continuous process after every
single commit from the developers,
the code should be built and tested, so no waiting and collecting all these
codes with bugs, but then
times in a day.
So when the developer commits any code and automated process, will
fetch the code, build it tested
again.
So again, build and test new changes, if it's good, then it can be versioned
and stored in a software
repository.
Any defects can be caught as soon as it's merged with the code.
These IDE will be integrated with version control system to store and
version the good.
CONTINOUS DELIVERY
Continuous delivery is the extension of continuous integration
Ops team will get regular requests to deploy the artifacts generated from
the CI process on servers
Ops team with all the info they got deploy the artifacts to the servers, at
times the deployment
Dev & Ops team needs to work together to fix such deployment failures.
changes, network or firewall rules changes, and then deploy the artifact to
the server and there could
Ops team will be flooded with such requests as CI process will generate
faster and regularly.
After the manual deployment, information will be sent to the QA team for
testing after conducting testing,
So as this terminator says automate it and save your time and also
failures.
There are a lot of automation tools available in the market, like ansible,
puppet, chef for system
And there are many others to choose from based on your need.
So Ops team, will write automation code for deployment testers will write
automation code for software
Have a look.
Automate every step and then stitch everything together.
VIRTUALIZATION
In this lecture, we will talk about what is virtualization.
And this will help you understand what is cloud computing and also what
are containers?
What is Docker?
So let's see.
parallelly.
Like the one you would be using right now to watch this video.
So if your database server is running, you don't want to run a web server
in the same machine or a
We have to procure it, stack it, rack it, install operating system and
maintain it.
So if you have a ten services in a project, you need ten servers minimum
and for high availability
VMware brought in tools or created tools which could allow one computer
to run multiple operating systems.
virtual machines.
That later.
But I just want to tell you that this thing is already taken care.
But with virtualization, you can create a virtual computer in the physical
machine and you can create
And these virtual machines are isolated from each other because they
have their own operating systems.
On top of that, you will have a tool called a hypervisor, the software, and
on that you can create
virtual machines, each virtual machine having its own operating system.
And you can run your main service, your application in this OS.
Okay.
Physical computer.
Snapshot,
Well, we say machine, virtual machine, but it's really just sort of files.
You have type one, which is also called as bare metal operating a bare
metal hypervisor.
or you have Mac OS, like that you will have hypervisor installed on the
physical computer.
Now this is only for production and it won't let you use this computer for
other purposes.
This is just for learning and testing purpose, because obviously you're not
going to run production
You have the computer on top of that, your hypervisor, and then you
create your virtual machine,
Type one hypervisors can be clustered together so you can distribute your
virtual machines on the cluster
of hypervisors.
So if one of the hypervisor goes down, the other can take or run your
virtual machines.
Type two hypervisor, which just runs like a software on your computer.
This is for learning and testing purpose, so you will have your computer.
On top of that, you will have an operating system like Windows ten, Mac
OS or even Linux.
And like you install softwares, you're going to install a Type two hypervisor
on that.
You can create virtual machines and install your operating system.
Now there is a hypervisor called Hyper-V from Microsoft, and that can be
easily confused as a Type
two hypervisor.
Just a tip.
Anyways.
The reason of doing this exercises or creating virtual machines so you can
practice Linux and a few
VAGRANT
Vagrant is a tool designed to streamline and automate virtual machine
(VM) management by simplifying the process of creating, configuring, and
destroying VMs. It operates on top of hypervisors like VMware or
VirtualBox, using these systems to handle the actual virtualization while
providing a convenient layer for automation.
3. Vagrantfile: This text file contains all VM settings (e.g., CPU, RAM,
IP configuration) and provisioning instructions (e.g., setting up
servers or databases).
Common Commands:
3. Start VM: Run vagrant up to download the box (if not already
present) and create the VM.
4. Access VM: Use vagrant ssh to log into the VM and sudo -i to switch
to root, if needed.
5. Stop or Destroy VM: Use vagrant halt to power off or vagrant
destroy to delete the VM when done.
Tips: