<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Canarian</title>
    <description>The latest articles on Forem by Canarian (@canarian).</description>
    <link>https://forem.com/canarian</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F3059%2Fbcf353fd-92da-4d43-a689-a10d0a1895cf.png</url>
      <title>Forem: Canarian</title>
      <link>https://forem.com/canarian</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/canarian"/>
    <language>en</language>
    <item>
      <title>Why Your Cloud is Broken</title>
      <dc:creator>Ant(on) Weiss</dc:creator>
      <pubDate>Wed, 21 Apr 2021 11:07:21 +0000</pubDate>
      <link>https://forem.com/canarian/why-your-cloud-is-broken-m5a</link>
      <guid>https://forem.com/canarian/why-your-cloud-is-broken-m5a</guid>
      <description>&lt;h1&gt;
  
  
  The Promise of Desired State Configuration
&lt;/h1&gt;

&lt;p&gt;Last decade of IT was marked by a gradual proliferation of &lt;em&gt;Desired State Configuration Management&lt;/em&gt; practices. Pioneered by Mark Burgess’ CFEngine back in 1993 and further developed by such tools as Chef, Puppet and lately Kubernetes - this once revolutionary approach allowed IT administrators to automate the management of the ever growing fleet of servers - physical and virtual. &lt;br&gt;
All &lt;em&gt;Desired State Configuration&lt;/em&gt; systems are based on another now widely present practice of IT management called &lt;em&gt;Infrastructure-As-Code&lt;/em&gt; (IaC). The idea is that we (the system administrators) describe the &lt;em&gt;Desired State&lt;/em&gt; of our system in code (usually some kind of a DSL - Domain Specific Language) and the configuration system makes sure that the actual state of the system reflects the desired state. This automated process of bringing the system to the desired state is called convergence or reconciliation and is performed by the configuration system controllers and agents. The controllers publish and verify state transitions, while the agents take care of the actual state application.&lt;/p&gt;

&lt;p&gt;This is of course a very simplified, nutshell-contained description, but I believe it’s sufficient to understand the basic problem inherent in this pattern.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Actual State
&lt;/h1&gt;

&lt;p&gt;And the problem is - all these systems are based on the assumption that the administrators of a system &lt;em&gt;know what the desired state of the system is&lt;/em&gt;.&lt;br&gt;
But this couldn’t be further away from the truth. In reality - any even moderately complex cloud environment has loads of various components that the administrators have a very vague understanding of. These components are often misconfigured or under-optimized. The configuration blind spots only get discovered when something in the system crashes.&lt;/p&gt;

&lt;p&gt;As an example: here are 3 incidents that occured at one company we recently started consulting for over the course of one week:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An auto-scaling event in message provider causes a message queue to explode&lt;/li&gt;
&lt;li&gt;Code is deployed pointing at a dummy instance of a downstream service. Stays undiscovered for 4 days.&lt;/li&gt;
&lt;li&gt;A database that was never configured for HA (or auto-scaling) runs hot for a week without any alerts until it finally goes up in flames.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An attentive reader will notice that all of the mentioned systems were in a desired state defined by the system administrators. It was administrators who configured the auto-scaling, pointed code at a dummy service or decided HA configuration for the DB is not currently needed. Or maybe they didn’t consciously decide all of these and just went with default configurations (which are never meant for production, are they?) . Why? Well - because they never had the time to specify what the desired configuration of the system is. Because the complexity and variety of system components we have to manage today is too much of a cognitive load for a human or even a team of humans to handle.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Adaptive State
&lt;/h1&gt;

&lt;p&gt;Putting aside the complex modular stacks our IT is composed of  - the only desired state of the system we can truly define is this: &lt;/p&gt;

&lt;p&gt;“Our System Works and Serves Its Customers”. &lt;/p&gt;

&lt;p&gt;It seems like a naive approach at first. But isn’t this the top-level business objective of any information system?&lt;/p&gt;

&lt;p&gt;And that’s exactly why Desired State Configuration doesn’t cut it anymore. Because it focuses on defining the state of infrastructure instead of functional goals.  What we really need in the age of complex flexible  information systems (aka Cloud Native IT) is &lt;em&gt;Adaptive Configuration&lt;/em&gt; - i.e smart controllers and agents that can configure (and continuously optimize) the components of the system &lt;em&gt;according to its business objectives&lt;/em&gt; as defined by us, aligned with industry best practices, and supported by continuously collected machine data.&lt;/p&gt;

&lt;p&gt;We’re already seeing the first glimpses of this approach and (quite unsurprisingly) - the first conflicts resulting from these newer smarter techniques clashing with the Desired State Configuration patterns that are still present.&lt;/p&gt;

&lt;p&gt;I’m going to outline the approaches and the conflicts we’re seeing in follow-up posts. And of course I’m very curious to hear about your experience with the Desired State Configuration approach and where you see its pros and cons manifested. Looking forward to your feedback!&lt;/p&gt;

