Deploying Software

Steps

The steps for deploying software whether open source, proprietary or homegrown have remained the same:

  1. Download source code or binaries
  2. Install dependencies
  3. Edit configuration files
  4. Start services

These activities come under the broad umbrella of Configuration Management.

As a developer this term can be confusing. Read Configuration Management to understand this term.

Source Code vs Binaries

When you download the source code, you have to compile it. Binaries are pre-compiled executable files or libraries of a software program. Binaries are ready-to-run version of a program or library that has already been compiled for a specific operating system and architecture. These are distributed through package managers, official websites or software repositories.

Downloading binaries has several advantages:

  1. Convenience: You don’t need to compile the source code yourself, which can be time-consuming and require additional tools and dependencies.

  2. Compatibility: The binaries are often compiled and tested for specific operating systems and architectures, ensuring better compatibility and reducing the chances of compilation errors.

  3. Faster installation: Since the binaries are already compiled, the installation process is typically faster compared to compiling from source code.

However, they also has some limitations:

  1. Limited customization: When you fetch binaries, you usually don’t have the ability to customize the software or enable/disable specific features, as you would when compiling from source code.

  2. Security: Fetching binaries from untrusted sources can pose security risks, as the binaries may have been tampered with or may contain malicious code. It’s important to obtain binaries from trusted sources.

  3. Lack of control: You rely on the software developers or maintainers to provide up-to-date and compatible binaries. If they stop providing binaries for your specific operating system or architecture, you may need to resort to compiling from source code.