Be Dynamic:
Unblock your Environments
Chris Riley,cPrimeInc.
Introduction
Chris Riley
DirectorSolutionsArchitecture,cPrime,Inc.
Page
Introduction
 Agile= More releases = More Stress on Environments
 Microservices = More releases = More Stress on Environments
 Containers+ Kubernetes + Service Virts + Test Automation= Modern Release Management
Containers + Virts + Test Automation
Unblock your environments
Page
Queueing Theory
Scheduling / Calendars to the rescue
Unblock your environments
March 1 March 31
Team X (2 weeks) Team Y (2 weeks)
Page
128, 24, 495, 93
 Environmentsare pets thatare carefullymaintainedover time
 Applicationdependenciesare challengingto impartin environmentswithoutbreaking other
dependenciesand applications.
 Onlyso manyapplicationscan be funneled/ tested at a time so work hasto be scheduled.
 Imageof trafficjamsor other here
StaticEnvironments Kill Speed and DecreaseQuality
Unblock your environments
Page
$$$$
 Reduces speed to production
 Staticenvironmentsmay require specialization,applicationlicensesetc.
StaticEnvironments are costly
Unblock your environments
Page
Dynamic Environments
 Containerization(e.g. Docker)
 Infrastructureon Demand (e.g. DockerHub, Kubernetes Apps)
 Open Source Software (e.g. Ubuntu,SoapUI,MySQL, Netflix,Kubernetes)
 ContainerOrchestration(e.g. Kubernetes, Swarm, Mesos)
 Service Virtualization
Containers, OSS and Orchestration
Unblock your environments
Page
On Demand Environments
DynamicallyScaleEnvironments
Unblock your environments
March 1 March 31
Team YMarch 1 March 31
Team X
Page
Containers 101
Red Hat OpenShift on AWS Workshop 6/26/2018
Unblock your environments
Page
Containers 101
Red Hat OpenShift on AWS Workshop 6/26/2018
Unblock your environments
Page
Containers 101
 Dockerfile = Define your App and Dependencies
 Docker image = Create a runnable instance
 DockerHub = Share your instance with others
 Kubernetes = Run your containers reliably
 GKE, AKS, Windows, Linux = Run your containers anywhere
Define,Build and Run AnywhereReliably
Unblock your environments
Page
Environments = Namespaces
 Deploy containers to namespaceslike DEV, QA, UAT….
 Containers contain dependencies and apps within the definition and it doesn’t leak
 Long running apps are called deployments,short running activities are called jobs
 Entire environment can be created and destroyed
Unblock your environments
Page
Example 1
namespaces= separation
Unblock your environments
Cart API
Label: v1.3
Cart API
Label: v1.2
Cart API
Label: v1.1
Cart API
Label: v1.1
Namespace: default Namespace: dev
Cart API
Label: v1.3
Label: DEV
Cart API
Label: v1.4
Label: DEV
Namespace: qa
Cart API
Label: v1.2
Label: QA
Page
Example 2
clusters = separation
Unblock your environments
Cart API
Label: v1.3
Cart API
Label: v1.2
Cart API
Label: v1.1
Cart API
Label: v1.1
Cluster 1 (DEV) Cluster 2 (QA)
Cart API
Label: v1.3
Cart API
Label: v1.4
Cluster 3 (PROD)
Cart API
Label: v1.2
Page
Example
DynamicEnvironments
Unblock your environments
CI Pod
VirtServer
development project qualityassurance project
API
Pod
SoapUI
Job
API
Pod
Page
Next Steps
 Containerize assetsand dependencies
 Adopt Kubernetes for environments= simplify management / separatedependencies
 Leverage OpenAPI / API Contract first design = virts / test automation
Unblock your environments
Thank you!

Be Dynamic: Unblock Your Environments

  • 1.
    Be Dynamic: Unblock yourEnvironments Chris Riley,cPrimeInc.
  • 2.
  • 3.
    Page Introduction  Agile= Morereleases = More Stress on Environments  Microservices = More releases = More Stress on Environments  Containers+ Kubernetes + Service Virts + Test Automation= Modern Release Management Containers + Virts + Test Automation Unblock your environments
  • 4.
    Page Queueing Theory Scheduling /Calendars to the rescue Unblock your environments March 1 March 31 Team X (2 weeks) Team Y (2 weeks)
  • 5.
    Page 128, 24, 495,93  Environmentsare pets thatare carefullymaintainedover time  Applicationdependenciesare challengingto impartin environmentswithoutbreaking other dependenciesand applications.  Onlyso manyapplicationscan be funneled/ tested at a time so work hasto be scheduled.  Imageof trafficjamsor other here StaticEnvironments Kill Speed and DecreaseQuality Unblock your environments
  • 6.
    Page $$$$  Reduces speedto production  Staticenvironmentsmay require specialization,applicationlicensesetc. StaticEnvironments are costly Unblock your environments
  • 7.
    Page Dynamic Environments  Containerization(e.g.Docker)  Infrastructureon Demand (e.g. DockerHub, Kubernetes Apps)  Open Source Software (e.g. Ubuntu,SoapUI,MySQL, Netflix,Kubernetes)  ContainerOrchestration(e.g. Kubernetes, Swarm, Mesos)  Service Virtualization Containers, OSS and Orchestration Unblock your environments
  • 8.
    Page On Demand Environments DynamicallyScaleEnvironments Unblockyour environments March 1 March 31 Team YMarch 1 March 31 Team X
  • 9.
    Page Containers 101 Red HatOpenShift on AWS Workshop 6/26/2018 Unblock your environments
  • 10.
    Page Containers 101 Red HatOpenShift on AWS Workshop 6/26/2018 Unblock your environments
  • 11.
    Page Containers 101  Dockerfile= Define your App and Dependencies  Docker image = Create a runnable instance  DockerHub = Share your instance with others  Kubernetes = Run your containers reliably  GKE, AKS, Windows, Linux = Run your containers anywhere Define,Build and Run AnywhereReliably Unblock your environments
  • 12.
    Page Environments = Namespaces Deploy containers to namespaceslike DEV, QA, UAT….  Containers contain dependencies and apps within the definition and it doesn’t leak  Long running apps are called deployments,short running activities are called jobs  Entire environment can be created and destroyed Unblock your environments
  • 13.
    Page Example 1 namespaces= separation Unblockyour environments Cart API Label: v1.3 Cart API Label: v1.2 Cart API Label: v1.1 Cart API Label: v1.1 Namespace: default Namespace: dev Cart API Label: v1.3 Label: DEV Cart API Label: v1.4 Label: DEV Namespace: qa Cart API Label: v1.2 Label: QA
  • 14.
    Page Example 2 clusters =separation Unblock your environments Cart API Label: v1.3 Cart API Label: v1.2 Cart API Label: v1.1 Cart API Label: v1.1 Cluster 1 (DEV) Cluster 2 (QA) Cart API Label: v1.3 Cart API Label: v1.4 Cluster 3 (PROD) Cart API Label: v1.2
  • 15.
    Page Example DynamicEnvironments Unblock your environments CIPod VirtServer development project qualityassurance project API Pod SoapUI Job API Pod
  • 16.
    Page Next Steps  Containerizeassetsand dependencies  Adopt Kubernetes for environments= simplify management / separatedependencies  Leverage OpenAPI / API Contract first design = virts / test automation Unblock your environments
  • 17.