Healthdirect is emerging as another Australian early adopter of Docker containers, revealing the strategy it used to win the business over to the technology.
The company, which is fully government-funded and provides health services via web applications, “started really small” in its approach to Docker and has incrementally built upon early successes.
“We didn’t pitch Docker as if we were going to use it everywhere,” DevOps solution architect Scott Coulton said in a recent Docker webinar.
Docker provides a way to package and ship a Linux application or service into "containers" that can be easily moved between clouds or virtual machines.
Dogfooding in DevOps
Healthdirect’s various web applications are created and maintained by their own development teams.
The company then has a central DevOps function that – among other things – looks after the “platform needs of the development teams to get their applications into production”, Coulton said.
As a first step, Coulton's team "ate our own dog food” on Docker, using it for a proof-of-concept where they ran Jenkins in a Docker container.
Jenkins is an open source automation server that enables developers to build, test and deploy their software. Coulton's team uses it as its build server.
Then, inspired by Docker software engineer Jessie Frazelle, Coulton’s team started running their desktop apps inside containers.
“That gave us really good insights into how Docker works, and when you move that knowledge into the applications space, it gives you a really good foundation to build complex applications in Docker,” Coulton said.
“By eating our own dog food, we had already gone through all the potential pitfalls of Docker by the time we wanted to bring it to a wider audience, so it was very easy for the business to pick up.”
Even so, Coulton maintained the incremental approach to introducing Docker into Healthdirect’s environment.
One of the company’s development teams pitched Docker as part of an application they were developing. Following that, Docker was pitched to another business unit.
“We took a chunk of code – a redirection service would be a perfect example, which is one microservices component of a larger application – and we rolled that out with Docker,” Coulton said.
“So we didn’t containerise the full application."
Coulton recommended treating containers as “lego” blocks.
“Pick an application you know works, get that tight and working perfectly, and then move on to the next bit,” Coulton said.
“Think of it like lego. Before you know it you’ve put all the lego together and you’ve got a massive castle.”
Still, Healthdirect’s applications are not completely containerised at present, though it is constantly expanding Docker’s use.
“One of the bigger projects we just did is we implemented a full demo environment for one of the project teams end-to-end in Docker,” Coulton said.
“We can roll that out with one push from a build server, and it will build their whole application for them to go and demonstrate it to new government bodies. That’s all built with Docker.”
Coulton’s own team has also adopted an ethos of “containerise where we can”.
“We pretty much containerise everything we can in our team right now,” Coulton said. “The other teams are just starting to grab onto that and they’ve started to migrate all their applications across.”
That ethos adds to an existing one in the team and wider company that "everything needs to be 100 percent automated”, Coulton said.
“We automate all our infrastructure with Puppet at the moment,” he said.
“We don’t make manual changes anywhere or log into production servers at all – everything’s done via code and we are 100 percent hands off.
“We’ve got Puppet code running and configuring applications on EC2 instances and now we’ve got Puppet configuring and deploying out containerised applications.
“It’s our base platform to deploy everything into our environment."
Because Healthdirect’s use of Puppet pre-dated Docker, Coulton noted the importance of having Docker “bolt in with Puppet” from day one.
The company continues to fully run its environment in AWS. “Everything’s on EC2,” Coulton said.
To aid Docker’s expansion into the environment, Coulton’s team runs Docker DataCentre, a fairly new platform that lets developers build and deploy containerised applications in a self-service manner, while affording IT operations some management and control. (Docker calls it “containers-as-a-service”).
Coulton believes Docker’s presence in Healthdirect’s environment is a positive both for its developers and for Australians that use its healthcare applications.
“It gives us more time to actually develop applications and deliver new services to the Australian public so they get better health care, which is awesome for the public and awesome for the business as well,” he said.
This article is part of a series produced by iTnews for the Spotlight on data centres and IT infrastructure.