anchor.diff:  oc login -u developer -p developer
   ----
   
  +TIP: for Unix style shells you can run `eval $(minishift oc-env)` to make `oc` available.
  +
   Now, you are ready to deploy your first application.
   
   ### Your first project and deployment
   
   We are going to use a specific project to host all the microservices developed in this lab. A `project` is a
  -namespace making easy to organize your different application in OpenShift. In a terminal run:
  +namespace making easy to organize your different applications in OpenShift. In a terminal run:
   
   [source, bash]
   ----
  
positive.code: 
  Kubernetes enables clients (users or internal components) to attach key-value pairs called _labels_ to any API object
   in the system, such as pods. Correspondingly, _label selectors_ are queries against labels that resolve to matching
   objects. Labels and selectors are the primary grouping mechanism in Kubernetes, and are used to determine the components
   to which an operation applies. Labels and selectors are used to group entities together.
  
  #### Replication Controller and Deployment
  
  Controllers are entities managing other entities in order to keep them in a specific state. For instance, a
  replication controller has the responsibility to keep alive _x_ replicas of a pod. When one of these replicas dies or
   becomes irresponsive, the controller kills it and restarts one. Likewise, if there are more replicas running than desired,
    it deletes as many as necessary to match the number.
  
  The definition of a replication controller consists mainly of:
  
negative.code: ## First step with Kubernetes
  
  Following a microservice approach will help you increase your _agility_. However, it does not come for free and
  requires a lot of discipline. It also stresses your deployment facilities. When the number of microservices grows, it
  very quickly becomes an issue to keep your system on track.
  
  To help us with this, containers are a great packaging and runtime technology. Your application runs in an
  _isolated_ container, avoiding resource conflicts. But to deploy a set of containers and keep them coordinated, you
  need a container platform. That's what Kubernetes is. Kubernetes defines a set of building blocks ("primitives") which
  collectively provide mechanisms for deploying, maintaining, and scaling applications packaged inside containers. OpenShift
   _extends_ Kubernetes with build automation and a routing system, while inheriting all the primitives from Kubernetes.
  
  image::openshift-architecture.png[OpenShift Architecture, 800]
  
  