Share this post:
People who are shopping, researching, or doing anything at all online don’t want to be held up by a website that takes a long time to load. And, ads are one of the most common reasons for poor website performance.
SteelHouse uses the IBM Cloud to ensure a good user experience, which for the advertising software company translates to an ad being served in approximately 100 milliseconds or less.
With the cloud, we’re able to deploy all over the world and we don’t have to worry about the orchestration or the time that it takes to serve an ad.
A fully managed Kubernetes service
We run a lean organization. For us to continue to compete and deliver great products, which in our case are optimized ad campaigns based on users’ browsing histories, we needed to offload as much as we could to other providers.
We had worked with bare metal machines and VSIs (virtualized server instances), and we were very interested in moving into an ecosystem where we didn’t have to do a lot of managing.
When we found out about the IBM Cloud Kubernetes Service, we chose it as our compute engine because we could standardize how we deployed and how we scaled. By running everything inside Kubernetes, it allows us to have a simple, streamlined environment with a fully managed container service for Docker (OCI) containers. This allows us to be able to deploy containerized apps onto a pool of compute hosts.
We didn’t have to do a Kubernetes installation; we just had to learn how to use and operate Kubernetes. This was simple, in part because the Kubernetes service team at IBM provided great support in getting us up to speed and helping us feel confident that we could move forward in a cloud environment running Kubernetes.
Complementary cloud technologies
Moving to a microservices architecture without Kubernetes would’ve been a nightmare. We have almost 40 microservices under our belt and Kubernetes helps us orchestrate and manage those services. Without that, the amount of manpower required to maintain and service that infrastructure would be magnitudes higher than we can currently accommodate with our staff.
We use IBM Event Streams for IBM Cloud to decouple the back-end services that do the heavy lifting from the front-end services that provide customer interaction. That way, the customer interaction isn’t degraded when we’re doing heavy processing in the back end. IBM Event Streams allows for playback of data that teams may not have been able to process or may need to be reprocessed. If needed, reloading data into the database is just a click of the button.
Additionally, because SteelHouse is part of the Cloud Native Computing Foundation user community, we like to ensure that we use as many products that are part of the foundation as possible, including Istio.
Istio is a service mesh that runs inside Kubernetes routing traffic in between services and blocking unwanted traffic from coming into the network. We chose Istio as our service mesh for the security that it provides and the ability to do retry logic on HTTP requests. Many of our services make HTTP requests to other downstream systems, but those HTTP requests can sometimes fail. Istio provides retry logic without us having to modify our code, which means we don’t have to test and configure applications – it’s just configurable at the service level.
Synergy among the team
By working with IBM Cloud Kubernetes Service, we can offload all the operational work and support and stay focused on the actual products that we’re building.
With the Kubernetes service we can spin up a new data center in 24 hours. It used to take us a month. The service is also helping us reduce ramp-up time for new hires, because it doesn’t take them two months, or six months, or a year to get up to speed and actually deploy something. It now takes them literally a week.
One of the big things that happened when we switched to Kubernetes was that developers began to take control of how applications were configured and how pipelines were built out. This took workloads off of the operations team’s plate and created a new team synergy. Now instead of having to rely on a separate team to do configuration management, our developers can build their own Docker files and deploy content to the cloud instead of running it locally on their machines. Generally, running on Kubernetes has made it possible to deploy things in half the time it used to take.
Overall, we have the ability to move faster, develop and deploy quicker, and have better insight into our applications. We can do all of this with a better service-level agreement (SLA), because we are able to use cloud-managed services that make our team seem bigger than it is.
Watch the video and read the case study to learn more about the SteelHouse journey.