Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

Smart customization with no scripting. No cloud vendor lock-in. Full traceability


Overview

This article explains the quickest and least cost way to create servers for test or production use at enterprise scale.

Below is a summary of the funcamental strategies to achieve speed for less money. It’s not doing the same thing faster. It’s a new way of working that takes less time and less risk to achieve more.

Frictionless #DevOps_2.0

The narrative to the diagram above is here:

  1. Servers are built on-premises or on major cloud environment (Amazon, Microsoft, Google, etc.), whichever cloud at the lowest cost. Such arbitrage can save money.

  2. In addition to application programming source, infrastructure configurations are stored within a distributed versioned source repository (GitHub, or Bitbucket in the cloud or GitLab on-premises)

  3. Server configurations are defined using declarative statements that specify the end result rather than specific steps This means when a server configuration is run several times, it doesn’t create a mess (this is called “idempotent”)

  4. A single server configuration can be applied to one of several operating systems by use of Docker containers instead of hypervisors which repeat OS kernels in memory

  5. Automation engines (such as Shippable) covers the entire pipeline so integration of Jenkins with 3rd-party tools doesn’t risk projects

  6. Differences between servers in test, demo, prod, and other stages are handled automatically without requiring explicit manual scripting Thus, monitoring and various other utility software for diagnosis are automatically added to each type of server

  7. Instances can be created quicker if build results can saved in a build repository (such as Artifactory) for reuse rather than building each instance from source code

Common to both are notifications sent via variety of channels (email, SMS text, IRC, Slack, Skype, etc.).

TODO: graphic table like https://www.wikiwand.com/en/Industry_4.0

Software for DevOps 2.0

Joe Bada’s list is way more comprehensive, which this post highlights.

“DevOps 2.0” is achieved by tools from several developer groups.

  • GitHub / Bitbucket / GitLab
  • Docker.com
  • Kubernetes.com
  • Artifactory server image repository
  • Shippable.com
  • container registry services in cloud environments
  • Shippable Lighthouse service watches and sends notifications to Slack, IRC, etc.

Container services

Why Upgrade from DevOps 1.0

How long does it take to make a small change … and get it to the end customer? … through tests in various environments which gets more complex as more developers and components

“DevOps 2.0” improves on where the “12 Factor App” promise of DevOps has stalled:

  • software too complex to learn
  • software too difficult to test in production
  • software too brittle
  • software operates only within a single vendor’s environment
  • inconsistencies of servers in different stages and environments

Vendors

“Staging Servers Must Die” XebiaLabs ‏@xebialabs https://t.co/oL8G01wq3i

Integration offerings such as Zapier,

Technical Descriptions

Docker containerized environments use Docker Swarm and Compose

Alternative is Mesos-based DC/OS

Kubernetes software watches and adjusts the number of servers as appropriate.

“Minions” (workers)

Formation like shipping lanes for applications pipelines

individual deployment units are called Cells.

No-script deploy?

Shippable’s UI

The main difference is that developers don’t need to learn Jenkins and Chef.

References

  • 12 Factor App (Heroku)

  • https://www.oreilly.com/ideas/using-a-single-codebase-for-your-cloud-native-app

More on DevOps

This is one of a series on DevOps:

  1. DevOps_2.0
  2. User Stories for DevOps

  3. Choices for DevOps Technologies
  4. Java DevOps Workflow
  5. AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
  6. AWS server deployment options

  7. Digital Ocean
  8. Cloud regions
  9. AWS Virtual Private Cloud
  10. Azure Cloud Powershell

  11. Git and GitHub vs File Archival
  12. Git Commands and Statuses
  13. Data Security GitHub
  14. Git Commit, Tag, Push
  15. Git Utilities
  16. GitHub API

  17. TFS vs. GitHub

  18. Jenkins Server Setup
  19. Jenkins Plug-ins
  20. Jenkins Freestyle jobs
  21. Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile

  22. Dockerize apps
  23. Docker Setup
  24. Docker Build

  25. Maven on MacOSX

  26. Powershell Ecosystem
  27. Powershell on MacOS
  28. Powershell Desired System Configuration

  29. Ansible

  30. MySQL Setup

  31. SonarQube static code scan

  32. API Management Microsoft
  33. API Management Amazon

  34. Scenarios for load