Companies including Google, Comcast, Hewlett-Packard, Virgin, Sky, GoPro, Airbnb and Microsoft count on Lithium Technologies to help them build trusted relationships with their customers – whether those customers are tweeting complaints or hitting “like” for the brand on their iPhones.
Headquartered in San Francisco, Lithium’s total community platform is used by more than 300 brands across tech, consumer electronics, telecommunications, financial services, retail and other industries.
As the hoopla over containers expands, they provide an interesting example of a company running a private and public cloud. At Lithium an OpenStack production environment is evolving to leverage a hybrid cloud platform to deliver containerized micro-services. Kubernetes is used to simplify and automate the service delivery model across the public/private environments (OpenStack bare metal, Amazon Web Services (AWS) and Google Container Engine) a “really powerful” combination, says Lachlan Evenson, cloud platform engineering team lead.
In this Q&A, Evenson gives Superuser a breakdown of when to break up with your virtual machines and embrace containers and shares some of his trusted resources for getting started.
How are you currently using container technology with OpenStack in your private cloud?
Containers enable and simplify our micro-service strategy. Using OpenStack and public cloud as an enterprise cloud platform to deliver containers allows us to leverage the best of both worlds.
How does Kubernetes help with your hybrid cloud?
Our goal at Lithium is to provide a single deployment toolchain to deploy our applications across cloud environments whilst providing portability without sacrificing developer productivity.
Kubernetes allows us to stay within container primitives such that we can move any workload, anywhere, with no vendor lock. Benefits are more density out of OpenStack, ability to manage more with less, higher uptime. OpenStack gave us economy of scale, containers allow us to double down.
Are you using the OpenStack API and/or the Kubernetes API and why?
We are consumers of both. We would love to be able to utilize OpenStack APIs to solve issues in Container orchestration such as using Cinder to provision persistent storage, using Glance as a Docker registry.
What resources do you recommend for people just getting started with containers?
It’s a similar journey to getting started with cloud platforms. Containers allow a level of simplicity by providing a standard packaging, deployment, and runtime environment but insist that you rethink how your applications utilize these frameworks.
Start by taking your simplest application, and containerize it. This way you can start to understand how containers function and the necessary pieces that go into running an application.
For example — How do I handle persistent storage, How do I monitor a container? How do I handle logging? The Docker Toolbox provide a great entry point to working with containers.
- Docker ToolBox – https://www.docker.com/toolbox
- OpenStack Docker-Machine OpenStack driver – https://docs.docker.com/machine/drivers/openstack/
What are the advantages of getting your feet wet this way?
You quickly understand the need for a platform to manage all your containers. What’s the workflow, how does it scale? What are the behavioral differences? Only then do you start to see the need for tools like Kubernetes.
What are the most common questions potential clients have?
How do we get started?
Are containers production ready?
How do you manage logging/monitoring?
How do you maintain for your distributed app?
How do you load balance?
How do other services connect to your containerized app?
What advice would you offer an OpenStack user considering adding containers to their implementation?
Understand your use-case. Know what problem are you trying to solve with containers and make sure it’s the right tool for the job (should it be in a VM or should it be in a container?)
Let go of VMs and embrace the nuances of containers.
Evenson offered up a session titled “Decomposing Lithium’s monolith with Kubernetes and OpenStack”at OpenStack Summit Tokyo.
You can also take a look at the repo with a basic implementation of Kubernetes running on OpenStack VMs on GitHub: https://github.com/lachie83/kubernetes-openstack
This story first appeared in the print edition of Superuser magazine distributed at the OpenStack Summit Tokyo. If you’d like to be featured in an upcoming edition, contact [email protected]