David O'Dwyer | 10 November 2015
One of the sentiments echoed across both days of Kubecon was the vital role the open source community plays in the rapid development of Kubernetes. All the code is open source and available on Github, where you can also find design documents, the never-ending issue queue and exciting pull requests. If you need instant support, the Slack room is fairly active, and we hang out there too. Finally, make sure to check out our day 1 roundup if you missed it!
The day started with a Keynote from Joe Beda, co founder of Kubernetes. He drilled down into what "DevOps" really means, and how microservices is just a trendy name for an idea that has long existed: breaking down a large application into manageable building blocks. We also learned that small teams are more productive, leading to the "2 pizza rule" - if you can't feed your whole team on 2 pizzas, it's too large! Finally, he went in to implementation details of various ops practices, most importantly the teams required to run a massive scale application. His slides can be found here
It continued with a talk from Bob Wise, "Chief Cloud Technologist" at Samsung SDS Research America. He talked about K8Scale, a special interest group exploring the high-scale limits of Kubernetes, and discovering the bottlenecks that only presented themselves when running 1000 node tests on AWS - and the struggle with extracting meaningful metrics from a Kubernetes Cluster when there are around 50 different tunable parameters.
Tobias Schmidt, a Production engineer at Soundcloud talked about their migration to microservices, during which they built their own container platform in Go, dubbed "Bazooka." As Docker became the de-facto container runtime, they slowly switched to Kubernetes after it started to meet their growing list of requirements for a container runtime system - a key one being the simplicity of deploying Kubernetes objects (containers, pods, services and replication controllers). A great case-study for Kubernetes usage in production
Yuvi Panda from the Wikimedia foundation, then talked about how Kubernetes can be used to host their bot network. Docker containers let them wrap their "legacy" code for users who are unwilling to embrace a more recent solution, whilst other developers can deploy straight on to a Kubernetes cluster.
After the break, Tim Gross, from Joyent talked about the troubles of deploying containers at massive scale. He then went through the problems discovering and load balancing containers - and how Kubernetes can make this all easier, at the cost of poor network performance due to NAT and Kube proxy! He then showed the design patterns for registration and discovery they use with their own elastic container service, Triton
Rather than a talk, Sebastian Stadil, Ashesh Badani, Gabriel Monroy, Ken Robertson, Val Bercovici and Craig McLuckie joined forces for a panel on the evolution of PaaS. Sentiments included that current PaaS solutions don't offer enough flexibility, and having the ability to set up complex software-defined networks and security rules inside a PaaS would make the lives of developers easier.
Aja Hammerly showcased some funny clustered ruby experiments.
Connor Doyle and Niklas Quarfot Nielsen, Distributed systems engineers at Intel and contributors to Apache Mesos talked about design trends in distributed schedulers, and what the cluster communities can learn from each other.
Lachlan Evenson and Pedro Marques - from Lithium Technologies and Juniper Networks respectively talked about their struggles and successes deploying microservices powered by Kubernetes and OpenContrail. They believed the hardest issue to resolve within a Kubernetes deployment was networking. Lachlan Evenson did an excellent job answering increasingly difficult network related questions from the audience. Another important pool of information for Kubernetes being deployed to production
Steve Reed had a talk about a subject close to our hearts at LiveWyer - containerising monolithic applications using the environment Kubernetes provides, namely pod networking, services for load balancing, and secrets for configuration files that would otherwise be hard-coded.
Sandeep Parikh then had something to say about continuous integration with Jenkins on Kubernetes. While he talked about why the pattern works in the microservices deployment, something we touched on last week with our blog post Jenkins with Kubernetes
Daniel Nelson, DevOps engineer at Vungle talked about Kubernetes on CoreOS on AWS, a set up we're quite familiar with. His talk went a bit deeper into marrying Kubernetes with AWS specific features for managing your resource pools and exposing services to the outside world.
The closing keynote was delivered by Kubernetes evangelist Kelsey Hightower who recently became employed by Google. He showed off live demos of new Kubernetes 1.1 features: Deployments and Jobs, before using a Tetris analogy to show off how Kubernetes can ensure you're squeezing the most out of your cluster's resource pool. An excellent visualisation method for describing one of the many benefits we have seen this week with containerised applications and workloads.
It's been great seeing how rapidly Kubernetes has evolved over the past year, and how other people have hit and solved similar pitfalls to us while attempting to use it in production. Watch this space as we power on towards the new year!