diff --git a/README.md b/README.md index 115c499..8629caf 100644 --- a/README.md +++ b/README.md @@ -196,9 +196,10 @@ which follows the immutable infrastructure paradigm.
What ways are you familiar with to deliver a software? What are the advantages and disadvantages of each method?
- * Archive - collect all your app files into one archive (e.g. tar) and deliver it to the user. - * Package - depends on the OS, you can use your OS package format (e.g. in RHEL/Fefodra it's RPM) to deliver your software with a way to install, uninstall and update it using the standard packager commands - * Images - Either VM or container images where your package is included with everything it needs in order to run successfully. + * Source - Maintain build script within version control system so that user can build your app after cloning repository. Advantage: User can quickly checkout different versions of application. Disadvantage: requires build tools installed on users machine. + * Archive - collect all your app files into one archive (e.g. tar) and deliver it to the user. Advantage: Only tool needed is an unarchiver. Disadvantage: Requires repeating the same procedure when updating, not good if there are a lot of dependencies. + * Package - depends on the OS, you can use your OS package format (e.g. in RHEL/Fefodra it's RPM) to deliver your software with a way to install, uninstall and update it using the standard packager commands. Advantages: Package manager takes care of support for installation, uninstallation, updating and dependency management. Disadvantage: Requires managing package repository. + * Images - Either VM or container images where your package is included with everything it needs in order to run successfully. Advantage: everything is preinstalled, it has high degree of environment isolation. Disadvantage: Requires knowledge of building and optimizing images.