&lt;p&gt;Stay tuned, stay adaptive, stay well!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>it</category>
      <category>software</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>On Resilience, Phase Transitions and Semantic Change Management in Information Systems.</title>
      <dc:creator>Ant(on) Weiss</dc:creator>
      <pubDate>Mon, 22 Mar 2021 15:32:34 +0000</pubDate>
      <link>https://forem.com/canarian/on-resilience-phase-transitions-and-semantic-change-management-in-information-systems-4ckl</link>
      <guid>https://forem.com/canarian/on-resilience-phase-transitions-and-semantic-change-management-in-information-systems-4ckl</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrzrtbxvutn5lq0pkk4o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrzrtbxvutn5lq0pkk4o.jpg" alt="Spider Web" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Change as the Vehicle of Value Creation
&lt;/h1&gt;

&lt;p&gt;The value of a modern information system is defined in large part by the speed with which it can change and adapt. &lt;/p&gt;

&lt;p&gt;“Adapt to what?” - you may ask.  &lt;/p&gt;

&lt;p&gt;Well, a lot of stuff - the wild and unpredictable fluctuations of market forces, changes in consumer demand and institutional regulations and the sheer cost of underlying infrastructure.&lt;/p&gt;

&lt;p&gt;Change is the vehicle of value creation. But somewhat paradoxically - change is also the main source of value disruption - because of the instability it brings to a system.&lt;/p&gt;

&lt;p&gt;The last 20 years of IT evolution were all about enabling higher rates of change while also eliminating its disruptive impact. &lt;/p&gt;

&lt;h1&gt;
  
  
  Enabling Change
&lt;/h1&gt;

&lt;p&gt;Continuous integration (CI) practices were created in order to identify and address the potential disruptions as early as possible in the change lifecycle. &lt;/p&gt;

&lt;p&gt;They allowed moving the bottleneck from the release point to the actual integration stages where it is easier and cheaper to resolve the arising issues. &lt;/p&gt;

&lt;p&gt;The feedback loops got shorter and the situation improved. But pretty soon -  this too became insufficient. The evolution of online services demanded increasingly tight uptime restrictions. The ability to roll out changes to production in a safe and continuous manner brought on the push for Continuous Delivery (CD).&lt;/p&gt;

&lt;p&gt;But if only that was so easy..&lt;/p&gt;

&lt;h1&gt;
  
  
  Facing Instability
&lt;/h1&gt;

&lt;p&gt;Organizations taking the leap towards continuous updates of production environments are facing numerous challenges. As information systems become more complex, it is increasingly (up to the point of impossible) hard to predict the impact of any individual change on a system’s performance. Especially so when there are numerous changes happening simultaneously on various layers of the technological stack. Some of them initiated by the system’s operators or users, others stemming from integrations with third party systems, still others - as artefacts of the system evolution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86urzowpd1harr63sxde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86urzowpd1harr63sxde.png" alt="Sources of changein information systems" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the impact of change is unpredictable, then how do we preserve the stability of value delivery? The obvious strategy is to limit the amount of change, disallow parallel updates and evaluate the impact of each change individually until stability and value generation is ensured - only then can further changes be introduced. This is a great approach for slowly-changing, highly observable systems. Not the dynamic cloud-native applications we’re running and using today.&lt;/p&gt;

&lt;p&gt;In current business reality there is no other option but to &lt;a href="https://en.wikipedia.org/wiki/Move_fast_and_break_things"&gt;move fast and break things&lt;/a&gt;.&lt;br&gt;
But still, we don't want our customers to suffer and potentially leave us for a competitor because the service is broken. So we try to compensate for compromised stability with significant investments in monitoring and observability. We also do our best to hire qualified operations personnel for on-call rotation - so they can quickly fix the problems that arise. Hence the proliferation of monitoring software services and the severe shortage of Ops and SRE professionals we’re witnessing in the last decade.&lt;/p&gt;

&lt;p&gt;It’s pretty obvious of course that just exposing more metrics and logs and putting more humans on call for resolving incidents is a model that doesn’t scale. The &lt;a href="https://insights.dice.com/2019/11/22/tech-industry-needs-burnout-finish/"&gt;rate of burnout in our industry is already higher than in healthcare&lt;/a&gt;! &lt;/p&gt;

&lt;p&gt;Have we really built all these smart machines only to waste our lives on watching them behave?! &lt;/p&gt;

&lt;p&gt;Of course not!!!&lt;/p&gt;

&lt;p&gt;Instead - a new model of smart, continuous incident prediction and remediation is needed.&lt;br&gt;
And if we look around -  we’re already starting to see the first glimpses of platforms, tools and most importantly - humans embracing these ideas. &lt;/p&gt;

