git
Immutable infrastructure
Immutable infrastructure is an approach to managing services and software deployments on IT resources wherein components are replaced rather than changed. An application or service is effectively redeployed each time any change occurs.
Pros of immutable infrastructure
There are no server updates which can be problematic at times. That means lower IT complexity and failures.
Reduces support calls: it resolves the issues by deleting the instance that causes the problem.
Improves security and incident resolution: incident becomes an exception. The exception problem is solved by machine learning (Weka)from manual rules to automatic.
Cost savings by encouraging reduced hardware usage.
Configuration management can run faster than manual system.
Less dependency on third party resources at deployment.
Requires a learning curve due to new tools.
Immutable infrastructure is a DevOps key-tool
DevOps adopt this infrastructure concept as it makes creating new servers affordable and accessible. If there is a requirement for improvements or updates, you have to replace the entire server and not change a part of it.
Immutable infrastructure is very much in tune with the idea of infrastructure as a code. You can do all the planning of components like networking, instances, and security with infrastructure as a code. Once done, you can push it into your dev ecosystem. It becomes easy to test and prod as you promote them in the dev environment and consistently repeat these steps.
DevOps tools and culture are to work together to achieve supply development with continuous delivery. And you know continuous delivery drives immutable infrastructure.
What is Git and what is not git
what? git is a version control system (The git official repo)
for what? git is used for source code management (git tuto)
how? commits are snapshots, not diffs! (The Git Object Model) and (Git Internals - Git Objects)
Key-ideas
Git stores unique content and no duplicates
Each key-value pair entry contains a unique hash as a key: SHA-ID.
There are only three types of values:
blobs for files
tree for directories
commit for commit messages
author, including a timestamp
committer, including a timestamp
reference to parent commit