Put open source to work
July 16–17, 2018: Training & Tutorials
July 18–19, 2018: Conference
Portland, OR

Evolutionary architecture

Architecture is becoming much less monolithic and static. According to Neal Ford and Rebecca Parsons of ThoughtWorks, “The software universe exists in a state of constant flux; it is dynamic rather than static. Architecture isn’t an equation but rather a snapshot of an ongoing process.” Take a look at how architectures, like microservices and serverless, are necessary in the time of continuous development and delivery.

Add to your personal schedule
1:30pm5:00pm Monday, July 16, 2018
Location: Portland 251/252
Level: Intermediate
Allen Holub (Holub Associates)
If you still use large up-front design phases, you'll likely encounter problems with your design as you implement. The solution is to build around a domain-focused metaphor that allows for incremental changes while maintaining coherence throughout. Allen Holub demonstrates how to develop an effective and coherent architecture incrementally as the code evolves. Read more.
Add to your personal schedule
1:30pm5:00pm Tuesday, July 17, 2018
Location: Portland 251/252
Level: Intermediate
Mike Mason (ThoughtWorks), Zhamak Dehghani (ThoughtWorks)
Most people assume architectures are hard to change. Evolutionary architecture is an approach to overturning this assumption. Join Mike Mason and Zhamak Dehghani to explore the family of software architectures that support evolutionary change and learn how to build evolvable systems. You'll discover a different way to think about software architecture. Read more.
Add to your personal schedule
1:30pm5:00pm Tuesday, July 17, 2018
Location: Portland 256
Level: Intermediate
Brian Capouch (Saint Joseph's College), Danilo Zekovic (Symphony )
GraphQL—a schema-based, client-centric model for data interchange—offers web programmers an alternative to REST. Brian Capouch and Danilo Zekovic offer an overview of GraphQL basic concepts, its data types and schema, and the GraphiQL debugging interface and walk you through using a GraphQL starter kit to gain hands-on experience. Read more.
Add to your personal schedule
11:00am11:40am Wednesday, July 18, 2018
Location: D137/138
Level: Intermediate
Soam Vasani (Platform9 Systems), Timirah James (Platform9 Systems)
While FaaS functions are an easy fit for small use cases like webhooks, creating larger systems with them is still an open area. Soam Vasani and Timirah James share four different approaches to compose FaaS functions together to form large applications: coordinating functions, event-driven composition, workflows, and compiling functions. Read more.
Add to your personal schedule
11:50am12:30pm Wednesday, July 18, 2018
Location: D137/138
Level: Intermediate
Megan Kostick, Michael Brewer, and Manuel Silveyra explain how they tackle the issue of working across large distributed teams, share solutions to data persistence challenges, and offer an overview of their automated data model for bringing data from multiple teams into a single place in a consistent manner. Read more.
Add to your personal schedule
1:45pm2:25pm Wednesday, July 18, 2018
Location: D137/138
Level: Intermediate
Priyanka Sharma (LightStep ), Sabree Blackmon (Scytale)
Priyanka Sharma explains how application identity can be used as the basis for correlating metrics from multiple sources and detail some of the challenges inherent in defining application identity in different contexts. She then offers an overview of open source projects like SPIFFE and SPIRE, which have modernized identity authentication across microservices. Read more.
Add to your personal schedule
2:35pm3:15pm Wednesday, July 18, 2018
Location: D137/138
Level: Beginner
Anubhav Mishra (HashiCorp)
Continuous integration and delivery (CI/CD) systems are part and parcel of today’s software delivery pipelines. Today, there are two choices for a CI/CD system: you either pay for a service or host your own. Anubhav Mishra explains how to use serverless computing to create a cost-effective and reliable CI/CD pipeline. Read more.
Add to your personal schedule
4:15pm4:55pm Wednesday, July 18, 2018
Location: D137/138
Tags: tensorflow
Level: Beginner
Rustem Feyzkhanov (Astro Digital)
This year TensorFlow 1.4 was released. Rustem Feyzkhanov explains how he ported it to AWS Lambda and built an image recognition tool. The tool is cheaper than almost any alternatives, very scalable (a thousand functions can be run in parallel), and integrates into cloud infrastructure. Read more.
Add to your personal schedule
5:05pm5:45pm Wednesday, July 18, 2018
Location: D137/138
Level: Beginner
Smruthi Venkatesh (Platform9 Systems)
Smruthi Venkatesh explains how to do canary deployments in a FaaS system on Kubernetes, covering making changes to functions and monitoring the system. Read more.
Add to your personal schedule
11:00am11:40am Thursday, July 19, 2018
Location: D137/138
Level: Intermediate
Justin Cormack (Docker), Rolf Neugebauer (Docker)
Immutable infrastructure's time has come, as system software needs to be part of architectural agility. Justin Cormack and Rolf Neugebauer detail the cultural and technical barriers to architectures based on immutable infrastructure and explore the tooling that the LinuxKit open source project has built for building and testing immutable infrastructure. Read more.
Add to your personal schedule
11:50am12:30pm Thursday, July 19, 2018
Location: D137/138
Level: Beginner
Suresh Pandey (CapitalOne)
Explore event driven architecture and how modern messaging brokers are game changer in distributed applications. What it take to build a distributed application using eventing and it's benefits. What RabbitMQ, Kafka and Kinesis offers, understand their architecture, concepts, design and which one is suitable for your application. Read more.
Add to your personal schedule
1:45pm2:25pm Thursday, July 19, 2018
Location: D137/138
Level: Intermediate
Taylor Barnett (Stoplight)
No one likes it when an API doesn’t work as expected. The idea of testing APIs is not a novel concept, but the concept of testing based on a specification is an underexplored space. Taylor Barnett explains how to utilize contract testing with the OpenAPI Specification to create better APIs. Read more.
Add to your personal schedule
2:35pm3:15pm Thursday, July 19, 2018
Location: D137/138
Level: Intermediate
Alex Borysov (Google), Mykyta Protsenko (Roku)
Are you developing microservices or just considering splitting your monolith? And what is the right way for your services to communicate with each other? Alex Borysov and Mykyta Protsenko compare gRPC, a modern high-performance RPC framework from Google, and REST, an established architectural pattern, so you can determine the right choice for your project. Let's get ready to rumble! Read more.
Add to your personal schedule
4:15pm4:55pm Thursday, July 19, 2018
Location: D137/138
Level: Beginner
Istio’s Pilot consumes information from a service registry, which Istio uses to set up routing rules, policies, and circuit breaking, and provides a platform-agnostic service discovery interface. Christopher Luciano and Nimesh Bhatia explain how a Pilot adaptor for Consul or Eureka can use Envoy proxies to route and monitor applications that are running outside of Kubernetes. Read more.
Add to your personal schedule
5:05pm5:45pm Thursday, July 19, 2018
Location: D137/138
Level: Intermediate
Dikang Gu (Facebook)
Instagram runs one of the largest Cassandra deployments in the world. Dikang Gu details a very interesting project from Instagram's Cassandra team to make Apache Cassandra's storage engine pluggable and implement a new RocksDB-based storage engine into Cassandra. The new storage engine can improve the performance of Apache Cassandra significantly. Read more.