&lt;h1&gt;
  
  
  The 5 Steps of Resilience
&lt;/h1&gt;

&lt;p&gt;This is where I want to stop for a moment to talk about resilience. And specifically - resilience engineering. It’s a huge topic - much wider than a paragraph in a blog post could cover. So I’ll just mention that resilience of a system is pre-defined by its adaptive capacity, its ability to bend and morph in response to unexpected environmental events while still preserving the basic required functionality. While resilience engineering is concerned with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;building systems capable of resilience and &lt;/li&gt;
&lt;li&gt;practices of resilience in system operation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Resilience basically entails the system’s ability to identify potential destabilization factors as fast as possible, analyze the problem and its impact, enumerate possible ways of tackling the problem, iterate on all the possible solutions until a working solution is found and finally apply the solution. All of these with minimum adverse impact on the expected functionality of the system.&lt;/p&gt;

&lt;p&gt;Therefore - in order to enable resilience we need our system to continuously cycle through 5 main stages of interaction with problems that we want it to withstand:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identification of the Problem&lt;/li&gt;
&lt;li&gt;Analysis of the Problem&lt;/li&gt;
&lt;li&gt;Identification of Possible Solutions&lt;/li&gt;
&lt;li&gt;Validation of Possible Solutions&lt;/li&gt;
&lt;li&gt;Application of the Most Viable* Solution&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;*Note: the viability of a solution is defined by organizational policy with regards to costs, time, quality and additional considerations.&lt;/p&gt;

&lt;h1&gt;
  
  
  Know Thy Enemy
&lt;/h1&gt;

&lt;p&gt;In this post I’d like to focus on the first 2 stages. Without &lt;strong&gt;identification&lt;/strong&gt; and &lt;strong&gt;analysis&lt;/strong&gt; - no corrective action can occur. Moreover - the better we get at the first 2 capabilities - the better will our ability to adapt become. As Sun Tzu put it: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Know thy enemy and know yourself; in a hundred battles, you will never be defeated. &lt;br&gt;
When you are ignorant of the enemy but know yourself, your chances of winning or losing are equal. &lt;br&gt;
If ignorant both of your enemy and of yourself, you are sure to be defeated in every battle.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the light of our discussion - identification and analysis deal with knowing our enemy.&lt;/p&gt;

&lt;h1&gt;
  
  
  Identification and Phase Transitions
&lt;/h1&gt;

&lt;p&gt;In thermodynamics and statistical physics there’s a notion of phase transitions. A phase is a condition of a system in which its behaviour is qualitatively different from its previous condition. A classic example is solid matter melting into liquid and further evaporating into gas. Only to condense into liquid again, of course. A somewhat related phenomena in the study of fluid dynamics is turbulence. Described by Richard Feynman as “the most important unsolved problem in classical physics” turbulence is the onset of instability and chaotic patterns in previously smooth or laminar flow. So again - a transition to a different phase where the same system starts to behave differently, even though consisting of the same set of components. A transition is never immediate - it’s caused by gradually accumulating levels of energy (kinetic or thermal) - the energy keeps building up until the system reaches a critical point. This is the point at which even a tiny addition of energy can throw the system into the new, unstable behaviour. &lt;br&gt;
During the transition - small potential instabilities start to unfold - islands of chaos in the stable ocean of predictability.&lt;br&gt;
Quite in the same way our information systems don’t become unstable all at once. The constant influx of changes (that can be seen as energy) generates the chaotic islands of tech debt, security loopholes, circular dependencies and unfortunate misconfigurations until the system reaches its critical point and collapses into instability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Identifying Phase Transitions in IT
&lt;/h2&gt;

&lt;p&gt;And this brings us back to the identification stage. &lt;br&gt;
&lt;strong&gt;Identifying a problem after it occurs is too often much too late.&lt;/strong&gt; Going from chaos back to stability is nerve-wrecking and very costly. If we want to build a better problem identification capability - &lt;strong&gt;we need to measure and identify the phase transition processes&lt;/strong&gt; in information systems. Which is totally possible in well-monitored, observable systems of today. In such a system we will be able to measure the current level of instability and adapt the incoming rate of change to the “viscosity” of the infrastructure. Or, inversely - make the system’s interaction with the outside world more “viscous” so as to slow them down to the point where we can promise greater certainty. Sometimes fully blocking the changes that can potentially bring the whole system down. And gradually opening the gateway again once we’re further from the critical point. &lt;/p&gt;

&lt;p&gt;Data analysis and machine learning are of course key to such advanced infrastructure management patterns. But this approach goes beyond the basic anomaly detection that most of existing &lt;em&gt;"AIOps"&lt;/em&gt; solutions offer. This involves arming our systems with capabilities of &lt;em&gt;continuous self-introspection and self-remediation&lt;/em&gt;.This is also about predicting what the next phase of a system may be as the effect of change that we plan to apply. Taking into account the amount and - even more importantly - the &lt;em&gt;kind&lt;/em&gt; of change.&lt;/p&gt;

