Coldharbour Digital has gained substantial experience working with Linux and UNIX-like operating systems over a period of more than 28 years.
Our work with Linux dates from 1999, and includes kernel configuration and assembly of a complete Linux distribution from scratch. We have considerable experience in Linux system administration, including application packaging, having packaged several hundred bioinformatics applications for Red Hat Enterprise Linux.
Our work with UNIX dates from 1988, when we developed a system level service for checkpointing of user processes on DEC Ultrix, just one of many examples of UNIX system programming.
We have considerable experience with ZFS on Linux as a highly cost-effective solution for science compute storage on commodity hardware. For high performance, a scale-out approach is required, with a number of servers sharing the load. We have experience with such systems, with approaching a peta-byte of total storage.
Coldharbour Digital has been engaged in DevOps since before the term was invented, mostly in Linux environments.
What is DevOps?
DevOps is what happens if you ask a software developer to perform system administration and infrastructure management. Rather than working on the level of configuring individual servers, the focus is on development of the site configuration manifest, which is applied in a uniform and automated way to all servers.
With DevOps, everything is:
- inherently documented
Uniformity of server configuration is a key way to reduce infrastructure management costs, by eliminating ad hoc differences between servers. Once a system is working, it stays working.
Better, stronger, faster, for significantly less then 6 million dollars.
Server configuration management is performed using tools such as Puppet, Chef, Salt, Ansible, or CFEngine. At Coldharbour Digital, our favourite is Puppet, but any of these is a huge improvement over a manual approach.
Configuration is contained in a central side-wide manifest, kept under configuration control. For configuration control, we recommend a modern revision control system such as Git or Mercurial.
Server deployment is a critical aspect of infrastructure management. This can be fully automated through PXE boot over the network, using kickstart files. Cobbler is a key tool for managing kickstart installation and initial configuration from manifests that we have found to be extremely beneficial.