I wanted to talk about how we should handle high availability of stateful applications in…
July 2, 2019
Architect’s Corner: DXC Technology Helps Italian Government Cut Infrastructure Costs in Half, Reduce Time to Market and Increase Efficiency for Containerized Apps
In today’s Architect’s Corner, we speak with Franco Fiorese, Senior Solution Consultant at DXC. Franco has led the development and roll out of the container platform used by the Italian Ministries of Education and Labor, and the Municipalities of Rome and Milan. He shares his insights into how the platform came to be and the positive impact he sees it enabling across the Italian public sector.
Key technologies discussed
Infrastructure – On-premises, Cloud
Container Runtime – Docker
Orchestration – Docker Enterprise, Kubernetes
Stateful Services – GitLab, MongoDB, Jenkins
Can you tell us a little about DXC?
DXC Technology was founded two years ago by the merger of the HPE Enterprise Service division, Computer Sciences Corporation, and Electronic Data Systems. At the time of the merger, our combined company had revenues of $25 billion and 170,000 employees worldwide. So it’s a big company. At the moment, we’re the first or the second IT service provider in several segments. While IT outsourcing was a big part of our history, for our larger customers, we are much more involved in their digital transformation which is a trend that I see continuing.
What is your role at DXC?
I am a senior Solution Consultant working with many large public and private sector accounts in Italy. For example, the container-platform that I’ve built is used by the Italian Ministries of Education and Labor, and the Municipalities of Rome and Milan. As I mentioned before, DXC helps companies with IT strategy for outsourcing, but more and more, I work with customers who are moving their internal systems to the cloud and engaging in digital transformation more broadly. As part of my mandate to enable public sector organizations to modernize their IT, I began looking at container technologies as early as 2016 as a way to help increase the efficiency of application delivery. The output of this work is a new container-based DevOps platform service that we launched this year. Because each of our public sector clients is different, this offering is not a single product, but rather a solution and set of integrations that can be used by our clients to manage the company’s entire IT lifecycle using containers.
Can you tell us how you are using containers at DXC?
We’re using containers as an integral part of our DevOps platform that has been rolled out at places like the Ministry of Education and the Municipality of Milan. We began working with the Italian government in 2014 when we won a large multi-year contract to provide cloud services for the public sector. Like many private enterprises, the Italian government was looking for the benefits of the cloud in terms of agility, reduced time to market and cost savings.
As part of this work, we’ve built a fully managed end-to-end application platform using containers. Containers deliver fantastic benefits to these public sector agencies providing services to citizens: speed, cost savings, reliability.
Most of the agencies that we work with need to deliver web content to their users. For instance, with the Ministry of Education, they might have a careers application, or the Municipality of Milan might have a website that lists all city services. All of these types of custom applications run on our container-platform.
But each user is a bit different. Some have embraced microservices while others are still running mainly Java-based applications. So our platform needs to be flexible. One thing that we do in all cases is have the various platform components speak to each other via API. This makes it easy to add and remove different components as needed for different clients. For instance, we have one client who uses GitLab for version control and another who uses GitHub. As long as our CI/CD service can communicate with the version control system over API, then it doesn’t matter. We do the same thing for all parts of the platform stack.
Today, we use Docker Enterprise as the container management layer. We’ve used Docker Enterprise for a number of years and it is simple to use and implement. We do see that Kubernetes as a platform is benefiting from a lot of innovation right now and we will increase our use of Kubernetes over time.
What were some of the main challenges you needed to overcome in order to run stateful services (like databases) in containers?
Running stateful services has been the biggest challenge to overcome with this project because you have to deal with a number of complex issues: performance, data security, backup, disaster recovery. We evaluated a number of solutions to these challenges, for instance, GlusterFS, but ran into a lot of latency issues and corruption of replicas. Then we found Portworx, tested it and were really pleased with the results.
Combined with the container-orchestrator itself, in our case Swarm or Kubernetes, Portworx allows our platform to provide a lot of higher-level value to the end users. For instance, with Portworx replication, we can ensure high availability for any stateful services very easily. If we lose a node in our cluster, the scheduler can just move the application to another node in the cluster. With snapshots, we can easily provide backups.
Due to the nature of our customers and their data, though, we also have to be really aware of things like data security by encrypting data in flight and at rest, and providing a full disaster recovery solution of their applications.
Running databases in containers in production isn’t just about solving storage issues. You have to think about the end-to-end experience. That’s why we went with Portworx.
What benefits do your clients see when they move to your container platform?
Speed is the number one benefit. With the DXC container platform backed by Portworx, it is really easy for our customers to develop, test and run any application, even stateful services. If they want, they can have a pipeline that can run hundreds of times a day. Maybe they don’t need to deploy that frequently, but the fact that they can means that they can move so much faster. Speed is not typically something that people think about when it comes to public services and so it’s exciting that we’ve been able to enable that.
Cost savings in another benefit. Conservatively, we estimate that most clients will save 30% on infrastructure costs by moving to the cloud. With containers, that number probably goes higher to 40% or 50%. The reason is because you can be so much more efficient with your infrastructure.
The last benefit is really that the container platform is an enabler of DevOps in an organization. You can do DevOps without containers, of course, but containers make it so much easier. Take the public sector. The traditional approach to deploying an application involves a lot of coordination over email. This is not very efficient, but with DevOps practices, we move from monthly deployments to daily deployments. DevOps forces you to change your organization’s mindset, culture, and processes so you can move faster. The container platform is a true enabler to this.