Difference between revisions of "Infrastructure plan"

From DarkWiki
Jump to: navigation, search
(The development environment)
(Introduction)
Line 7: Line 7:
 
* This is a disruptive start-up - things need to be kept away from prying eyes (competitors etc).
 
* This is a disruptive start-up - things need to be kept away from prying eyes (competitors etc).
  
Secondly, a fixed financial budget, in this case, means the total cost of ownership is fixed. i.e. No recurring costs, licence fees, etc. I have plenty of hardware capacity on old servers, and 100% usage of them costs only the electricity.
+
Secondly, a fixed financial budget, in this case, means the total cost of ownership and operation is fixed and known in advance. i.e. No recurring costs, licence fees, etc. I have plenty of hardware capacity on old servers, and 100% usage of them costs only the electricity.
  
 
* No on-going fees - budget is fixed
 
* No on-going fees - budget is fixed
Line 16: Line 16:
 
Why not just use the cloud and accept the costs?
 
Why not just use the cloud and accept the costs?
  
Because I don't have to. I can build physical computers quite happily, and I've enough parts to last years. My development stack can be entirely disconnected from the Internet, should I so wish. Oh, and those costs are not as low as people think.
+
Because I don't have to. I can build physical computers quite happily, and I've enough parts to last years. My development stack can be entirely disconnected from the Internet, should I so wish. Oh, and those cloud costs are not as low as people think.
  
 
==The environments==
 
==The environments==

Revision as of 15:14, 8 June 2017

Introduction

I decided to take on the challenge of building software privately and on a fixed, minuscule budget. So I should first explain exactly what I mean by this and why I think it's important.

Firstly, by "private" I mean that the infrastructure won't be accessible to the public (other than that which I explicitly allow), and source code to my projects will be kept private. Services requiring that I share source code in exchange for using their platforms are therefore excluded.

  • This is a disruptive start-up - things need to be kept away from prying eyes (competitors etc).

Secondly, a fixed financial budget, in this case, means the total cost of ownership and operation is fixed and known in advance. i.e. No recurring costs, licence fees, etc. I have plenty of hardware capacity on old servers, and 100% usage of them costs only the electricity.

  • No on-going fees - budget is fixed
  • Productivity/services do not stop when budget is exhausted
  • Hardware is not an issue
    • My local dev server is an 8-core I7 with 24Gb RAM and 4Tb disk

Why not just use the cloud and accept the costs?

Because I don't have to. I can build physical computers quite happily, and I've enough parts to last years. My development stack can be entirely disconnected from the Internet, should I so wish. Oh, and those cloud costs are not as low as people think.

The environments

There are three main environments, and they will share many aspects. Being able to throw away an environment and completely rebuild it automatically is important.

The development environment

This is where the bulk of the work will be done, and costs are to be kept down.

  • Jenkins CI
  • Artifactory
  • Docker repository
  • Docker containers

The demo environment

This environment is for demonstrating the product, getting user feedback and performance tests etc.

The live environment

This is the actual environment where the product(s) will run.

Source code

There are two main parts. Firstly, the development environment at home. This consists of a big server whirring away all day in my basement. This will have all by work on, except my source code. The source code will be stored in Git at Bit Bucket as it's free for private repositories with very few developers.