Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CleanFuel and DevOps Workflows

CleanFuel and DevOps Workflows

Discussion about Cotiviti Labs' culture and tooling

Avatar for Mykel Alvis

Mykel Alvis

July 25, 2016

Other Decks in Technology

Transcript

  1. @mykelalvis • [email protected] • devops coach at Cotiviti Labs •

    lawful evil with neutral tendencies • fixated on deterministic outcomes • probably not a shapeshifting, mind- controlling lizardman • InLinked not BookFace • @mykelalvis • blog.automationmonkey.net • works in a regulated industry barely verbal monkey
  2. @mykelalvis • i know, right? • Cotiviti Labs • innovation

    incubator • healthcare claims adjudication • seriously automated solutions • seriously hard problems • excellent colleagues people pay someone like me?
  3. @mykelalvis • that’s probably you or your d00dz • developers

    or ops or analysts or testers • write code or deploy code or other stuff • maybe even document that stuff • probably not • might realize how hard your stuff is to deal with • well, probably not buncha little crybabies...
  4. @mykelalvis • everything in your life is or has a

    process • all process has a flow • all flows change over time • jobs are executions of these flows that we get paid to execute • we use process to increase more of the -ilities the pedantic view from 30,000 feet
  5. @mykelalvis • definitions are important • environment ◦ precisely configured

    platform • release ◦ production of an immutable artifact • version ◦ signature of a( generally released) api ◦ that’s very important to my story • deployment ◦ make an artifact available in an environment(see what I did there?) mr webster is rolling over
  6. @mykelalvis • determinism ◦ not precisely the philosophical definition •

    the belief that all events are caused by things that happened before them and that people have no real ability to make choices or control what happens • a theory or doctrine that acts of the will, occurrences in nature, or social or psychological phenomena are causally determined by preceding events or natural laws From http://www.merriam-webster.com/dictionary/determinism still rolling over
  7. @mykelalvis • your stuff is prolly complicated • your stuff

    is prolly error-prone • it has way more steps that it should • it is difficult to replicate • it is human-centric • delivering your stuff to the customer is literally your only job and frequently it’s not done well so?
  8. @mykelalvis • i want to play video games all day

    • i only want to be disturbed if something is actually wrong • automated deployment • automatic maintenance of the deploy • documentation back to source • reliability • repeatability • auditability the goal
  9. @mykelalvis • containers + microservices • easily deployed • less-easily

    configured and connected • improving substantially as a technology • absolutely not something i currently depend on to serve man
  10. @mykelalvis • deploying containers can still be pretty sketchy •

    getting way better • will likely be The Way™ in the future tilling the brown fields
  11. @mykelalvis • external management systems • SaaS/PaaS/IaaS • Cloud Formations

    • Atlas et al • marriage (i.e typically a long-term thing) old_kit_bag.pack(troubles)
  12. @mykelalvis • some twisted, proprietary mechanism • (that’s some of

    what I’m doing) • definitely works for you • definitely challenging to maintain • again, marriage • this time your spouse is a monster perversions of science
  13. @mykelalvis • no one wants the responsibility • no one

    really wants the authority • the business always wants accountability • so take all of it away from humans well, then how do we do this?
  14. @mykelalvis don’t you ever change • immutable != stagnant •

    immutable delivery allows ignoring change requests for existing things • immutable delivery is intrinsically repeatable (by my definition) • any given system must be stable • so make it stable and if it needs to change, replace it • but what to replace it with?
  15. @mykelalvis the next big thing • versioned environments tied to

    deploys • deployment of an artifact is versioned • versioned deployments are trackable • (remember that versions imply releases) • even versioned deployments are arbitrarily complex • how do we address the complexity of the deployment itself?
  16. @mykelalvis legos: architecture 101 • arbitrary complexity must be encapsulated

    • encapsulated complexity must be versioned • versioned complexity must be orchestrated • and tracked • and audited • and blah blah blah • in short, and to use a dirty word in the DevOps space, enforcement
  17. @mykelalvis there’s stormtroopers comin’, pa! • enforcement doesn’t mean being

    an asshole • unless it does • you must decide what you things you want to be deterministic • the costs of determinism can be quite high • you need to get the process internalized within the executors
  18. @mykelalvis how your life works A. wake B. bathe C.

    clothes D. coffee E. food F. car G. work
  19. @mykelalvis i got flow like marshall mathers • workflows allow

    orchestration • bpmn 2.0 is a dumb, old technology • engines running it are typically rock-solid • they can be kinda clunky to deal with • but they’re like democracy • if you have cable from a specific large cable provider and your guide button works, you’re welcome • all 25 million of you
  20. @mykelalvis nothing is ever enough • but it was a

    bit clunky • versioning wasn’t impossible, just hard • automated deployment was very hard • the results weren’t very deterministic • so there needed to be a better way • i won’t bore you with all the requirements, but there are several
  21. @mykelalvis my testament to egotism • yep, i thought i

    could do it better ◦ i think i did • backed by a few very dumb technologies ◦ because your neomania is pointless • and a couple of smart ones ◦ because even old dogs learn new tricks
  22. @mykelalvis the guts • semantic versioning • maven • maven

    repos • Vert.x • Lots of APIs • some bastardized design patterns • no gui, only cli/chatops
  23. @mykelalvis straight on til kandahar • build a versioned model

    of a system • “realize” the model (this is the tricky part) • profit!
  24. @mykelalvis another testament to my egotism • i thought this

    one was less extensive • (i was very, very wrong) • a packaging method for data • produces released artifacts of datasets • provides key-signed provenance of the data • produces what amounts to a zip file with some very important metadata
  25. @mykelalvis • makes data a released artifact • allows E-T-L

    functionality • produce out-of-band data management • handle provenance of data • provide validation of data integrity what have you done for me lately?
  26. @mykelalvis why bother? • it allows us to control a

    dataset as a maven dependency • we can produce results that are substantially more deterministic • (but not really deterministic)
  27. @mykelalvis • let me tell you a story about cat

    pictures on the internet and preemie-baby incubator management • we work much more like the latter than the former • if you put cat pictures on the internet and someone pays you to do that, congrats no, seriously...why bother?
  28. @mykelalvis • we are a for-profit, publicly-traded company • over

    $500M in 2015, on our way to $1B • brand-promise is everything • healthcare data is both complex and complicated • CleanFuel helps us decrease the complexity (it can’t generally help with the lack of simplicity) all about the benjamins
  29. no?