user3461002
user3461002

Reputation: 51

Hosting Plastic SCM on Amazon?

I'm looking to setup Plastic SCM on a hosted server. Considering an Amazon EC2 instance for this. Any recommendations would be appreciated.

Thanks!

Upvotes: 5

Views: 1846

Answers (1)

pablo
pablo

Reputation: 6402

We have extensively tested Plastic on EC2, in fact it is one of the main environments where we run Plastic SCM tests.

It all depends on the load that the server needs to handle.

Tiny server for occasional pushing and pulling

For instance, the demo server we use to handle the evaluation guide runs on a tiny EC2 instance, with Linux and MySQL and a total RAM of 512Mb. It is good for occasional pushing and pulling but of course not to be used under heavy load.

Big server for extreme load

On the other hand, we use a more powerful server to run 'load tests' with 300 concurrent bot clients doing about 2000 checkins per minute on a big repository. We detail the specs here. Basically, for higher perf:

  • 20GB RAM
  • 2 x Intel Xeon X5570
  • 4 core per processor (2 threads per core) (2.7Ghz) – 16 logical cores – Amazon server running Windows Server 2012 + SQL Server 2012

Central vs distributed development

That being said, remember that if you setup a cloud server your bigger restriction for heavy load won't be the server itself but the network. If you plan to work in a centralized way (your workspaces directly work connected to the cloud server) then network will definitely be a consideration. Every checkin, every create branch, every switch to a new branch will mean connecting to the remote server and chances are that you won't get the same network speed you get on a LAN.

The other option is that you work distributed: you have your own Plastic repositories on the developer machines and you just push/pull to the central server. If that's the case it will work great and the requirements won't be high at all.

Specs for a 15-users team working distributed + Amazon EC2 server

If that's your case I'd go for:

  • Linux server + MySQL (cheaper than windows and works great)

    • Make sure you install the server with the packages we provide. We include our own build of Mono that will make wonders. Remember to set up the mono server to run with sgen (the latest Mono Garbage Collector).
    • Install MySQL (or MariaDB). Follow the instructions we provide here. Remember we do need to configure the max_allowed_packet in MySQL so it allows 10Mb packages (we use 4Mb but set it to 10). Everything is explained on the guide.
    • Use "user/password" security mode. Remember to configure the permissions so only your team can access :-)
    • For 15 users a m1.small instance will be more than enough (1.75Gb of RAM and a little bit of CPU).
    • Configure SSL and remove regular TCP so that your server is always secured. Check this.
    • We added an option in 5.4 that is able to store all data in an encrypted way, so even if the central repo is hacked in Amazon (unlikely) nobody will access your data.
  • Clients (I'll assume you're using Windows):

    • Install both client and server (remember we install a server to handle the local replicas of the repos).
    • Configure it in UP (user/password) mode.
    • Push and pull from the remote.
    • Alternatively you can also configure the SQLite backend (the one I've been using for 4 years now on Windows) which is extremely fast. By default, on Windows, a SQL Server Compact Edition (embedded) will be installed. It is ok too.
    • Connect to the server using SSL.

Hope it helps :-)

Upvotes: 11

Related Questions