&lt;h1&gt;
  
  
  Semantic Change Management (or Not All Changes Were Created the Same)
&lt;/h1&gt;

&lt;p&gt;Semantic change management is the other missing piece of the resilience puzzle. In most current software delivery studies we are usually focused on quantitative analysis: deployment rate,  lead time, exception count, etc.  But practice shows that overwhelmingly the question &lt;em&gt;“what was deployed?”&lt;/em&gt; is much more important in problem analysis than &lt;em&gt;“how many deploys were made?”&lt;/em&gt;. It’s the type of change and not the rate of change that makes or (more often) breaks a system.&lt;/p&gt;

&lt;p&gt;The exact typology of changes varies, based on the type of a system. But for almost all information systems one can broadly separate all changes into code, infrastructure, and configuration changes. This division can be made more granular by separating frontend from middleware from backend, by separating the cross-system configuration from isolated component config, and so on. With each change type holding its own properties that define its potential impact on the system under change.&lt;br&gt;
Software delivery systems that we’re creating now need to allow for codification and analysis of these organization-wide change semantics . This is the prerequisite for the identification of phase transition states described in the previous paragraph. This semantic typology will allow for a granular definition of deployment strategies (such as, for example, continuous canary validation techniques) applied to each and every change. And for analyzing if the type and size of the change is something a system has the adaptive capacity to absorb in its current state.&lt;/p&gt;

&lt;h1&gt;
  
  
  To Summarize
&lt;/h1&gt;

&lt;p&gt;This article is an attempt to outline two of the most important missing pieces of continuous change management in modern and future cloud- and edge-native IT systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Phase Transition Analysis
&lt;/li&gt;
&lt;li&gt;Semantic Change Management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These capabilities (enabled by data analysis and machine learning) are seen as the prerequisites for making a system semi-autonomously capable of resilience (or as &lt;a href="http://markburgess.org/index.html"&gt;Mark Burgess&lt;/a&gt;, whose ideas have influenced me tremendously, would put it - &lt;em&gt;immunity&lt;/em&gt;). &lt;br&gt;
The mechanisms for enabling these capabilities are being created as we speak. Once they are operational and well-trusted - the vision of continuous deployment, or of &lt;a href="https://liquidsoftware.com/"&gt;“Liquid Software”&lt;/a&gt; as defined by Sadogursky, Landman and Simon will finally start to become reality. And the face of what we now call DevOps and of our industry as a whole will change beyond recognition. &lt;/p&gt;

&lt;p&gt;This is the future we want to build.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks to Mark Burgess and Leonid Mirsky for reviewing and providing valuable comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cicd</category>
      <category>devops</category>
      <category>cloudnative</category>
      <category>it</category>
    </item>
    <item>
      <title>Resilience Engineering and Life</title>
      <dc:creator>Ant(on) Weiss</dc:creator>
      <pubDate>Thu, 17 Dec 2020 10:40:00 +0000</pubDate>
      <link>https://forem.com/canarian/resilience-engineering-and-life-2p2j</link>
      <guid>https://forem.com/canarian/resilience-engineering-and-life-2p2j</guid>
      <description>&lt;p&gt;31 years ago my life boarded an airplane and crashed into a rock. A soviet teenager, brought up in the breath-takingly beautiful city of Leningrad I found myself standing in the midst of Geula  - a Jerusalem neighbourhood populated mainly by Ultra Orthodox Haredi Jews. &lt;br&gt;
It is a grey, chilly morning in January 1990. I am surrounded by ugly dirty buildings and bearded men wearing weird black overcoats and fedora hats. Staring around in shock and disbelief, desperately wishing  this was all a dream. Wishing I was back in Russia surrounded by my friends, rock music and perestroika.&lt;/p&gt;

&lt;p&gt;But alas, there was no going back. In the upcoming years Israel never ceased to surprise me with more and more things that nothing in my previous life has prepared me for. It was a bumpy ride with street fights, drugs and even imprisonment. And one could say that it’s a kind of a miracle - that here I am today - a well-respected Israeli citizen blessed with a family and a successful &lt;a href="https://otomato.io"&gt;business&lt;/a&gt;, building &lt;a href="https://canarian.io"&gt;a new company&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2For9r1ybw5v423wu3mgze.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2For9r1ybw5v423wu3mgze.jpg" alt="Me in 1991" width="720" height="508"&gt;&lt;/a&gt; &lt;em&gt;Me in 1991. Not yet ready to adapt.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Like thousands of my fellow immigrants I adapted,  I overcame the unexpected challenges of the new reality and found my place. But there were also others. Those who failed to acclimate and fell victim to addiction, delinquency, depression or suicide.&lt;/p&gt;

