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.

9:00am12:30pm Monday, July 16, 2018
Location: E143/144
Level: Beginner
Shayne Boyer (Microsoft)
Average rating: ***..
(3.33, 3 ratings)
Shayne Boyer offers a hands-on overview of .NET Core 2.0. Whether you prefer a command line, a simple editor, or a full IDE, you'll learn how to get the bits, create console applications, and do cross-platform targeting. You'll also explore ASP.NET Core web development and .NET Core application tools and deployment. Read more.
1:30pm5:00pm Monday, July 16, 2018
Location: Portland 251/252
Level: Intermediate
Allen Holub (Holub Associates)
Average rating: ****.
(4.06, 16 ratings)
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.
1:30pm5:00pm Tuesday, July 17, 2018
Location: Portland 251/252
Level: Intermediate
Mike Mason (ThoughtWorks), Zhamak Dehghani (ThoughtWorks)
Average rating: ***..
(3.50, 8 ratings)
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.
1:30pm5:00pm Tuesday, July 17, 2018
Location: Portland 256
Level: Intermediate
Brian Capouch (Saint Joseph's College)
Average rating: ***..
(3.57, 7 ratings)
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.
11:00am11:40am Wednesday, July 18, 2018
Location: D137/138
Level: Intermediate
Soam Vasani (Platform9 Systems)
Average rating: ****.
(4.00, 1 rating)
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 shares four different approaches to compose FaaS functions together to form large applications: coordinating functions, event-driven composition, workflows, and compiling functions. Read more.
11:50am12:30pm Wednesday, July 18, 2018
Location: D137/138
Level: Intermediate
Average rating: ***..
(3.75, 4 ratings)
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.
1:45pm2:25pm Wednesday, July 18, 2018
Location: D137/138
Level: Intermediate
Priyanka Sharma (GitLab), Sabree Blackmon (Scytale)
Average rating: ***..
(3.33, 3 ratings)
Priyanka Sharma and Sabree Blackmon explain 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. They then offer an overview of open source projects like SPIFFE and SPIRE, which have modernized identity authentication across microservices. Read more.
2:35pm3:15pm Wednesday, July 18, 2018
Location: D137/138
Level: Beginner
Anubhav Mishra (HashiCorp)
Average rating: ****.
(4.75, 4 ratings)
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.
4:15pm4:55pm Wednesday, July 18, 2018
Location: D137/138
Tags: tensorflow
Level: Beginner
Rustem Feyzkhanov (Instrumental)
Average rating: ***..
(3.00, 1 rating)
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 and very scalable (a thousand functions can be run in parallel), and it integrates into cloud infrastructure. Read more.
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.
11:00am11:40am Thursday, July 19, 2018
Location: Portland 251
Level: Intermediate
Justin Cormack (Docker), Rolf Neugebauer (Docker)
Average rating: ****.
(4.25, 4 ratings)
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.
11:50am12:30pm Thursday, July 19, 2018
Location: Portland 251
Level: Beginner
Suresh Pandey (Capital One)
Average rating: ****.
(4.60, 5 ratings)
Suresh Pandey explores event-driven architecture and explains why modern messaging brokers are game changers for distributed applications. You'll learn what it takes to build a distributed application using eventing (and the benefits of doing so) and dive into offerings from RabbitMQ, Kafka, and Kinesis so you can determine which is suitable for your application. Read more.
1:45pm2:25pm Thursday, July 19, 2018
Location: Portland 251
Level: Intermediate
Taylor Barnett (Stoplight)
Average rating: ****.
(4.50, 4 ratings)
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.
2:35pm3:15pm Thursday, July 19, 2018
Location: Portland 251
Level: Intermediate
Alex Borysov (Google), Mykyta Protsenko (Roku)
Average rating: ****.
(4.46, 13 ratings)
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.
4:15pm4:55pm Thursday, July 19, 2018
Location: Portland 251
Level: Beginner
Average rating: ****.
(4.00, 1 rating)
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.
5:05pm5:45pm Thursday, July 19, 2018
Location: Portland 251
Level: Intermediate
Dikang Gu (Facebook)
Average rating: ****.
(4.00, 2 ratings)
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.