更多

Built by technologists for technologists

What is XConf?

No fluff. No filler. Just real tech.



XConf is a one-day showcase of the latest thinking from ThoughtWorks' tech community and provides a platform for passionate technologists who are looking for inspiration and a chance to network with peers. Our goal is to create a community of technologists; learning and sharing the latest technology ideas in an ever changing world.


Our theme for this year’s event is Cloud Native Engineering for Data Intensive Applications. It reflects the convergence of several trends we’ve seen evolve over recent years. Today’s applications are driven by increasing volumes of data and must run securely in the cloud. We’ve shifted to a cloud-first world and are now seeing intense competition between public cloud vendors to provide the best developer experience. But hosting these data-intensive applications in the cloud also raises concerns about privacy and the ethical treatment of customer data.


We’d like to encourage a free and open exchange of ideas around these and other related topics.


We hope to see you there

In this year’s program, we hope to explore and answer:

1) How we can use automation to optimise the cloud experience


2) The sensible defaults for setting up and operating the latest crop of container orchestration tools


3) How we can apply what we know about good software engineering practices to the worlds of infrastructure automation


4) What it means for a Developer to ethically handle personal information in a cloud environment

Keynote

Kief Morris



Kief Morris

Principal Cloud Technologist

ThoughtWorks

All Your Stuff is Gonna Change: Build Evolvable Cloud Infrastructure and Avoid Tears


All too often automation tools are used to build infrastructure in the cloud that looks pretty much like the infrastructure we had in data centres. We envision a "final" architecture that is essentially static, and take it for granted that changing it later will involve a major programme of work. As a result, we end up with a fragile, inconsistent, unpatched mess in the cloud. Rather than spending most of our time fighting fires and rolling out patches, how about we build our infrastructure from the start assuming we'll need to change it before we've even finished building it? What would that look like?


Let's explore ways to implement cloud-based systems using automation tools like Terraform, CloudFormation, Ansible, Chef, Puppet, Docker, Kubernetes (anything, really) with change as a first-class concern. Apply agile engineering practices like Test Driven Development, Continuous Integration, and Continuous Delivery to your infrastructure. Adopt design patterns to make your infrastructure architecture loosely coupled and resilient. The concepts discussed here are relevant whatever your tools of choice, and should be of interest to any technical practitioner, architect, or decision maker involved in designing and implementing cloud-style infrastructure.

Agenda

8:30 AMArrival & Registration
9:00 AMAll Your Stuff is Gonna Change: Build Evolvable Cloud Infrastructure & Avoid TearsKief Morris
10:05 AMDoing Infrastructure as Code? You Can Do BetterShohre Mansouri and Effy Elden
10:45 AMBREAK
11:10 AMCore Decisions in Distributed Event-Driven ArchitectureDuana Stanley
11:55 AMDesigning an Asynchronous Microservices Runtime with Kafka: State, Scale and PerformanceDavid Peterson, Confluent
12:35 PMLUNCH
1:40 PMExperiments in Teaching a Machine to CodeKaren Davis
2:25 PMObservability for EveryoneInny So and Andrew Jones
3:05 PMBREAK
3:25 PMAutomated Governance - Raising the Bar for AgilityBal Sandhu and Satyam Argawala
4:10 PMSomeone Far Away, Who You Don’t Even Know, Will DieTom Sulston and Josh Kinal
5:00 PMNetworking
6:00 PMClose

Speakers


Shohre Mansouri

Senior Consultant

ThoughtWorks


Effy Elden

Senior Consultant

ThoughtWorks


Doing Infrastructure as Code? You Can Do Better


Developing infrastructure as code often gets cumbersome. There are long feedback cycles for the developers from the moment they are done with a bit of coding until they find out that something is broken. With the fix there is going to be another wait time, often minutes, yet to find out another thing needs to be fixed. This wastes a lot of time and it is not ideal. There is also some bits of the code that may never be tested on the Dev or CI or even Test environments, for example some things that are specific to the Prod environment, may never be tested until we actually go to production.


In this talk we will show techniques that can be used to make developing Infrastructure as Code a better experience for developers, by establishing a faster feedback cycle and also producing higher quality well-tested code.


Duana Stanley

Lead Consultant

ThoughtWorks

Core Decisions in Distributed Event-Driven Architecture