&lt;p&gt;So what is it - that thing that helps some of us to adapt and succeed while others crumble?&lt;br&gt;
In scientific talk it is called &lt;strong&gt;resilience&lt;/strong&gt; or &lt;strong&gt;adaptive capacity&lt;/strong&gt;. I was in no way better than those immigrants who failed. Instead there were certain choices and actions I took when faced with difficulties that allowed me to regain my social status, to learn the new skills and understandings needed to succeed in my newfound home.&lt;br&gt;
As &lt;a href="https://twitter.com/allspaw"&gt;John Allspaw&lt;/a&gt; says - resilience is not something a system has, resilience is something a system does. It’s not a property but rather an activity, something we actively pursue and develop. Resilience is the ability of a system, be it a human being, an organization or a software component to withstand the unforeseen adversities, to adapt to the changes they require and to spring back, to recover, to continue providing the previously expected capabilities. &lt;/p&gt;

&lt;p&gt;So why are we now talking about resilience at IT conferences? Why is the topic of resilience becoming so top-of-mind for many of the most profound visionaries of our industry? Well, it’s because the information systems we are building are becoming increasingly more complex and unpredictable, interconnected and chaotic, while we become increasingly dependent on them for carrying out our expected capabilities as a society, as a civilization.&lt;/p&gt;

&lt;p&gt;How many production incidents did you have in the last year? &lt;/p&gt;

&lt;p&gt;How many of those were expected to occur? &lt;/p&gt;

&lt;p&gt;What was the total cost of those incidents? &lt;/p&gt;

&lt;p&gt;How long did it take you to go back to normal? &lt;/p&gt;

&lt;p&gt;As an industry we’ve come to an understanding that &lt;strong&gt;in complex distributed systems failure is a feature, not a bug&lt;/strong&gt;. And what really matters is the system's resilience - it’s ability to withstand the failure, to bounce back and recover.&lt;/p&gt;

&lt;p&gt;And we’re also becoming painfully aware of the human factor in the resilience of the information systems. A program does what it is programmed to do, but in most cases - not what the programmer intended. As Stafford Beer put it - the &lt;a href="https://en.wikipedia.org/wiki/The_purpose_of_a_system_is_what_it_does"&gt;purpose of a system is what it does&lt;/a&gt;.&lt;br&gt;
And right now it’s only us humans who can stand in to fill that gap between the intended and the actual purpose. Paraphrasing Conway's law one could say that the resilience of an information system is defined by the resilience of the organization that builds it. And let me say, 2020 was a great testbed for organizational resilience, with test results still being calculated.&lt;/p&gt;

&lt;p&gt;Now - as engineers the first question we should ask is: can  this be engineered? Can we intentionally build our organizations and consequently our systems to do more resilience and less brittleness? &lt;br&gt;
The answer is - maybe! We now somewhat understand the principles and the the algorithms of how resilience works. But the paradox lies in the fact that resilience is about being prepared for the unexpected, about being ready for the unknown. Therefore it can only be tested in real time - when the unexpected event happens. Much like many other activities in software delivery - resilience is a continuous quest based on never-ending learning and adaptation.&lt;/p&gt;

&lt;p&gt;The quest has begun! There’s already &lt;a href="https://resiliencpapers.club"&gt;a great deal of knowledge to learn from&lt;/a&gt;. But there’s still a long road ahead - and it is now up to us to walk that road, to build the resilient systems of tomorrow. And then maybe, just maybe we will all be ready for whatever unexpected crap comes our way.&lt;/p&gt;

</description>
      <category>resilience</category>
      <category>sre</category>
      <category>production</category>
      <category>immigration</category>
    </item>
    <item>
      <title>My picks for AllDayDevOps</title>
      <dc:creator>Ant(on) Weiss</dc:creator>
      <pubDate>Mon, 09 Nov 2020 16:45:55 +0000</pubDate>
      <link>https://forem.com/canarian/my-picks-for-alldaydevops-2fj4</link>
      <guid>https://forem.com/canarian/my-picks-for-alldaydevops-2fj4</guid>
      <description>&lt;p&gt;&lt;a href="https://www.alldaydevops.com/"&gt;AllDayDevOps 2020&lt;/a&gt; is happening in 24 hours from now!&lt;br&gt;
It's packed with content and choosing the talks to attend isn't a trivial task.&lt;br&gt;
That's why I decided to compile my own recommendations list.&lt;/p&gt;

&lt;p&gt;So here they are - 14 talks to attend at AllDayDevops!&lt;/p&gt;

&lt;p&gt;1.&lt;br&gt;
SITE RELIABILITY ENGINEERING&lt;br&gt;
&lt;strong&gt;Managing Systems in an Age of Dynamic Complexity&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Laura Nolan, Slack
&lt;/h2&gt;

