100 Infrastructure basics

Posted About 7 years ago. Visible to the public.

opscomplete

Our opscomplete gives you everything necessary to run a modern web infrastructure in a professional manner.
You have the application code, we take care of everything else. We have a private cloud running hundreds of sites but also support running and maintaining your application on AWS.

Architecture

Image

Datacenter location

Our datacenter is located entirely within Germany and, consequently, the EU.

Network Connectivity

Public

Our Infrastructure has a 10 GBit/s uplink to the data center Backbone which has a total capacity of 4 TBit/s. There are connections to BCIX, DE-CIX Munich and Frankfurt ECIX Berlin, Düsseldorf and Munich as well as N-IX.

Internal

Internal bandwidth is set to 1 GBit/s.

External

The uplink for the internal servers (outside the scope of the load balancers) is set to 1 Gbit/s.

Traffic

Public

The default setup includes 1000 GB of traffic and a peak bandwidth of 500 Mbit/s.

Internal

Internal traffic is included.

External

External traffic from servers (outside the scope of the load balancer) is included.

Traffic Shaping on VMs

We limit the network bandwidth on the VMs to prevent them from using all the resources of the underlying VM Host. If we detect a VM is running at it's limit all the time we discuss with the customer if we need to increase the available network bandwidth.

Possibilities

Redis/Sentinel

If you want to have a high-availability Redis setup we offer Sentinel with automatic failover. This needs a dedicated quorum server or third application server.

Dedicated Database

Besides the shared database server we also offer dedicated database servers just for the customer. We support MySQL/MariaDB and PostgreSQL, both with high-availability, redundancy and automatic-failover as well es daily backups.

SSL

We integrate the free Let's Encrypt Certificates as well as fee-based commercial certificates.

Security

Updates

We install newest updates for our systems on a weekly schedule. In the case of critical issues we install the security fixes or implement necessary mitigations as soon as possible, taking into consideration possible impact to production resources.

Connections

We rely on encrypted connections and use the best practice attempt for cryptographic algorithms. We don't have plain text authentication and force the use public key authentication.

Database connections stay within the local network and aren't accessible from the Internet.

Availability

Loadbalancer

We have a setup of three load balancing servers that are capable of fast, automatic failover to cover any outages and they also offer round-robin and weighted traffic distribution.

Application Server

Our default setup includes two application servers to achieve redundancy. Thus if one of the servers goes offline (failure, outage, planned maintenance) the application is still available and accessible on the other one. It's possible to scale vertically (add virtual resources) as well as horizontally (add servers), see here.

Database Server

Our default setup includes two database servers at different physical locations to achieve redundancy. Thus if one of the servers goes offline (failure, outage, planned maintenance) the databases are still available and usable.

Monitoring

We provide two sorts of monitoring:

Outage

We run an automated 24/7 monitoring for all relevant resources and services so we can act fast on any issues. We're using Naemon Show archive.org snapshot for that purpose.

Performance

We run an automated 24/7 performance monitoring to cover the need for adjustments regarding hardware resources. We're using collectd Show archive.org snapshot , graphite Show archive.org snapshot and grafana Show archive.org snapshot for that purpose.

Backups

We provide daily backups of databases and data stored in glusterfs from the application servers. Up on request we backup additional filesystem paths. You'll find the details here: 400 Backup

Configuration Management

We use puppet Show archive.org snapshot for configuration management. Thus we can provide documented configuration that provides a history for configuration changes. The configuration on the server is defined by puppet and we can guarantee a solid and stringent state of your servers. This also assures that each of your application servers for your project are the same.

Thomas Eisenbarth
Last edit
Over 1 year ago
Florian Heinle
License
Source code in this card is licensed under the MIT License.
Posted by Thomas Eisenbarth to opscomplete (2017-03-31 11:30)