Benefits of Eclipse Che When Developing Multi-Container Apps

Benefits of Eclipse Che When Developing Multi-Container Apps

Benefits of Eclipse Che When Developing Multi-Container Apps How to use existing production k8s environment in enterprise development Eugene Ivantsov Senior Software Maintenance Engineer Red Hat AGENDA: This presentation covers: ● Introduction to Eclipse Che ● Cloud native development challenges ● Solution Eclipse Che offers ● Demo: deploying a microservice app to a k8s cluster, developing in Che using the same yaml definitions, updating deployments in k8s cluster 2 INSERT DESIGNATOR, IF NEEDED What Is Eclipse Che? Open Source Workspace server Cloud IDE Eclipse Foundation project Runs on and supports Code, compile, run debug and since 2016. ~4.5k stars, ~100 OpenShift, Kubernetes and collaborate on projects in releases, ~90 contributors, Docker as runtime engines. your browser. GWT and ~800 forks New infras can be plugged in TypeScript IDEs are available 3 INSERT DESIGNATOR, IF NEEDED The Problem Containerized production VS localhost development apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: microservice-app-example name: users-api spec: != replicas: 2 template: metadata: PRODUCTION DEPLOYMENTS ARE LOCALHOST ENVIRONMENT NEVER WELL DEFINED AND PREDICTABLE REPLICATES PROD ENVIRONMENTS Containers behave in the same way Something that works on localhost may fail anywhere they are run in containerized production env 4 INSERT DESIGNATOR, IF NEEDED The Solution Develop in your production! apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: microservice-app-example name: users-api spec: = replicas: 2 template: metadata: CHE RUNS PROD IN DEV MODE Brings IDE tooling, source code and data management on top of prod yaml definition 5 INSERT DESIGNATOR, IF NEEDED How It Works Che workspace engine magic: Prod containers defined in env recipe IDE Tooling ● Shared volumes ● Services ● Separate build and run Build ● Remote debug INSERT DESIGNATOR, IF NEEDED Workspace Environment ● Consist of containers, single/multi-container pods ● Defined by a recipe: k8s yaml, docker image, composefile ● Shared volumes to exchange source code changes and artifacts ● Servers to expose services (publishing ports, OpenShift routes, k8s ingress etc) INSERT DESIGNATOR, IF NEEDED IDE ● Fast JavaScript IDE ● Client-Server architecture ● Pluggability ● Plugin registry ● Custom IDE per workspace ● Use of various IDEs (e.g. Theia https://github.com/theia-ide/theia) INSERT DESIGNATOR, IF NEEDED Tooling ● LSP support ● Local LS mode ● Language server as side-cars (TCP mode, shared volumes) ● Registering new Language Servers ● Terminal and exec agent sidecars INSERT DESIGNATOR, IF NEEDED Build Containers ● Use custom build images (e.g. the ones used in CI) ● Shared volumes - build artifacts available in run containers ● Resource management - RAM allocation for a particular project ● One service per container INSERT DESIGNATOR, IF NEEDED Cloud Native Development with Che Production Che Workspace CI/CD 11 INSERT DESIGNATOR, IF NEEDED Demo Time What will we see? Deploy microservice app to MiniKube Push to GitHub Develop in Che CI job triggered 12 INSERT DESIGNATOR, IF NEEDED Get Started With Eclipse Che Sources Dev List [email protected] https://github.com/eclipse/che Docs Mattermost https://mattermost.eclipse.org/ https://eclipse.org/che/docs INSERT DESIGNATOR, IF NEEDED 13 THANK YOU plus.google.com/+RedHat facebook.com/redhatinc linkedin.com/company/red-hat twitter.com/eclipse_che youtube.com/user/RedHatVideos.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us