It has often been said that JavaScript is the assembly language of the Web. But as JavaScript becomes an increasingly popular target for other languages (in the browser, or on the server) and as virtual machines make it easy, perhaps it’s time for us to think about what constitutes an operating system, and what it means to have a “computer” running a program. Emulation, and virtual machines, make all sorts of new architectures possible. What is the role of the browser vs. the server? What can we expect to see as we move forward, given the ubiquity of JavaScript and VMs? And what can we learn from classic computer architecture and languages as we move forward? In this talk, Scott Hanselman discusses all of these topics.
Is your Web application is getting a bit big and bulky on a single server? You might be thinking of moving to a more distributed, microservice-based architecture. And in many cases, that’s a great way to go about things. But microservices aren’t a panacea, having their own issues and pain points. What are the trade-offs associated with a microservice-based architecture? How do you define the dependencies (code and API) between the different services? And how can you avoid a “distributed monolith” — a situation in which you have many microservices that are dependent on one another? In this talk, Ben Christensen describes the different ways to think about such microservice- systems, and how to avoid some of the more common pitfalls.
A growing number of organizations are using containers, such as docker, to deploy applications and parts of their infrastructure. How well do contains work with a database such as PostgreSQL? What do we need to know about installing, configuring, and deploying PostgreSQL in this way, and what mistakes should we aim to avoid? In this talk, Jignesh Shah shares his experiences combining PostgreSQL with Docker. He describes the reasons why it’s useful to work in this way, and how we can deploy and then monitor our PostgreSQL instances in a number of ways.
If you have a popular Web site, then you’ll realize (sooner or later) that the static content can and should be offloaded to a third-party service, known as a “content delivery network” (CDN), that specializes in getting content to users as quickly (and locally) as possible. Netflix also used CDNs for some time — but over the years, they have moved away from using third-party CDNs, and in favor of using their own, highly scaled, solution. Why and how did they make this change? How did this affect Netflix and its users? In this talk, Prasad Jonnalagadda describes the architecture that Netflix adopted, and the implications that this has had on the company and their technical teams.
Containers are a big thing in IT and devops — the idea that you can have lightweight virtual machines that can be launched, duplicated, copied, and scaled up is very attractive, and for good reason. But what happens when you have a very large number of containers? Have you simply exchanged one problem for another? Or are there methods and systems you can use to manage your containers? In this talk, Mandy Waite describes what she and others at Google are doing to make it easier to work with containers, and how you should start to look at containers if you’re to use them most effectively.
For years, front-end developers have employed “minification” to turn CSS into something that’s short, and thus faster to download, Minification techniques have improved over the years, with some providing a great degree of compression. In this talk, Ben Briggs describes the latest version of CSSNano, and how it works to minify CSS, and how it improves on previous generations of minifiers.
Wikipedia is both big and famous. Thus, any changes made to Wikipedia are going to affect many people. Moreover, something such as search is used frequently, by people around the world, and in many different languages. So, when the decision was made to change how Wikipedia implements its search system, this meant a lot of thought, planning, testing, and then deploying. In this talk, Nik Everett describes this process, and how Wikipedia switched over to using ElasticSearch without too many problems.
The book (and movie) Moneyball described how it’s possible to use metrics and statistics to squeeze the greatest possible results out of a low-budget operation. In this talk, Jeffrey Lembeck tells us that we can and should do the same thing for our Web applications. How does this work? What can (and should) we measure, and what should we do in response? If you want to do more with less (and all of us do), then you’ll want to watch this talk.
How do you store your secrets? This is, by definition, a sensitive issue; you want to make it easy for the right people to access secrets, but it should also be hard for others to get those secrets. And by “the right people,” we increasingly mean “the right programs,” in an age of devops and automated deployment. Plus, you need to worry about revoking privileges, or expiring access after a short time. One project that attempts to handle these problems is Vault, an open-source project developed by Hashicorp. In this talk, Seth Vargo describes Vault, and the problems that it attempts to solve. He also describes how Vault can be integrated into a data center, and then used by applications and deployment systems.
Developing an application using Ruby on Rails is supposed to be really straightforward. But it turns out that getting all of the versions (e.g., Ruby and gems), as well as all of the dependencies (e.g., databases and HTTP servers) right can be time-consuming and frustrating, particularly for newcomers. And then you have to deal with this once again when you move your application to production, and then deployed to multiple servers. One solution to this problem is to use a virtual machine (VM), or perhaps even a container manager such as Docker. In this talk, Laura Frank describes containers and Docker, the parts of a container, and how containers can help to improve your environment for development and deployment alike. She also distinguishes between VMs and containers, helping us to understand the differences between these virtualization systems.