Implementing systems is one thing – but continuously delivering them into production and providing the needed reliability might even be a bigger challenge. Only recently delivering systems has gotten the needed focus.
The Delivering Systems track at GOTO Berlin 2016 does not just provide insights on software engineering practices for infrastructure as code and new basic technologies like containers but also tests – because only if software is well tested, it will eventually be made available to users and customers.
Watch the videos from the Delivering Systems track at GOTO Berlin below.
Acceptance Testing for Continuous Delivery
with Dave Farley, Co-Author of Continuous Delivery
Writing and maintaining a suite acceptance tests that can give you a high level of confidence in the behaviour and configuration of your system is a complex task. In this talk Dave will describe approaches to acceptance testing that allow teams to: work quickly and effectively; build excellent functional coverage for complex enterprise-scale systems; manage and maintain those tests in the face of change, and of evolution in both the codebase and the understanding of the business problem.
This talk answers the following questions, and more: How do you fail fast? How do you make your testing scalable? How do you isolate test cases from one-another? How do you maintain a working body of tests when you radically change the interface to your system?
Building and Deploying Microservices Applications with Containers
with Ilya Dmitrichenko, Developer Experience Engineer at Weaveworks
In this talk, Ilya shows off a sample reference microservices app, a socks shop. We look at how it’s been developed, and then deploy it to three different container platforms, and then use Weave Scope to find out how it works.
You build it, you run it: Operating SoundCloud’s Microservice Architecture
with Matthias Rampke, Engineer at SoundCloud
At SoundCloud, each development team operates the systems that they own, and they own the systems that they build. By eliminating dedicated Operations and SRE roles, our engineers have the autonomy they need to iterate fast, while maintaining cohesion and reliability in our platform. Learn how we organise deployment, on-call, shared infrastructure, and the role of core and infrastructure engineering.
Cluster Management at Google with Borg
with John Wilkes, Principal Software Engineer at Google
Cluster management is the set of tools and processes that Google uses to control the computing infrastructure in our data centers. It includes allocating resources to different applications on our fleet of computers, looking after software installations and hardware, monitoring, and many other things. I provide an overview of what we can do, and explain how the lessons we’ve learned have driven the design of Kubernetes, our new open-source cluster management system. We certainly don’t have all the answers, but we do have some pretty impressive systems.
Implementing Infrastructure as Code
with Kief Morris, Cloud Practice Lead at ThoughtWorks
Infrastructure as Code (IaC) is the “A(utomation)” in the DevOps “CALMS” model. It treats dynamic infrastructure as a software system, which means development tools and agile practices like TDD, CI, and CD can be used.
Most development and operations teams are making at least some use of IaC tools such as cloud, Chef, Puppet, Ansible, Terraform, etc. But not many are using them to their full potential. This talk explains some of the core challenges of managing infrastructure in a fully automated way, and shares principles and patterns for addressing them.
The talk walks through a number of patterns for implementing IaC tools such as AWS, Chef, Puppet, Ansible, and Terraform, to build a change management pipeline to automatically test and apply configuration to infrastructure. The patterns are not tool-specific, so should be useful for any team using these types of tools.
Attendees should come away with an understanding of how concepts such as Continuous Integration (CI), Continuous Delivery (CD), Test Driven Development (TDD) can be applied to infrastructure.