Container Camp UK 2017
What is it?
Container Camp UK 2017 is a two-day event based in QEII, London. This two-day event delivers sessions about container technology with technical talks from world-leading experts and workshops covering all major platforms.
Is It Worth Attending?
From an ‘IT Pro’ perspective, the content discussed during the event was predominantly developer-focused. A ‘Dev’ or ‘DevOps’ individual would have felt right-at-home amongst familiar topics to which many, I had personally never been exposed to previously. My interest in “containers” and “containerisation” is the absolute certainty that a good solutions consultant will need to understand the integration of this technology going forward.
This is not going to be quick so buckle-up!
Okay so first, context; There’s a shift occurring in the IT industry, best explained in the images to follow. Now, before you read any further, the content below is an opinion, based only on observation and may not reflect absolute fact. However, I’m sure most will agree on the theory that the lines between typically iscolated roles are blurring.
(high-level) in the delivery of “I.T.” (broad term, I know, but that’s all we need to make this point);
- Developers – Don’t really get involved too much with the management and day-to-day running of solutions. Write, deploy and run (most of the time).
- IT professionals – Not privy to how developers actually create applications.
- Sales – Not really sure how any of it really works. Sell the dream, let the nerds make it a reality (focused on commercial KPIs).
Again, high-level but you’ll notice that generic roles are now going beyond their former scope. More so the Dev and IT Pro positions;
- Developers – Operationally-minded. Working closer with IT Pros to deliver ‘whole’ solutions.
- IT professionals – Greater understanding of how the developers operate and designing services with that in mind.
- Sales – A much higher technical understanding is being demanded by customers. A pure sales-focused role may eventually be responsible only for feeding work into the working layers behind the sales front.
So, What About Containers?
You’re probably thinking at this point in the blog, Tom, what does this have to do with containerisation technologies? Don’t worry, we’re not going any further down the I.T. transformation discussion path and we’ll steer back onto “containers road”. In a nut-shell, containers are one of many new mechanisms that demand the blurring of boundaries because it sits between devs and pros;
What Did We Get Up To?
Microsoft Azure: Containers Everywhere
Two open source technical leads from Microsoft (Shane Peckham and Justin Davies) ran through how containers can be deployed and migrated between platforms. For me, this was my first hands-on with Docker which was a bit of a steep curve to climb. Understanding the concept and how what we were doing could present itself in a real-world context was achieved through Justin’s amazing level of patience!
The objective of the workshop was to pull an image from an online repository (GitHub repo) to a locally running instance of Docker. Then integrate that microservice with CosmosDB in Azure (push), using application insights to query the data (determining success of reference using a MongoDB API). Finally, we ran the service as an Azure web app using the same Azure container registry.
Knowing so little about Docker has inspired me to write a separate blog on what it is for other IT pros/consultants! – Watch this space.
One of the things that Shane talked about was what could be considered a ‘server-less’ environment (for lack of a better term). The discussion was commercial, comparing IaaS and PaaS with a microservice that could exist only temporarily. Compared with IaaS or PaaS which always exists, it just grows and shrinks. I’ve done my best to loosely represent this in the graph below;
Google Cloud: Kubernetes Under the Hood (Advanced)
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
A presentation was conducted to explain how you are able to quickly and efficiently respond to customer demand using the scaling capabilities of Kubernetes;
- Deploy your applications quickly and predictably.
- Scale your applications on the fly.
- Roll out new features seamlessly.
- Limit hardware usage to required resources only.
The Kubernetes goal is to foster an ecosystem of components and tools that relieve the burden of running applications in public and private clouds.
In summary, Kubernetes is;
- Portable: public, private, hybrid, multi-cloud
- Extensible: modular, pluggable, hookable, composable
- Self-healing: auto-placement, auto-restart, auto-replication, auto-scaling
Day Seminar: Speakers
Day two of Container Camp presented a stage-set line-up of guest speakers;
Everything You Thought You Already Knew About Orchestration
Do you understand how quorum, consensus, leader election, and different scheduling algorithms can impact your running application? Could you explain these concepts to the rest of your team? Come learn about the algorithms that power all modern container orchestration platforms, and walk away with actionable steps to keep your highly available services highly available.
Laura articulated the inner workings of orchestration systems such as quorum. Quorum being the minimum number of votes that a consensus group needs in order to be allowed to perform an operation.
Let’s Talk About Raft
Raft is responsible for;
- Log replication
- Leader election
Leader Election & Log Replication (Raft)
There was a demo available via http://Demo.consensus.group which demonstrated the voting process;
In the context of distributed computing a log is an appended-only, time-based record of data (just to define what a ‘log’ is in the context of the presentation).
Note: The log from Raft is for computer consumption and not ‘human-friendly’.
Managing Infrastructure in the World of Containers
David focuses on infrastructure orchestration at Docker and is a maintainer of the InfraKit project (http://github.com/docker/infrakit). Before that, David advised companies on devops best practices and co-founded a startup focusing on orchestration and infrastructure automation. He has held senior engineering and manager positions at companies such as Zynga and Google. David has over a decade of experience building and running large scale services — from payments to storage to online games.
Containers improved efficiencies in delivering software and moved us towards dynamic infrastructure and continuous deployment of code. Even as container platforms like Kubernetes solved problems in deployment and scaling, problems in the infrastructure layer remain — from bootstrapping of container platform itself to infrastructure provisioning, scaling and updates. This talk describes these problems and how InfraKit as a project solves them by providing common primitives and automation. The audience will see how InfraKit and related projects can work together to help automate the management of container platforms whether they run in public cloud or in private data centers.
Since 2011, before containers were containers, CloudFoundry has been coming up with groundbreaking new methods of dealing with processes and isolation in production. Over the last five years, different filesystems were used as the underlying structure for what now are called containers, to meet every new demand as they appeared. In this talk Tiago and Claudia will discuss the pros and cons of each adopted filesystem, pointing out the reasons for each pivot and the lessons learned in the process. Starting with AUFS in Warden “containers”, through turbulent experiences with BTRFS, finally they will demonstrate CloudFoundry’s current reliable and more maintainable solution using Overlay+XFS.
Can you restore and upgrade your Kubernetes cluster without downtime?
As motivated in https://hackernoon.com/introducing-reshifter-for-kubernetes-backup-restore-migration-upgrade-ffaf78da36 there are currently not many end-to-end solutions available for backing up, restoring and live upgrading Kubernetes clusters. In this talk you’ll learn about the challenges of Kubernetes Disaster Recovery, backup/restore solutions and we’ll also see the ReShifter tool (http://reshifter.info/) in action.
Manage policy, testing and failures in your Kubernetes services with Istio
Istio is a service mesh that allows you to connect, manage and secure your services on Kubernetes with zero changes to your application code. This talk will guide you through the Istio capabilities that you should understand to easily deliver A/B testing, canary releases, rate limiting, security, and traffic policies across your services. In addition, we’ll discuss how you can configure Istio to manage fault conditions in production, and inject faults in testing to improve your service resiliency.
Christoph Andreas Torlinsky
CNI/CNM – what does it all mean? Introducing container networking
This session will overview and elaborate what the current Container Networking frameworks all mean from a ‘end user’ point of view, often confusing and hard to navigate we have now two main frameworks – CNI (Container Network Interface) and CNM (Container Network Model). So what does it mean to you? Let’s explore!
Continuously delivering apps to Kubernetes using Helm
With Helm, you can deploy distributed apps on Kubernetes using packages known as charts, but how do you go beyond that initial deployment? Helm was designed to fit right into existing CI/CD pipelines and in this talk we’ll see this in action. We’ll also discuss the benefits of managing all your deployment configuration as code, and see how Helm enables this.
The containers mentaility is ‘build once, run anywhere’ offing unprecidented portability. Topics to take away from this blog for further study;
- Docker – http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular/
- Kubernetes – https://www.infoworld.com/article/3118345/cloud-computing/why-kubernetes-is-winning-the-container-war.html
- Istio – https://istio.io/docs/