CI CD Deployment builds Flashcards
DVCS’s
Distributed Version Control Systems
(GIT, Mercurial, Bazaar or Darcs)
Clients back up not just files but full backup of all data.
Thus if any server dies & theses systems were collaborating via that server any of the client data can be copied back up to the server to be restored.
CVCs’s
Centralized Version Control Systems
Theses Systems have a single server that contains all the versioned files, and a number of Clients that check out files from that central place.
Local Version Control Systems
Local VCSs have a simple database that keeps all the changes to files under revision control.
What is VCS
Virtual Control System
It allows you to revert selected files back to previous state, revert entire project back to a previous state, compare changes over time, see who last modified something that could be cause problems and more.
If you screw up and lose files a VCS will help by easily recovering them.
Version Control
A system that records changes to a file or files over time so that you can recall specific versions later.
Build
A version of the Software that the dev. team hands to the testing team for testing purposes.
or
Compilation process, where source code files(text) are converted into executable code.
Software Deployment
All the activities that make a software available for use.
Whats a Pipeline?
Pipeline A.K.A Data pipeline is a set of data processing elements connected in a series
Output of one element is the input of the next element.
Elements of a pipeline are done in parallel to each other.
Continuous Delivery (CD)
A software engineering approach in which teams produce software in short cycles.
This ensures Software can be reliably released at any time (oftentimes manually)
The aim is to build, test, and release software with speed and much frequency.
CD approach reduces cost, time and risk
Continuous Integration (CI)
development practice where developers integrate code into a shared repository frequently.
(preferably several times a day)
Each integration can then be verified by an automated build and automated tests.
Among them are revision control, build automation and automated testing.
Continuous Deployment
is a similar to CD (continuous delivery) this approach in software is also produced in short cycles BUT through automated deployments rather than manual ones.
Basically this is an automated way to produce Software in short cycles….(NOT MANUAL!)
Software Environments
Environments refers to the collection of hardware and software tools a system developer uses to build software systems.
Development Environment
Main environment of a developer where devs:
* do all their code updates
*all of commits and branches live.
*dev environment ususally made different than the user work environment.
What do Developers do?
Once a dev gets a story, they work on it locally on their computer and can use simulators/emulators.
Also do some light smoke and feature testing but not much because they are busy writing code.
Sandbox
is an isolated testing environment that enables users to run programs or open files without affecting the application