Using Docker with Continuous Delivery in Oracle Cloud This is a Branded Title Slide with Event Look and Feel slide ideal for including a brief title, subtitle and presenter information. Do not customize this slide with your own picture. To reuse this branded background in another presentation on PC Locate and open the presentation where you will be placing this artwork. Click New Slide from the Home tab's Slides group and select Reuse Slides. Click Browse in the Reuse Slides panel and select Browse Files. Double-click the PowerPoint presentation that contains the background you wish to copy. Check Keep Source Formatting and click the slide that contains the background you want. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Right-click any selected slide, point to Layout, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates. To reuse this branded background in another presentation on Mac Locate and open the presentation where you will be placing this artwork. Click New Slide from the Home tab's Slides group and select Insert Slides from Other Presentation… Navigate to the PowerPoint presentation file that contains the background you wish to copy. Double-click or press Insert. This prompts the Slide Finder dialogue box. Make sure Keep design of original slides is unchecked and click the slide(s) that contains the background you want. Hold Shift key to select multiple slides. Apply New Layout (Important): Click Layout from the Home tab's Slides group, and click the slide containing the desired layout from the layout gallery. Mike Raab Sr Principal Product Mgr Container Cloud Service Oracle Public Cloud Greg Stachnick Sr Principal Product Mgr Developer Cloud Service Oracle Public Cloud
This is a Safe Harbor Front slide, one of two Safe Harbor Statement slides included in this template. One of the Safe Harbor slides must be used if your presentation covers material affected by Oracle’s Revenue Recognition Policy To learn more about this policy, e-mail: Revrec-americasiebc_us@oracle.com For internal communication, Safe Harbor Statements are not required. However, there is an applicable disclaimer (Exhibit E) that should be used, found in the Oracle Revenue Recognition Policy for Future Product Communications. Copy and paste this link into a web browser, to find out more information. http://my.oracle.com/site/fin/gfo/GlobalProcesses/cnt452504.pdf For all external communications such as press release, roadmaps, PowerPoint presentations, Safe Harbor Statements are required. You can refer to the link mentioned above to find out additional information/disclaimers required depending on your audience.
Program Agenda 1 What is Developer Cloud Service Introducing Container Cloud Service Integration Concepts Integration Demo 2 3 4
Why Containerize? Portability / Standardized Envs Rapidly Scale Up / Scale Down Companies of all sizes today are moving towards containerization for these reasons Portability: Idea of writing once and running anywhere Once containerized, run your app anywhere that has the Docker Engine installed Easy to change from 1 host to another Example: Dev / Test in Oracle Cloud – Production on-Prem Standardized Environments: Coding environments can be made consistent from development ->staging->QA->production Per environment configurations are fed in the same way to each container which reduces configuration issues Time spent debugging environmental issues is reduced drastically Scaling: Containers take seconds to deploy Scale up and down your infrastructure is much faster than traditional configuration management Better utilization of compute resource Dependency Management: Dependency chaos happens when: 2 running Java or Ruby applications that depend on different versions of the same library How Containerization can help: Isolate each application (along with it’s dependencies) so that they can be run in their own container Similar application containers can co-exist on same host, instead of individual VMs Continuous Integration and Continuous Delivery (CI/CD): Docker makes it easier to build a deployment pipeline After successful builds, a CI system can build and push a Docker image to the Hub/private Docker repo Deploy new containers to desired environment on a more frequent basis Microservices and Cloud are better enabled with Docker Each microservice can be run in its own container Enable dev teams to focus on specific pieces of the application independently as long as they agree on the interface between the two components Containerized microservice apps are a perfect complement to Cloud deployments Code Agility and a CI/CD Pipeline Dependency Management Microservices & Cloud Native Apps
What is Developer Cloud Service
Agile Development Infrastructure Team Infrastructure Version Management Issue & Task Tracking Testing Documentation / Wiki Continuous Integration Code Review Deployment Services Team/Process Management Agile development can help deliver better software faster. Increasing the agility for delivering features in your product in a more frequent pattern. But there are a bunch of tools you’ll need to make your team adopt agile propely.
The DevOps Cycle Oracle Developer Cloud Service Oracle PaaS & IaaS Plan Code Build Test Release Deploy Operate Monitor Oracle Developer Cloud Service Oracle PaaS & IaaS Oracle Management Cloud To achieve the full DevOps solution you’ll leverage the following cloud solutions from Oracle: DevCS for the Dev part, PaaS for the deployment, Management Cloud for the operate and monitor
Oracle Cloud Platform - Application Development Cloud Native, Polyglot, Java, Mobile, HTML5, Declarative Developer Cloud: Continuous integration/Continuous Delivery/Collaboration Application Container Cloud Java Cloud/ WebLogic Server Mobile Cloud Application Builder Cloud Container Cloud Service Develop Cloud Native, Polyglot Apps Modernize Java Apps to Cloud Develop Mobile Apps Declarative HTML5 Apps Managed Docker Containers Management Cloud: Performance Management, Log Analytics, IT Analytics For all application types - Cloud Native, Java EE, Mobile, HTML5 Cloud native developer infrastructure - Designed for DevOps Multi datacenter cloud deployment and management
The Oracle Developer Cloud Service Development Platform Provided as a Service Enabling agile development process Automating DevOps & delivery
Oracle Developer Cloud Service – What’s In It Version Management – Git Build Automation Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, Command line Continuous Integration - Hudson Issues Tracking Code review Deployment automation Agile process management wiki Activity stream These are the components of Developer Cloud Service. In addition we provide integration with the IDEs.
Oracle Developer Cloud Service and The DevOps Cycle Plan Code Build Test Release Deploy Operate Monitor Plan Task tracking, Agile boards, wiki Code Git– branch/merge IDE integration, code review, snippets Build Hudson CI + Build Tools & Utilities Test JUnit & Selenium, Findbugs, deploy to QA Release & Deploy Deploy Plans Developer Cloud Service covers most of the DevOps cycle Additional yellow spots are covered by Management Cloud Service
Developer Cloud Service: Bringing it All Together Review CI / CD Source Tasks Wiki = Dev, Test or Production Commit Deploy Developers can commit changes to the Git repository, create tasks and assign them to team members, define and collaborate on projects through wiki services and continuously build and deploy their application to the cloud or On-Premise with Hudson. There’s also the ability to track and monitor deployments and then within Java Cloud Services one can analyze their deployed and running application through Enterprise Manager. For details on Hudson -> http://wiki.eclipse.org/Hudson-ci/Meet_Hudson Oracle Cloud Services Developers Developer Service Cloud or On-Premise Track & Monitor
Oracle Developer Cloud Service Interfaces Web Comprehensive IDE Integration JDeveloper, Eclipse, NetBeans Source, tasks, and build Mylyn based Webhooks SSH/Https connection Git & Hudson REST services Hudson Web interface for all your work Or integration with the IDEs (in the pictures Jdev and Eclipse integration) Web hooks to connect to external system through events
Special Features for the Oracle Platform Oracle Platform Support Advanced WebLogic deployment ADF Libraries SOA Libraries JDeveloper deployment profiles IDE integration – OEPE, NetBeans and JDeveloper Oracle Cloud Integration Provisioned with other cloud services Seamless cloud deployment to various Oracle Cloud Services Central management console & IDM
Developer Cloud Service Features Simplify Development Automatically provisioned Preconfigured and integrated Automated builds and deployments Web based administration Collaborate & Manage Team repositories Code reviews by peers Agile Process tracking Activity stream and notifications Continuous integration dashboard Deploy Automatically Deploy into Oracle Cloud Services automatically Workflow ensures proper build and test Integrated With IDEs JDeveloper Eclipse NetBeans
Introducing Container Cloud Service
StackEngine - the basis of Oracle Container CS Provides an Easy to Use interface to manage the Docker environment Out-of-the-box examples of containerized Services and Application stacks that can be Deployed in one Click Easily connect to your private Docker registries – bring your own containers Focus on building your containerized Application images and CI/CD pipeline, not on learning complex Orchestration technologies Gain the benefits of containerization, easily and securely StackEngine had an existing product. We are bringing these key features into our Container CS service.
How Does Container CS fit into the Oracle Public Cloud? Complements Oracle PaaS Applications with a Bring your Own Container Service Run ANY Containerized Application including Open Source Mobile CS The Container CS is very complementary to the other existing PaaS services, in that it brings the ability to run any Container. “Bring your own Container”. These containerized apps could be based on Open Source or any other technology that is capable of being containerized and run with Docker. As a proof point, StackEngine, the product that was acquired and that the Oracle Container Cloud Service is based off of, came with an assortment of example “Stacks” that were ready to run. These stacks could be used by the customer as is, or modified as they need to run with their own software/applications. Some of these example Stacks include: A performance monitoring Stack based on Promethius and cAdvisor A load balancing Stack based on HAProxy with nginx or Apache A logging Stack based on ELK, Elastisearch, Kibana, Logspout and Logstash The PaaS applications in general, enable customers to extend their Oracle SaaS products and/or create new applications, based on a JavaEE, JavaCS, Node etc. Today, a customer can do their development in the Developer CS and then launch the code directly into Java CS or App Container CS. Oracle Container CS, customers can run any polyglot / open source Docker containerized applications that they have developed, and run them in the Oracle Public cloud. We will be working closely with the Developer CS team to enhance the integration between the two services. Developer CS Java CS (Java EE) Application Container CS (Java SE & Node) Container CS
Container CS Key Features Cloud & Container Native Enterprise Operations Ready Collaboration Built-In Docker Compatible (Docker Engine, Docker Compose) Convert between Docker run, UI, YAML One Click Deploy (of example application stacks) Registry Integration (connect to public & private registries such as Docker Hub) Build CI/CD Pipelines (via “WebHooks”) Service Discovery – Built in to enable multi-container cross host deployments Operations Dashboards Key health/performance stats & container logs Container Health Checks (port ping for container processes) Service Scaling (scale out services via UI or API) Orchestration & Scheduling Policies (least CPU/Memory, tag based placement, others) Self-Healing Deployments (maintain the desired state of a deployed multi-container app) Elegant Interface - “Quickstart” Wizards to get users started Best Practices Included (example stacks covering monitoring, logging, load balancing) Run & Deploy Oracle Certified Docker images API Ready – Drive common container operations and deployments via REST API Resource Pools (partition compute resources across dev, test, staging etc…
Key Container CS Terminology Used in the Demo Container CS Concept Description Service A service is a template for how to run a container from a single image and associated Docker runtime information (e.g. mapped ports, storage volumes etc…) Deployment One or more running containers that have been created from deploying a Service or a Stack Container CS will introduce some new terms and concepts, to help our customers gain traction with containerization more quickly.
Integration Concepts
The New Docker Pipeline Docker App Image Registry Docker Management & Control A conceptual flow of a potential Docker pipeline showing the flow from local Development to Dev CS to Container CS. The Developer works locally with Docker, writing code locally and building and testing locally – potentially pulling down containers from the registry to perform integration testing locally, as well as leveraging certified company base Docker images/artifacts to build on top of. The developer then checks in their code to GIT, including Docker file with instructions on how to build the image, and any pertinent tests. The application Docker image is built in Dev cloud, leveraging any controlled base Docker images in play. The “golden” application Docker image is pushed to a registry – from which Docker containers can be deployed and orchestrated within the Container Cloud Service – promoting Docker applications through the appropriate life cycle of choice (e.g. test, staging, production) App Code, Tests, Docker File Certified Base Docker Images Test Staging Production Developer Local Dev CS Container CS
Concept Demo
Demo – Scenario Overview Workbetter HR Application New Sprint to display User Profile details in main portal Collaborate on User Story Build application and containers Deploy, Manage, & Compare application versions
Demo – DevCS Docker Image versioning and deployment Home page, activity stream
Demo – DevCS Docker Image versioning and deployment Agile board - sprint
Demo – DevCS Docker Image versioning and deployment Agile board - sprint
Demo – DevCS Docker User story detail
Demo – DevCS Docker Code Review Conversation, branch diffs, teammate feedback
Demo – DevCS Docker Code Review Conversation, branch diffs, teammate feedback
Demo – DevCS Docker Image versioning and deployment Build overview
Demo – DevCS Docker Build overview
Demo – DevCS Docker Sprint update
Demo – Container CS Deploys JET App
Main Dashboard – Overview of everything that is running in this Container environment
This is a list of all available Services that we can run This is a list of all available Services that we can run. These are Docker Templates of Images that are ready to deploy.
Notice we have 2 versions of the Jet app that we are developing
If you look at the v1 version, You can see how it is setup here in the UI. Notice it is setup to pull the v1 take of the WorkBetter image.
Notice that it is mapped to port 9000 for testing this v1 version.
This is a list of all available Services that we can run This is a list of all available Services that we can run. These are Docker Templates of Images that are ready to deploy.
Now, lets look at Jetv2. Its setup to pull the v2 tag of the WorkBetter image.
The Jetv2 version is mapped to port 9001 for testing purposes
This is a list of all available Services that we can run This is a list of all available Services that we can run. These are Docker Templates of Images that are ready to deploy.
The pre-defined service can be delployed in a click
Container CS pull the image from the Registry
Once, the screen goes green, we know that the container is up and running and healthy.
If we navigate to the browser tab and type in the address of the host with port 9000, we see the default picture of Steven King, here in the middle in Green About Me section.
This is a list of all available Services that we can run This is a list of all available Services that we can run. These are Docker Templates of Images that are ready to deploy.
WorkBetter:V2 is the image:tag with Greg’s modifications WorkBetter:V2 is the image:tag with Greg’s modifications. Again, we can deploy in a click.
Container CS is pulling this new image.
Its up and running pretty quickly.
Navigating to a new tab, on Port 9001, we can see the modification in the About Me section, now with My Picture.
As a dev team, we are satisfied with the changes and want to kill the running v1 deployment. Just click Stop on the v1 deployment in Container CS
We can fully remove the stopped deployment, as well.
Now we just have the v2 deployment as the sole running instance. This instance could be behind a load balancer, so all new traffic would be routed to port 9001
Demo – Container CS Deploys JET App
Related Sessions Oracle Linux, Docker, and Oracle's Container Registry [CON7461] Avi Miller, Oracle Keshav Sharma, Sr. Director, Oracle Tim Oldham, Data Centre Infrastructure Architect, BT Monday, Sep 19, 5:30 p.m. - 6:15 p.m. | Marriott Marquis—Salon 1/2/3 Docker Agility in the Cloud: Introducing Oracle Container Cloud Service [CON7404] Jon Reeve, Sr. Director Product Mgmt, Oracle Tuesday, Sep 20, 12:15 p.m. - 1:00 p.m. Moscone South - 310 Hands-on Lab: Setting Up Your Enterprise-Class DevOps Solution Using Docker [HOL5960] Wen-sheng Liu, engineer, Oracle Yu Wang, Software Engineer, Oracle Gary Wang, Senior Manager, Oracle Thursday, Sep 22, 8:00 a.m. - 9:00 a.m. | Hotel Nikko—Nikko Ballroom I (3rd Floor) General Session: Agile Development and DevOps Done Even Faster with Oracle IaaS and PaaS [GEN6861] Michael Lehmann, VP Product Management, Oracle Suhas Uliyar, Vice President Mobile Product Management, Oracle Siddhartha Agarwal, Vice President, Product Management and Strategy, Oracle Tuesday, Sep 20, 11:00 a.m. - 11:45 a.m. | Moscone West—2002/2004
Q&A This is a Custom Section Header slide ideal for including a a brief title and optional subtitle. This slide can also be used as a Q and A slide. Do not customize this slide with your own picture.