Architects provide guiding principles as part of their architecture to enable decision making for unforeseen details but seldom develop guiding principles as leaders and for interacting with people. Seth Dobbs shares a core set of principles that enable effective interactions with your team and your stakeholders.
The number of microservices running in enterprises increases daily, and service composition, governance, security, and observability are becoming a challenge to implement and incorporate. Asanka Abeysinghe discusses how a cell-based architecture can be applied to current or desired development and technologies to address these issues.
Nathaniel Schutta explains why an architect's job is to be a storyteller. Architects are essentially the Rosetta stone of an organization, providing translation services (or, as some would call it, the "elevator" between the executive suite and the development floors). The challenge lies in not only crafting a compelling message but doing so for wildly disparate audiences.
Most organizations want faster, more-incremental delivery of their applications, but fragile tests and complex continuous delivery pipelines often make this difficult. What if the problem isn’t the pipeline but the architecture of the system? Ken Mugrage details the architectural choices that will help you enable stable tests and faster pipelines.
Every software system has an architecture. Many are little more than the result of circumstances, rather than deliberate decisions. Helping teams think about software architecture is a key to helping them grow well. James Thompson demonstrates how to assess approaches and make decisions based on what matters to your team and your projects.
The resiliency of microservices-based applications heavily depends on how well they handle interservice communication over an unreliable network. Kasun Indrasiri provides an in-depth overview of common microservice resiliency patterns such as timeout, retry, circuit breaker, fail-fast, bulkhead, transactions, and failover/load balancing, and the role service meshes play in realizing them.
John Chapin explains how—in this brave new world of managed services and platforms—you can use serverless technologies and an infrastructure-as-code mind-set to architect, build, and operate resilient systems that survive even massive vendor outages.
Most discussion about scaling is about how to do it—but hardly ever about why it's difficult or whether it's really necessary in particular cases, let alone what the alternatives are. Join Michael Feathers to explore scaling your teams, organization, and architecture and learn the costs and benefits of various strategies in light of research about human cognition and systems cohesion.
With systems like Travis CI, Circle CI, and CodeBuild, we're never more than a few lines of YAML away from a complete continuous delivery pipeline. However, ephemeral build systems constantly recreate the world from scratch, increasing build time and lengthening the CD feedback loop. John Chapin addresses those challenges and shares a reference pipeline using AWS CodePipeline and CodeBuild.
Cultivating and refining personal design heuristics is one way we become better software designers. Whether you're aware of it or not, you use heuristics you acquired through reading, practice, and experience. Rebecca Wirfs-Brock explores how you can grow as a designer by becoming conscious of your heuristics.
OpenCensus is a new standard for tracing and metrics of cloud services, used for observability into applications that span multiple clouds and technological stacks. Simon Zeltser explains how to use vendor-agnostic client libraries for OpenCensus to export telemetry to common distributed tracing systems and covers core concepts like tags, metrics, exporters, zPages, and context propagation.
Communicating (about) architecture to non-IT/business stakeholders is a valuable skill for architects. After all, many architectural-relevant decisions are made by others, so they need to be informed with clear, honest, intelligible, and actionable information/advice. Jochem Schulenklopper shows theory, examples, and useful tips on eight different facets of visual communication of architecture.
Jeff Beck has been on a five-year journey evolving the architecture at SmartThings, moving from one monolith and three supporting services to more than one hundred microservices and expanding from a US-only platform to a worldwide IoT platform. The architecture has been shaped by product and organizational needs. Join Jeff to explore the major architectural eras iterated on the platform.
In this new series, Neal Ford interviews highly regarded industry professions about their career path and their work as an architect. Join in for his discussion with Rebecca Parsons
Join Christian Hernandez to learn Kubernetes basics using curl, kubectl, oc, and other command-line tools. You'll discover how to model portable, scaleable, and highly available solutions using open source tools for distributed computing.
How can you reliably improve and refactor serverless applications? How do you ensure you have covered all the unexpected edge cases that occur in production? Gero Vermaas and Jochem Schulenklopper explain and demonstrate a scientific approach (promoted by GitHub in its Scientist library) that enables you to release refactored serverless applications to production with great confidence.
Software systems have a dynamic nature that requires a design approach different from the architecture of physical structures. Systems thinking examines the structure and behavior of complex systems. Matt McLarty provides an introduction to systems thinking and explores how it can be applied to software architecture, particularly in the context of distributed systems and microservices.
Serverless architecture opens up a world of opportunity for development, providing ease of use while deploying and operating at scale. But this can decrease visibility, making it difficult to see when your environment is misbehaving in terms of throughput, functionality, and performance. Tal Weiss introduces a successful new framework for debugging serverless architecture with real-world examples.
The nature of software architecture is changing. O'Reilly's research into anonymized behavior on our online learning platform bears this out. Software Architecture Conference co-chair Chris Guzikowski presents the relevant findings from our research, introduces the concepts behind Next Architecture, and invites the community to join in an ongoing dialog toward learning and improvement.
Often microservices and bounded contexts are considered to be the same thing. They are not. Vladik Khononov identifies the difference between microservices and bounded contexts, provides heuristics when each pattern should be used, and shares his experience optimizing microservices-quotebased architectures at Naxex.
Adam Tornhill offers an approach that lets you prioritize the parts of your system that benefit the most from improvements so that you can balance short- and long-term goals based on data from how your code evolves. This new perspective on software development will change how you view code.
If it seems like humans are easy to deceive, it's because we are. The myriad traits that make humankind so eminently exploitable are practically baked into our DNA. Too often these same traits make it into the software we build. Michael Carducci takes an entertaining look at why humans are so easy to fool and explores what we can do to overcome our weaknesses and build more secure software.
Is security always a bolt-on in your software process? Is your secure development lifecycle "build, then duct-tape on some security"? Wendy Knox Everette explains why good design principles go hand in hand with a strong security stance and highlights the importance of designing in security from the very start of your development process.
Patterns are an excellent way of building knowledge of an architectural style. As serverless starts to mature, we're starting to see patterns emerge. Mike Roberts introduces you to some of them and helps you look for patterns in your own organizations.
Communication is not an optional soft skill for architects—it's essential to our success. We can have the most brilliant ideas, but if we're ineffective in communicating their value or if we can't obtain buy-in from our stakeholders, we won't be successful. Seth Dobbs shares a process for effectively shaping and communicating your solutions to different stakeholders.
A loosely coupled software architecture and an organizational structure to match is one of the biggest predictors of continuous delivery performance. Nick Tune explains why technical leaders must adopt a sociotechnical mindset to minimize dependencies and maximize team autonomy, optimizing end-to-end value creation and delivery speed.
Valentina Rodriquez shares a manifest describing a set of principles to design high-quality architectures. If you're planning to change your career or just want to improve your architect skills, join in.
There are two common architectural failure modes: hierarchical command and control from ivory-tower architects with strict approvals and rigorous control gates, and chaos with every team doing what they want with little governance. Jonny LeRoy explores the Goldilocks zone that ensures that teams handle organizational risks and opportunities while giving themselves as much autonomy as possible.