&lt;p&gt;I like the title of this talk. And I believe folks at Slack know a thing or two about how we work and collaborate.&lt;/p&gt;

&lt;p&gt;2.&lt;br&gt;
CULTURAL TRANSFORMATION&lt;br&gt;
&lt;strong&gt;Bullet-Proof Coding : Adaptive Collaboration for Resilience&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Anton Weiss, Otomato Software
&lt;/h2&gt;

&lt;p&gt;Regretfully my own talk occupies the same time slot as Laura's presentation. So you have to choose :)&lt;/p&gt;

&lt;p&gt;3.SITE RELIABILITY ENGINEERING&lt;br&gt;
&lt;strong&gt;Site Reliability Engineering: Anti-patterns in Everyday Life and What They Teach Us&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Jennifer Petoff, Google
&lt;/h2&gt;

&lt;p&gt;It's time we hear from Google about how not to SRE.&lt;/p&gt;

&lt;p&gt;4.&lt;br&gt;
MODERN INFRASTRUCTURE&lt;br&gt;
&lt;strong&gt;The Past, Present, and Future of Cloud Native API Gateways&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Daniel Bryant, Ambassador Labs
&lt;/h2&gt;

&lt;p&gt;I love Daniel's presentation skills and API gateways/service meshes/smart proxies are all such exciting technologies!&lt;/p&gt;

&lt;p&gt;5.&lt;/p&gt;

&lt;p&gt;CULTURAL TRANSFORMATION&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using DevOps Principles to Measure Value Flow&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Helen Beal, DevOps Institute
&lt;/h2&gt;

&lt;p&gt;Helen is a great speaker and DevOps without measurements is like a fish without water.&lt;/p&gt;

&lt;p&gt;6.&lt;br&gt;
KEYNOTES&lt;br&gt;
&lt;strong&gt;Ask Me Anything Keynote: DevSecOps&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  John Willis, Red Hat and Shannon Lietz, Intuit
&lt;/h2&gt;

&lt;p&gt;John is one of the godfathers of the DevOps movement and a great speaker. Ask him anything about DevSecOps - do that!&lt;/p&gt;

&lt;p&gt;7.&lt;br&gt;
SITE RELIABILITY ENGINEERING&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Unmonitored Failure Domain: Mental Health&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Jaime Woo, Incident Labs
&lt;/h2&gt;

&lt;p&gt;If you don't monitor your team's mental health - little else matters.&lt;/p&gt;

&lt;p&gt;8.&lt;br&gt;
KEYNOTES&lt;br&gt;
&lt;strong&gt;Ask Me Anything Keynote: Chaos Engineering&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Casey Rosenthal, Verica / Nora Jones, Jeli
&lt;/h2&gt;

&lt;p&gt;Chaos engineering is one of the more compelling topics in modern IT. Nora and Casey are both definitely the right people to ask anything about that.&lt;/p&gt;

&lt;p&gt;9.&lt;br&gt;
MODERN INFRASTRUCTURE&lt;br&gt;
&lt;strong&gt;Service Mesh Past, Present, and Future with Envoy Proxy and WebAssembly&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Idit Levine, Solo.io
&lt;/h2&gt;

&lt;p&gt;Idit is my super-talented compatriot and the work solo.io have been doing with WebAssmebly and Envoy is pushing the industry forward!&lt;/p&gt;

&lt;p&gt;10.&lt;br&gt;
SITE RELIABILITY ENGINEERING&lt;br&gt;
&lt;strong&gt;Fast &amp;amp; Simple: Observing Code &amp;amp; Infra Deployments At Honeycomb&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Liz Fong-Jones, honeycomb.io
&lt;/h2&gt;

&lt;p&gt;Honeycomb is one of the more interesting stars on the observability sky. &lt;/p&gt;

&lt;p&gt;11.&lt;br&gt;
CULTURAL TRANSFORMATION&lt;br&gt;
&lt;strong&gt;Doing DevOps With Deming&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ken Muse, Wintellect
&lt;/h2&gt;

&lt;p&gt;How does one do DevOps without Deming?!?!&lt;/p&gt;

&lt;p&gt;12.&lt;br&gt;
MODERN INFRASTRUCTURE&lt;br&gt;
&lt;strong&gt;Solving the Service Mesh Adopter’s Dilemma&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lee Calcote, Layer5
&lt;/h2&gt;

&lt;p&gt;Lee is a great presenter and knows service meshes like nobody else does. Layer5 ftw!&lt;/p&gt;

&lt;p&gt;13.&lt;br&gt;
SITE RELIABILITY ENGINEERING&lt;br&gt;
&lt;strong&gt;0 to SRE: Lessons from a First-Year SRE&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reginald Davis, Elasticsearch
&lt;/h2&gt;

