Track: Microservices: Patterns & Practices
Location: Broadway Ballroom North, 6th fl.
Day of week:
Track Host: Randy Shoup
Randy is a 25-year veteran of Silicon Valley, and has worked as a senior technology leader and executive at companies ranging from small startups, to mid-sized places, to eBay and Google. Randy is currently VP Engineering at WeWork in San Francisco. He is particularly passionate about the nexus of culture, technology, and organization.
Managing Data in Microservices
This session is about the hard stuff -- managing data in microservices -- and about sharing proven patterns that have been successful at Google, eBay, and Stitch Fix. It begins with a quick tour of some prerequisites for being successful with microservices -- an organization of small teams with well-defined areas of responsibility; processes for test-driven development and continuous delivery; and a DevOps culture of "You Build It, You Run It."
The majority of the session is spent on managing data. It covers the need to isolate a microservice's data store behind the service interface, as well as the various persistence mechanisms for managing data. It discusses using events as a first-class tool in our architectural toolbox. It covers techniques for service extraction from a monolithic database. Then it composes those building blocks to build up patterns for handling shared data, joins, and transactions in a microservice world.
It concludes with lessons learned, as well as suggestions for how you can implement these ideas successfully in your own organization.
The Paved PaaS to Microservices at Netflix
Traditionally, a tug of war has existed between service reliability and engineering velocity. Increasing speed to fuel product innovation has meant making tradeoffs in reliability.
Netflix standardizes common functionality, like service discovery, configuration, metrics, logging, and RPC across services. This frees teams to focus on the unique business value of their service. It also enables us to evolve and maintain platform components independently from individual services.
Even with a standard set of components, service owners still need to combine these disparate elements into a coherent platform. We reduce this friction by providing a preassembled platform where teams only need to provide their business logic, and not worry about assembling the service from scratch.
We can further streamline the service lifecycle by providing automation and tooling for development, testing, deployment and operations. We provide "one click" solutions to automatically generate the associated pipelines, machinery, and infrastructure that's required to run their service reliably in production.
These patterns, while described in a Netflix context, can be broadly applicable to increase both reliability and velocity of your microservices architecture.
Take Two: Evolving Microservice Architectures
Discussion of microservice architectures often emphasizes the transition from monolith to microservices. No less important, though, is the strategy for successfully evolving a microservice-based architecture over time. Change is inevitable, and assumptions made when microservice boundaries were initially drafted may no longer hold. Since changes at this stage often have real consequences, preventing architectural drift and the associated disorganization of services and responsibilities requires conscious effort and a willingness to take a holistic approach, with an equal focus on architecture, devops, and culture. N.Y.-based secondary ticketing marketplace SeatGeek marked its entrance into primary ticketing last year with the launch of SeatGeek Open. This was a major shift in strategy, and a number of fundamental assumptions about the core product, deeply ingrained in our microservice architecture, changed. Not least of all, we needed to integrate a monolithic component we had just paid $60MM to acquire. Managing the complexity of this evolution involved coordinated decisions about how to adjust existing services and incorporate new ones without harming our core money-making business. Using this experience as a backdrop, this talk will discuss the architectural, operational, and cultural aspects of evolving a microservice architecture, in the process highlighting both the opportunities and the challenges that microservice architectures present.
The Microservices Journey: A Startup Perspective
Splitting our organization into multiple, smaller teams and dividing our collaboration solution JUST SOCIAL into single smaller apps were the driving force at our startup to trigger the transformation of our monolithic software architecture into Microservices. During this talk I would like to share some experiences and challenges we faced and still face during our Microservices journey.
Building Microservices @Squarespace
In this presentation, Franklin Angulo, will go through our company's journey from a monolith architecture to a microservices architecture. We will share our learnings throughout this process, including what our engineers found most useful in a microservice framework, the different open source technologies utilized in the service client (Ribbon, Hystrix) and service core (Spring Boot), integration points with service discovery (Consul), time-series databases (Graphite), log aggregation frameworks (ELK), alerting frameworks (Sensu), and distributed tracing infrastructure (Zipkin). In the end, we will also share some of our war stories.
Squarespace empowers millions of customers to build their online presence and share their stories. We have a high standard for the quality of features we deliver to our customers and the general availability of our product.
Squarespace's custom-built service framework, Tyson, has been in development for a few years. Tyson provides a lot of functionality out-of-the-box to service developers which results in an increase in feature development velocity and ensures the stability of our platform.
Design Micro Service Architectures the Right Way
Learn from first hand, deep experience, the most critical decisions we face in building successful microservice architectures: how to think about the tradeoffs that impact the productivity of our teams and the quality of our software. In particular, understand how to avoid creating an architecture that eventually (and sometimes quickly) paralyzes our ability to execute. This talk highlights specific key decisions that very directly impact the quality and maintainability of a micro service architecture, covering infrastructure, continuous deployment, communication, event streaming, language choice and more, all to ensure that our teams and systems remain productive as we scale.