Fractal complexity
Fractal complexity (source: Pixabay)

Let’s face it, your systems aren't getting any less complex, and the list of skills you need to build and maintain them keeps growing. Modern systems pose a number of thorny challenges: they are inherently complex and span multiple technologies, groups, and sometimes different organizations altogether. Most poignantly, they tend to fail in the most unexpected and spectacular ways. At Velocity this year, we’ve identified three primary areas of focus to help you build and run the systems that power modern businesses: performance, resilience, and security.

Performance

The larger your applications get, the harder it is to understand their performance and troubleshoot problems. This increased complexity in applications and services requires new methods for monitoring and improved observability. Here are some sessions designed to help you tackle performance issues:

  • Architecting a postmortem: Teams need to perform too. Etsy’s Will Gallego explores postmortems used at large tech companies with real-world examples of failure scenarios and debunks myths regularly attributed to failures.
  • Think local: Reducing coordination and improving performance when designing around distributed state Learn strategies for avoiding coordination and relying on local knowledge wherever possible and tips for using in-memory state instead of the typical approach of using external data stores.
  • Moving enterprise Java applications to Kubernetes Heptio’s Kris Nova takes you through the process of migrating a monolithic Java application to running in Kubernetes using a prototype Java application that has been purposely designed to be hard to run cloud natively as an example.
  • Gaining efficiency with time series in ELK In this case study, learn how NS1 was able to reduce infrastructure, maintenance, and operational costs while simultaneously increasing throughput and visibility of key metrics by leveraging Elasticsearch as a time series database.
  • Containers: Let's get fancy: Go beyond getting started with containers on AWS with Amazon’s Abby Fuller and get the guidance you need to solve harder issues.

Resilience

Building and running complex systems that are both fast and reliable requires teams and applications that work well—and work well together. The cultural shift is evident: software engineers and system administrators are breaking down walls as they move toward shared responsibilities, thereby quickening the pace of software development and delivery. Here are some sessions to help you build resilient systems to withstand Black Friday sales, scaling, and, well, people:

  • Crossing the serverless fireswamp: Symphonia’s Mike Roberts leads you on a warts-and-all journey through some of the limitations of a serverless approach and shares a practical set of techniques for dealing with them.
  • How to monitor your database: Don’t make the same mistakes Baron did! VividCortex CEO Baron Shwartz shares the framework he’s developed over the years for monitoring databases, which breaks monitoring into a holistic approach that’s easy to understand and makes it obvious what kinds of data are useful for what purposes.  
  • From dandelion to tree: Scaling Slack: In this case study, learn how Slack scaled by rearchitecting its system with lazy loading, a publish/subscribe model, and an edge cache service.
  • Principia SLOdica: A treatise on the metrology of service level objectives: Google's Jamie Wilkinson offers an overview of SLOs and error budgets, as well as advice on how the implementation of that changes as systems scale, and the tools you’ll need once the alerts themselves no longer tell you what part is broken.
  • A retrospective on retrospectives: How to be a nonexpert expert in system resilience: Do companies that aren’t unicorns need to become experts in human factors and experts in their software stack in order to engineer reliable systems? Jessica DeVita tells the story of how a team at Microsoft challenged themselves to retrospect their retrospectives and shares what they learned about applying human factors ideas to software development.

Security

Security can no longer be bolted on at the end of projects. Learn how to incorporate security best practices into your system architecture from the ground up into every layer of your applications. Here's a session lineup packed with case studies, techniques, and ideas you’ll want to bring back to your team:

Wait, there's more...

Some topics require more than 40 minutes to master, which is why we’re offering a number of in-person, expert-led trainings, like Mastering continuously deployed serverless applications and Docker: Up and Running. And if your team needs to be on the same page with new technology, you’ll want to check out the 2-day and 1-day trainings on new tools like Habitat and Nomad, and our crash courses on getting started with Kubernetes and R (the programming language you want to learn to get more from your data).

At Velocity San Jose, we’ll cover the technologies, tools, and issues that you’re tackling on the job every day, or soon will be—like networking Kubernetes, going serverless, improving observability, and managing teams. Between the great networking, fun events, and enlightening keynotes, you’ll find actionable takeaways and intriguing case studies in every session. We look forward to seeing you in San Jose this June. You’ll leave with new ideas, proven best practices, and an expanded network of friends and mentors to help you tackle your next project and advance your career.

Article image: Fractal complexity (source: Pixabay).