&lt;p&gt;Getting started with SRE is definitely harder than it sounds.&lt;/p&gt;

&lt;p&gt;14.&lt;br&gt;
CULTURAL TRANSFORMATION&lt;br&gt;
&lt;strong&gt;Gatekeeping and the DevOps Revolution: We Haven't Always Known Everything&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kat Cosgrove, JFrog
&lt;/h2&gt;

&lt;p&gt;Gatekeepers - do we really need them? Kat is a great speaker and she'll provide the answers.&lt;/p&gt;

&lt;p&gt;Those are my picks - and what are yours?&lt;/p&gt;

</description>
      <category>devops</category>
      <category>conference</category>
    </item>
    <item>
      <title>My picks for AllDayDevOps</title>
      <dc:creator>Ant(on) Weiss</dc:creator>
      <pubDate>Mon, 09 Nov 2020 15:50:14 +0000</pubDate>
      <link>https://forem.com/canarian/my-pics-for-alldaydevops-1hjn</link>
      <guid>https://forem.com/canarian/my-pics-for-alldaydevops-1hjn</guid>
      <description></description>
      <category>devops</category>
      <category>conference</category>
    </item>
    <item>
      <title>Let's stop fooling ourselves. What we call CI/CD is actually only CI.</title>
      <dc:creator>Ant(on) Weiss</dc:creator>
      <pubDate>Tue, 20 Oct 2020 16:08:09 +0000</pubDate>
      <link>https://forem.com/canarian/let-s-stop-fooling-ourselves-what-we-call-ci-cd-is-actually-only-ci-13c</link>
      <guid>https://forem.com/canarian/let-s-stop-fooling-ourselves-what-we-call-ci-cd-is-actually-only-ci-13c</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover Photo by &lt;a href="https://www.pexels.com/@yankrukov?utm_content=attributionCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=pexels"&gt;Yan&lt;/a&gt; from Pexels&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1308108094157787136-107" src="https://platform.twitter.com/embed/Tweet.html?id=1308108094157787136"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1308108094157787136-107');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1308108094157787136&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Yes - this post started as a tweet. One that went semi-viral. It struck a real, naked, buzzing nerve. A nerve that most of us prefer not to touch. &lt;/p&gt;

&lt;p&gt;Some of us pretend it's not a real pain, others are just too busy fixing production issues. Still others - and that would probably be the majority of the industry - are yet to discover how much of a distress it is when they meet with it face to face.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;the gap between the elite and everybody else is only growing wider&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But the truth is out there. &lt;strong&gt;Mere mortals can't have Continuous Delivery&lt;/strong&gt; and even less so - Continuous Deployment. CD has become the privilege of that group that the folks at &lt;a href="https://services.google.com/fh/files/misc/state-of-devops-2019.pdf"&gt;DORA&lt;/a&gt; quite non-accidentally call "elite performers". And the gap between the elite and everybody else is only growing wider.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fooling Ourselves
&lt;/h2&gt;

&lt;p&gt;Most organizations we work with say: "of course we have CI/CD pipelines!" &lt;br&gt;
But when one digs deeper - there's usually some CI - and no CD in sight. Or, as &lt;a class="mentioned-user" href="https://dev.to/itaysk"&gt;@itaysk&lt;/a&gt; noted "it's not even CI, but continuous build..."&lt;/p&gt;

&lt;p&gt;When asked what stops them from safely and regularly deploying every change into production environments - everybody seems to have their own reasons. Organizational, cultural, historical, technical, contractual.. Some go as far into denial as saying : "Oh, we don't need continuous delivery. In fact most companies out there don't really need it." But the underlying reason is of course &lt;strong&gt;the lack of confidence&lt;/strong&gt;. Nobody wants to be the culprit for a system outage. According to a number of industry surveys &lt;strong&gt;the average cost of one hour of downtime is around 75000 USD&lt;/strong&gt;. There's a lot at stake! &lt;br&gt;
So instead we choose to move slower, to add controlled handoffs and build home-grown guardrails. To hire more Ops engineers and call them SRE to feel more secure. Rarely discussing the price of establishing and maintaining all of these over time.&lt;/p&gt;
&lt;h2&gt;
  
  
  But why can't we have CD?
&lt;/h2&gt;

&lt;p&gt;Continuous Delivery is a sociotechnical practice. And as many Twitter commenters correctly noted - the barriers on the way to having it are two-fold. As with anything in DevOps it starts with culture and shared understanding that continuously delivering in small increments makes everything better.  Engineers who've experienced true CD can't really fathom any other way of delivering software. As &lt;a class="mentioned-user" href="https://dev.to/giltayar"&gt;@giltayar&lt;/a&gt; puts it &lt;em&gt;"CD ... is a total game changer. It changes how you perceive software development and delivering features... I did CD and EVERYTHING about how I developed changed. It was magical."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1308341183979151360-95" src="https://platform.twitter.com/embed/Tweet.html?id=1308341183979151360"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1308341183979151360-95');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1308341183979151360&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  The Social Dilemma
&lt;/h3&gt;

