Wilson Mar bio photo

Wilson Mar

Hello!

Calendar YouTube Github

LinkedIn

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

US (English)   Norsk (Norwegian)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   Napali   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean

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

    Proprietary Hypervisors: Microsoft Hyper-V, VMware vSphere/ESi, Oracle OVM (Oracle Virtual Machine), Huawei FusionSphere

    Open Source Hypervisors: KVM, Cisco Xen, Red Hat, OpenVZ

  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 are added over time?

“DevOps 2.0” improves on where the “12 Factor App” promise of DevOps faces limits:

  • 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

“Staging Servers Must Die” by Edith Harbaugh 2016 advocates for feature toggles – bits of code written into your application that let you turn features on or off at a moment’s notice for specific segments of your user base. It’s used by Facebook, Amazon. See Etsy’s Feature API on GitHub

There are also integration offerings such as Zapier, Microsoft Flow, etc.

“12 Factor App” is defined in 12factor.net and explained at:

ARA / ARO Vendors

Research firms Forrester calls it continuous delivery and release automation (CDRA) and Gartner calls it Application Release Automation (ARA)
devops-ara-gartner-2018-220x220.png

Gartner predicts that “By 2023, 75% of global enterprises will have implemented at least one application release orchestration (ARO) solution, which is an increase from fewer than 20% today” in 2018.

ARA vendors are listed alphabetically below, along with Glassdoor.com reporting from employees who recommend the employer:

WikiVendor GlassdoorProduct/SolutionDocs
* Atlassian 78% - -
* BMC Software 68% Release Lifecycle Management *
* CA Technologies 58% CA Release Automation and Automic -
* Electric Cloud 58% ElectricFlow Adaptive Release Orchestration *
* Flexagon - FlexDeploy -
* GitLab 81% ARO -
* IBM 67% IBM UrbanCode Deploy -
* Inedo - BuildMaster -
* Micro Focus 44% Deployment Automation (formerly Serena) -
Hybrid Cloud Management (Ultimate Edition) -
* Microsoft 81% Azure Pipelines (Visual Studio Release Management) *
* OpenMake Software - DeployHub Pro -
* Octopus 56% Deploy -
* Puppet 77% Puppet Enterprise -
* Red Hat Open Shift 75% OpenShift Container Platform and Ansible Tower -
* VMware 85% vRealize Code Stream -
* XebiaLabs 97% XL Release -
XL Deploy

ARA goes beyond just Jenkins, Ansible, and Continuous Integration.

ARA combines capabilities in automation, environment modeling, and release coordination for increased visibility for the whole team.

Technical Descriptions

Docker containerized environments use Kubernetes or Docker Swarm and Compose.

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

Formation like shipping lanes for applications pipelines

individual deployment units are called Cells.

Mesos-based DC/OS (Data Center Operting System)

No-script deploy?

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

References

  • 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. ci-cd (Continuous Integration and Continuous Delivery)
  3. User Stories for DevOps
  4. Enterprise Software)

  5. Git and GitHub vs File Archival
  6. Git Commands and Statuses
  7. Git Commit, Tag, Push
  8. Git Utilities
  9. Data Security GitHub
  10. GitHub API
  11. TFS vs. GitHub

  12. Choices for DevOps Technologies
  13. Pulumi Infrastructure as Code (IaC)
  14. Java DevOps Workflow
  15. Okta for SSO & MFA

  16. AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
  17. AWS server deployment options
  18. AWS Load Balancers

  19. Cloud services comparisons (across vendors)
  20. Cloud regions (across vendors)
  21. AWS Virtual Private Cloud

  22. Azure Cloud Onramp (Subscriptions, Portal GUI, CLI)
  23. Azure Certifications
  24. Azure Cloud

  25. Azure Cloud Powershell
  26. Bash Windows using Microsoft’s WSL (Windows Subsystem for Linux)
  27. Azure KSQL (Kusto Query Language) for Azure Monitor, etc.

  28. Azure Networking
  29. Azure Storage
  30. Azure Compute
  31. Azure Monitoring

  32. Digital Ocean
  33. Cloud Foundry

  34. Packer automation to build Vagrant images
  35. Terraform multi-cloud provisioning automation
  36. Hashicorp Vault and Consul to generate and hold secrets

  37. Powershell Ecosystem
  38. Powershell on MacOS
  39. Powershell Desired System Configuration

  40. Jenkins Server Setup
  41. Jenkins Plug-ins
  42. Jenkins Freestyle jobs
  43. Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile

  44. Docker (Glossary, Ecosystem, Certification)
  45. Make Makefile for Docker
  46. Docker Setup and run Bash shell script
  47. Bash coding
  48. Docker Setup
  49. Dockerize apps
  50. Docker Registry

  51. Maven on MacOSX

  52. Ansible
  53. Kubernetes Operators
  54. OPA (Open Policy Agent) in Rego language

  55. MySQL Setup

  56. Threat Modeling
  57. SonarQube & SonarSource static code scan

  58. API Management Microsoft
  59. API Management Amazon

  60. Scenarios for load
  61. Chaos Engineering