The web browser provides a platform with unmatched reach, but it still suffers from annoying limitations. Building major web applications has been extraordinarily challenging. For the web to thrive, it needs to be competitive with native platforms across the board, especially on mobile devices. The web must make it easy to develop applications that run on- and off-line, and that provide a first class user experience in terms of performance, features and UI while requiring essentially zero maintenance from the user. Key to this is developer productivity. Happily, things are getting better. Programmers can expect better performance, better APIs and a great diversity of viable programming languages and tools: IDEs that support live programming in the browser; interesting languages that are not just minor variations on Javascript but actually make programmers significantly more productive; civilized UI frameworks and so on. We'll show several such systems, some viable today, some more radical, and discuss what is holding them back. Things are just starting to get interesting!
Many developers today are only familiar with computing as a practice and a profession in the era of x86 monoculture. Over the last 30 years, manufacturing advances and several technology revolutions have provided developers the luxury of a rich ecosystem of languages and libraries that rest on a general, broad hardware platform.
But winter is coming. Several of the biggest buzzwords in technology - big data, cloud computing, internet of things - all center around the tension between rapidly diversifying hardware innovation and the limitations of legacy software architectures.
This talk tackles the existential question of what software *is*, in an age when hardware ranges from smartphones to bacterial DNA to datacenters, and the pragmatic question of how software developers can stay afloat amidst the accelerating pace of hardware disruption.
At Netflix, we realize that there’s a tension between the availability of our service and our speed of innovation. If we move slowly, we can be very available -- but that’s not a good business proposition. If we move super fast, we risk downtime -- and that might annoy our customers. But what if we could increase our velocity without significantly impacting availability? How can we shift that curve so that we’re moving faster without dropping any of those coveted 9’s?
This talk will explore how we can engineer velocity by weaving together tooling and culture with software development to expose and elevate highly effective practices. We’ll discuss the importance of a blameless culture, where mistakes are a part of the learning process and it’s more about recovering fast than not making mistakes in the first place. This talk describes how our tooling, in particular our continuous delivery system, allows us to build scaffolding so that we’re comfortable with software developers making the decision to push the button for prod deployment -- and helps them to recover if necessary. As a result, we can run fast, trusting our tooling and our culture.
Throughout this talk, I hope that you will challenge yourself to consider how your company can "shift the curve" through tooling and to achieve a high velocity environment without negatively impacting reliability.
Amazon.com runs some of the world's largest distributed systems at scale. Much of the internet relies on these services to be highly available, performant, and to scale virtually limitlessly. This session will be a deep dive into the history of NoSQL at Amazon.com, from the world of relational databases, to the Dynamo days, to the world of managed services like DynamoDB. We will cover lessons we learned facing Amazon Web Services, as well as internal services that power much of Amazon.com and AWS behind the scenes. Come learn how our distributed systems evolved over the last decade to take on their current form and hear insights that will help you get a running start with yours. We cover deployment practices, testing and modeling methodologies, as well as how we continuously improve operations every day.