&lt;p&gt;But we humans are scared of change. The new mode of delivery challenges our perceptions: of ownership, of reliability, of hierarchy. If your SRE team is responsible for production site uptime - then what's their incentive for enabling the constant flow of change that continuously threatens the very thing they are responsible for? If you have folks whose job it is to control what gets released when - what will they do when this control is made obsolete? The existing organizational barriers make the blame game easier - thus providing us with a false sense of confidence. Because the tools we currently have can't promise true confidence - and this bring us to...&lt;/p&gt;

&lt;h3&gt;
  
  
  The Technical Dilemma
&lt;/h3&gt;

&lt;p&gt;The socio-cultural obstacles are truly the hardest to remove. But as Archimedes used to say: "Give me a lever long enough and a fulcrum on which to place it, and I shall move the world." Technology, while meaningless on its own can become a great enabler for societal innovation.&lt;br&gt;
Trouble is - the tools for continuous delivery/deployment are still lacking. And this is especially true for the new brave cloud/edge-native world we see rapidly unfolding before our eyes.&lt;/p&gt;

&lt;h1&gt;
  
  
  But Aren't CI Tools Enough?
&lt;/h1&gt;

&lt;p&gt;This is where some readers might say: "Why are you saying there are no tools for CD? We already have Jenkins/CircleCI/Github Actions... Why can't we use those? and then there's Spinnaker, isn't there?"&lt;/p&gt;

&lt;p&gt;That, of course, is a grave mistake. Yes - any CI server or even generic workflow automation tool can theoretically orchestrate your deployments - &lt;em&gt;the mechanics of deployment are trivial&lt;/em&gt;. But deploying like this is the same thing as the proverbial "throwing changes over the wall" practice that brought on the DevOps revolution.&lt;br&gt;
Because CI tools ignore &lt;em&gt;the semantics of change&lt;/em&gt;. The only kind of feedback they provide is deterministic one - verifying a pre-defined functionality under pre-defined conditions. While the production environment has inherent uncertainty leading it to behave in often unpredictable manner. Therefore - in modern complex systems no change is verified until it reaches production. As they say - until the wheels hit the road. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And that is exactly why most orgs out there can't have CD. Because blindly pushing into production is scary, stressful and in the end falls on the shoulders of the undermanned SRE team.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;And that is exactly why most orgs out there can't have CD. Because blindly pushing into production is scary, stressful and in the end falls on the shoulders of the undermanned SRE team.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Cloud Native CD is Possible
&lt;/h1&gt;

&lt;p&gt;It's not all bad, of course. Some teams we talk to succeed to establish true cloud native CD by investing multiple man-months in home-grown solutions. This is costly, most orgs can't allow this, but those who do are very proud of their achievement - until the platform changes under their feet and they need to reinvent the home-grown solution.&lt;/p&gt;

&lt;p&gt;Some very interesting OSS projects have emerged in the last couple of years in an attempt to tackle the problem. &lt;a href="https://argoproj.github.io/argo-cd/"&gt;ArgoCD&lt;/a&gt; with Argo Rollouts, &lt;a href="https://github.com/fluxcd/flux"&gt;Flux&lt;/a&gt; and &lt;a href="https://github.com/weaveworks/flagger"&gt;Flagger&lt;/a&gt;, &lt;a href="https://github.com/bookingcom/shipper"&gt;Shipper&lt;/a&gt; and &lt;a href="https://keptn.sh/"&gt;Keptn&lt;/a&gt; are all definitely worth looking at.&lt;/p&gt;

&lt;p&gt;Still no one comprehensive, reliable, usable platform exists that can help us deploy to production continuously with confidence and without complex unsustainable in-house hackery.&lt;/p&gt;

&lt;p&gt;That's why we at &lt;a href="https://canarian.io"&gt;Canarian&lt;/a&gt; decided to step up to the challenge. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;We're building a platform that will allow you to deploy continuously with confidence, full observability and automated recovery.&lt;/strong&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the next post I'll describe the feature set that we see as the minimal viable proposition for such a platform and how we're building it.&lt;/p&gt;

&lt;p&gt;Sounds interesting? &lt;strong&gt;&lt;a href="//mailto:contact@canarian.io"&gt;Send us an email&lt;/a&gt;, sign up for our beta version &lt;a href="https://canarian.io"&gt;on the site&lt;/a&gt; or just follow this blog.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;We'll keep you continuously updated ;)&lt;/p&gt;

&lt;p&gt;Keep delivering!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cicd</category>
      <category>automation</category>
      <category>sre</category>
    </item>
  </channel>
</rss>
