Date post: | 15-Feb-2017 |
Category: |
Software |
Upload: | lalatendu-mohanty |
View: | 241 times |
Download: | 0 times |
OpenShift A DevOps Platform
DevOpsDays India’16
$ whoami● Name: Lalatendu Mohanty● Occupation: software engineer● Company: Red Hat● Interests: Free software, open source, distributed systems, containers, ● Blog: lalatendu.org
Modern Application Development
Modern applications● Commonly delivered as services i.e. software-as-a-service● Web applications, Mobile application software● Designed for continuous delivery● Designed to scale-up and down● Can utilize modern cloud platforms
Modern application development● Need to match speed of growing business● Microservices● Continuous delivery
○ Blue green deployment○ Canary deployment
● The twelve-factor application for cloud native applications○ Refer : https://12factor.net/
● A container platform to create, modify, deploy containerized applications.● Platform to deploy microservices● Choose programming languages you want● Continuous deployment● Self service platform● Platform as a service● Can run on physical, virtual infrastructure● Can run on private and public clouds
OpenShift under the hood● Uses Kubernetes orchestration, management and Docker as the container
technology.● Features for managing complete application lifecycle
○ Automated image builds and promotion.○ Deployments integrated with builds, pipeline and CI.○ Fully integrated Docker registry.○ Networking (SDN, DNS, routing) for container networking.○ Integration with Docker Hub and other 3rd party enterprises registries. ○ Integrated enterprise features e.g authentication (LDAP etc), quota etc.
Photo credit: http://www.nuagenetworks.net/blog/openshift/
Applications in OpenShiftWe can use both web console of the OC command line.
Create applications:● From source code
○ Local or remote git repository○ Auto detect changes to the applications and trigger the build process.
● Using OpenShift template● Using docker images
○ E.g. $ oc new-app kubernetes/guestbook
Building docker images● Auto detects the programming language from the source code and converts it
as a runnable docker image.● End users do not need to write Dockerfile● Enable existing source build tools e.g. maven, rake● Project : https://github.com/openshift/source-to-image
Running OpenShift on my Laptop?● $ oc cluster up
○ Get OC binary from https://github.com/openshift/origin○ Run “$oc cluster up”
● Container Development Kit (CDK)
Demo
OpenShift as a PaaS● Autoscaling
○ Need Metrics enabled (Heapster or combination of Heapstar and Hawkular)
● HAProxy● Integrating external service● Router● Container health check using Kubernetes probe● Logging infrastructure can be integrated e.g. EFK (Elasticsearch, Fluentd,
Kibana)● Quota
○ Allocating resource quota for a project in OpenShift
For Developers● Eclipse IDE integration. ● Developers do not need to know much about Docker and Kubernetes.● Integration with Jenkins running in OpenShift● Ability to move from QA -> Stage -> Production
OpenShift Pipeline● Based on Jenkins pipeline
OpenShift offerings● OpenShift Origin
○ Community edition
● OpenShift Online○ Hosted solution○ Tryout: https://www.openshift.com/devpreview/register.html
● OpenShift Dedicated○ Deployed on cloud e.g. AWS, Google cloud platform.
● OpenShift Container Platform○ Product for on-premise cloud
Red Hat container development kit● Development environment same as the production environment.● Setup OpenShift container platform on top of RHEL Vagrant guest.
○ One command to set up/destroy i.e. “vagrant up” roy" and “vagrant destroy”○ There are templates of sample applications.
● Get single node Kubernetes setup or Docker run time Windows, OS X, Linux/GNU.
● Overview: http://developers.redhat.com/products/cdk/overview/● Get started: http://developers.redhat.com/products/cdk/get-started
Competitive Edge● Built with proven open source technologies from established communities.
References● http://www.slideshare.net/greghoelzer7/red-hat-openshift-v3-overview-and-de
ep-dive● https://access.redhat.com/documentation/en/openshift-enterprise/3.0/single/ar
chitecture/
Questions?