In an event-driven, (micro)services based architecture, we imagine a bunch of services with a single responsibility interacting with each other by emitting and reacting to domain events. Sounds nice.


Here are some of the decisions we need to make to get there:


  • When do we use API calls vs events for interactions?
  • Should we always prefer building up local replicas from events when we need data from other services?
  • How do we design events?
  • When do we use event sourcing?


We'll go over these questions and some principals that have helped us in designing distributed event-driven architectures for our clients.


David Peterson

Systems Engineer, APAC

Confluent


Designing an Asynchronous Microservices Runtime with Kafka: State, Scale and Performance


Today's world operates under a new set of constraints and tries to solve problems that were never thought possible. Everything has changed.


This talk will cover the origins of how Apache Kafka came to be along with how it now underpins some of the worlds largest microservice ecosystems. Kafka and the microservice movement gathered momentum at the same time, Kafka for streams or data-in-motion and microservices as a new, fine-grained architectural principle. The thorn in the side for microservices has always been about the ability to handle, state, and scale. Kafka, meanwhile has always been good at distributing state, which means, that now as we build microservices on top of Kafka, there is a natural affinity between them. I will cover the evolution of microservices until the point of today and then work through how we can build stateful scalable microservices using Kafka. You will learn how scaling state works, and also how it can be queried with ‘interactive queries’.


Key takeaways:


  • Scalable business processing
  • Run it on rails: Instrumentation and monitoring
  • Control flow patterns (start, stop, pause)
  • Error handling strategies



Karen Davis

Senior Data Engineer

ThoughtWorks



Experiments in Teaching a Machine to Code


I've set myself a goal. Can I get a machine learning algorithm to generate code that can pass a unit test? This talk will track the experiments I run as I try to achieve this.


In this talk, we'll explore:


  • How to take an experiment based approach to machine learning development 
  • How to start small and iterate 
  • How transfer learning works for natural language processing and
  • Get an overview of the LSTM architecture 



Andrew Jones

Lead Consultant

ThoughtWorks


Inny So

Infrastructure Consultant

ThoughtWorks


Observability for Everyone



Have you ever tried to debug a production outage, when your system comprises of apps your team has written, third-party apps your team runs, with logs going into some system, application performance metrics going into another system, and cloud platform metrics going somewhere else? Did you find yourself switching tabs, trying to correlate metrics with logs and alerts and finding yourself in a huge tangle? It is a nightmare. In the data world, we talk about aggregating all our data so we can derive new insights quickly, but what about our operational data?


Observability is your ability to be able to ask questions of your system without having to write new code, or grab new data. When you've got an observable system, it feels like you have debugging superpowers, but it can be challenging to even know where to start. If you can even convince your colleagues to start, finding the right tools can be challenging.


In this talk Inny and Andrew will talk about what monitoring and logging are not sufficient anymore (if they ever were), observability basics, and demo an observability platform that you can use to start your observability journey today.


Satyam Argawala

Lead Consultant

ThoughtWorks


Bal Sandhu

Consultant Developer

ThoughtWorks


Automated Governance - Raising the Bar for Agility


The recent past has seen the Rise of the Platforms. The large scale adoption of platforms like Kubernetes and Istio reflect the desire (and need) for organisations to deliver value to their customers faster and more reliably. However the agility offered by these platforms is eroded by the archaic approach to governance, especially in larger regulated industries like financial services.


Automated delivery pipelines and infrastructure as code are the new bare essentials. In order to unlock the next level of agility it is critical to think about capabilities such as automated governance. This talk will demo an opinionated approach to automated governance that builds upon the foundations to help unlock agility in today's cloud native landscape.

Tom Sulston

Principal Consultant

ThoughtWorks


Josh Kinal

Lead Consultant: Experience Design

ThoughtWorks

Someone Far Away, Who You Don’t Even Know, Will Die


Josh and Tom discuss the unintended harm of software product design. From strengthening society’s privilege disparity to international war crimes, they’ll show you how to avoid this trap. 


They promise you will leave feeling empowered and inspired.

Locations

Sydney

Sydney


Telstra Customer Insight Centre

Level 2, 400 George Street

Sydney, NSW 2000



Tuesday, 23 July

8:30 am - 5:00 pm

Melbourne

Melbourne


Cargo Hall

39 S Wharf Promenade, South Wharf 

Melbourne, VIC 3006



Thursday, 25 July

8:30 am - 5:00 pm