Experience and Technologies

Below are some highlights of the systems and technologies I use or have used over the past 25 years.

I’ll list some Projects Here

I am a great believer in and advocate of Open Source, and will always choose an Open Source solution if possible. This choice is not about cost. My focus has always been on creating and providing Services, and to provide services and ensure that they can remain supported, secure and up-to-date, it is critical that it be possible to maintain and fix issues as they arise. With proprietary software, this is frequently not the case – vendors cease supporting, or completely end-of-life a product. If this happens it can be a huge problem. With Open Source at the very least you can maintain and fix yourself. 

Debian, Ubuntu, RedHat, CentOS

Where would we be without Linux? While I very much prefer Debian and its derivatives, I am at home also with RedHat-based systems – or any other *nix systems. 

  • Designing, deploying, managing and administering production, HA Linux systems since 1993. IOL was among the first companies in the world to utilise Linux in a production environment. It remains the best technology decision I have made.
  • Very broad and deep knowledge of all aspects of Linux from embedded systems to  web-scale production environments.

Windows

  • I keep an eye on Windows technologies, but have not deployed any Windows-based system since 1996 and happy with that.

I have been deeply involved in creating virtual machine systems since 1999, and have extensive experience in a production environment with many related technologies.

  • I began by using VMware in 1999, initially for testing/development of complex HA/Cluster systems
  • 2003: Moved to Xen migrating a 24-server bare metal infrastructure to a 4-Server Xen infrastructure providing email and web services for 100,000+ users.
  • 2008: Won contract to design and deploy email service for schools for HEAnet. Delivered on time and in budget, using Xen cluster.
  • In 2012 I deployed an OpenStack cluster for production use. This was still early days for the OpenStack project, and while gaining a good understanding of the platform felt it was too infrastructure intensive for the required solution. This has lately changed and OpenStack will become more of a focus in the near future.
  • ProxMox is a highly stable and scale-able alternative to VMWare and other on-prem VM solutions.
  • In 2014 replaced OpenStack with ProxMox, a HA clustered virtualisation platform based on Linux, KVM and CoroSync. This system still runs in production providing VoIP, Web, Mail, Monitoring and various other applications. 
 

Closely tied to, and relying upon virtualisation technologies: Containers, Orchestration and DevOps are currently my main focus for deploying highly available, reliable and scale-able solutions.

Since 2014 many of my production applications have been moved to Docker containers. This has greatly increased infrastructure economies and availability. These container services have been deployed using various orchestration technologies including CoreOS, Fleetctl/etcd, Rancher, Kubernetes.

An early orchestration platform now owned by RedHat, CoreOS provided very reliable and repeatable deployment of Docker container clusters. While still in production after 4 years, most new deploys utilise Rancher.

Rancher is a Docker/Kubernetes Orchestration Platform with a very powerful set of features which compliment and enhance the underlying technologies. In use in production since 2015 it is highly scale-able and has proven very reliable. I have deployed this in Multi-Cloud + On-Prem to provide both high availability and at the same time avoiding Cloud provider lock-in. Services can be migrated automatically between cloud providers and/or on-prem servers

While not a network engineer, I have a high level of understanding of server and application-level networking particularly as it relates to virtualisation – Linux bridging, VPN, Tunnels, SDN (ZeroTier).

The past couple of years have seen Cloud Providers become not only accepted, but expected deployment platforms for mission-critical applications and services. This is due to increased reliability, and decreasing costs as well as the ability to automatically manage and scale using platform APIs alongside orchestration tools such as Ansible and Rancher. 

While the various cloud providers offer many proprietary tools for such things as load balancing, monitoring etc. I generally try not to rely too heavily on those, as it can lead to lock-in. My preferred approach is to use cloud-agnostic solutions where possible so that I can change or span providers without a high level of re-tooling.

Many of my current production systems rely on AWS as the primary cloud provider. I am very familiar with most of the main AWS technologies and offerings.

Digital Ocean is a very good provider with a developer focus. I tend to use this more for the ancillary (non-critical) and development systems. However, its price, and rich, fast API makes it a great choice for some applications.

Google Compute

GCE has recently gained a lot of traction, particularly with Kubernetes workloads, and will form part of my multi-cloud strategy in future.

I have been interested in VoIP since the mid 1990’s, when I was among the first to deploy  “voice over Internet” – until being requested/demanded to cease by the then-monopoly incumbent operator in Ireland (or having my license to operate pulled!). Since then I have maintained an interest and with the advent of Open Source VoIP technologies such as Asterisk and SIP Express Router (OpenSER/Kamailio) I began to take it more seriously.

A large part of my time during the past ten years has been focused on VoIP. It intrigues me because it is hard – hard to do right, and requires all the underlying systems to be perfect. That represents a challenge which I could not pass up.  

I have designed, built, deployed and managed a number of large scale VoIP systems (see Projects) over the years, and have a very deep knowledge of VoIP technologies and platforms. 

Kamailio

Kamailio is a wonderful, ultra-reliable, flexible SIP/VoIP server/proxy which can be employed in so many VoIP scenarios. It is one of the backbone technologies for many of the largest VoIP service providers. Many of the largest VoIP operations globally are built upon Kamailio. It’s heritage goes back to SIP Express Router, a project from the early ‘naughties – one of the first, reference implementations of the SIP protocol. Various forks and ~15 years later later, Kamailio remains the (IMO) leader in SIP protocol-standard systems.

Sonus

Sonus is included here not because I love it, but because I (reluctantly) spent so much time with it. An “Enterprise” system which is used widely, it was a system which was forced upon us by management/commercial reasons. Exemplifying my reluctance to use proprietary systems, we were left with no support and EOL hardware/software on a system providing voice services to 30,000+ subscribers. I was the only available support for FIVE years, and managed to keep the system going until I migrated all subscribers onto a new Sipwise system. 

Sipwise

The choice of Sonus, above, was not my recommendation. I had recommended a small Austrian company Sipwise Gmbh who had a (Kamailio/Asterisk based) system which was very well designed and I felt was a much better platform. In the end, it all came good, and in 2015 the Sonus system was replaced by Sipwise C5 and we managed a seamless migration for 30,000+ voice subscribers. See Projects for more information on this migration 

Asterisk

It was Asterisk which really got me seriously started with VoIP. Asterisk, to me, was akin to the Apache web server. It was an infinitely extendable tool for delivering Voice services, as Apache was for delivering Web. Asterisk fit with my “Internet First” view of the world, and provided me with a tool which I could use to create any manner of voice-enabled service. Since that time, Asterisk has continually been a part of my toolbox.

Some of my other favourites

  • Git – Source and configuration versioning. If it changes, it is in Git. I use Gitlab, running our own servers, and it is central to everything I do.
  • Ansible – configuration management / IT Automation. I have tried them all – Puppet, Chef, SaltStack – but Ansible ticks all my boxes. 
  • Redmine – Project Management / Ticketing. There is nothing you cannot do with it. Wildly under-appreciated
  • PHP – people complain about it, but it continues to evolve and has a wonderful ecosystem.
  • tmux – how did I survive for so long without tmux?
  • ZeroTier – networking for the connected world. Oh yeah!
  • monit – for managing/monitoring services and servers.
  • haproxy – load balancing / web proxy

My Resume/CV from 2007: Barry_Flanagan-Resume-2007