SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
DEVELOPING
MICROSERVICES
DIRECTLY IN AKS
Chakradhar Rao Jonagam
Biqmind Head Software Architect, CNCF Ambassador
Azure Apps Webinar Series, 29 April 2020
biqmind
• 10 years+ of experience helping customers
across US/APAC unlock the value of cloud
• Ex Red Hat Senior Solutions Architect,
Emerging Technologies practice
• Kubernetes Specialist
• Cloud Native Compute Foundation(CNCF)
ambassador
HELLO
“Chak” Jonagam
Biqmind Head Software Architect
@debianmaster
Confidential – do not distribute
biqmind
ABOUT BIQMIND
Confidential – do not distribute
Specialist services and software tools to make cloud-native possible
CLOUD-NATIVE TOOLS
CAPE radically simplifies advanced
Kubernetes functionalities and development
across clouds/on-premise
Disaster Recovery, Multi-cluster deployment,
CI/CD, ingress/DNS
SPECIALIST SERVICES
Specialist resources to bridge gaps
around process, product, and technologies.
Azure and Red Hat Partner
Architecture, Development,
DevSecOps, Project Management
DISCOVERY WORKSHOPS
Focused programs that deliver
practical goals, use cases and action plans
in 1 to 3 days
Technology or
industry specific
biqmind
Confidential – do not distribute
TODAY
The problem
• Our story
• Our developer expectations
The solution
• Possible approaches
• Pros and cons with each approach
• Tool universe
• Demo
biqmind
OUR DEVELOPER JOURNEY
Clone all
24 repos
Use CAGE to run all 24
services with host path
mount into container for hot
reload
Sync CAGE specific
changes to K8s/AKS
deployment configsAdopting K8s In
lower envs
Sync changes to edge
deployment specific configs
Create CAGE specific
Deployment config
Confidential – do not distribute
biqmind
Microservices
= Multiple moving parts
= significant setup time for development
Confidential – do not distribute
biqmind
Our laptops are
hardly the right
environment for
microservice
development
Confidential – do not distribute
biqmind
K8s
for developers is a
work-in-progress
Confidential – do not distribute
biqmind
Credits: @pchico83
Current
solutions
are tedious
Confidential – do not distribute
biqmind
Setting up
dependency services
is hard
requiring significant
bootstrapping time
Confidential – do not distribute
biqmind
Debugging is harder with microservices
and that complexity doubles with containers
Confidential – do not distribute
biqmind
Things work differently
in different environments
like docker and AKS,
It is not easy to sync
configs if you use
different tools for dev
and non-dev
Confidential – do not distribute
Credits: Photo by Pop & Zebra on Unsplash
biqmind
Confidential – do not distribute
What does a
Great Dev environment
look like?
Confidential – do not distribute
biqmind
Confidential – do not distribute
A GREAT DEV ENVIRONMENT…
Smooth set Up
& onboarding
Production-Like
environment
Easy on
laptop
biqmind
Confidential – do not distribute
A GREAT DEV ENVIRONMENT…
Easy to debug
across services, logs
Easy to
replicate
Faster
feedback
Easy branch
switching
biqmind
Confidential – do not distribute
POSSIBLE APPROACHES
biqmind
• Run all services in K8s namespace
• Deploy code-server in same K8s cluster
(preferably in same namespace)
• Open browser to access code editor
• Clone repos, start services
• Can embed vscode-web inside desktop app
Confidential – do not distribute
VSCODE WEB ALONGSIDE SERVICES
• Not a native editor experience
• Few additional steps are required
to create services, dependencies,
scale down conflicting services etc
payment-svc
recommendations-svcorder-svc
fulfillment-svc
payment-svc
biqmind
• Run all dependent services on shared K8s cluster
• Run services that you are working on, on your laptop
• Connect dependency services from laptop to shared
cluster transparently, no extra config required
• Establish private network between shared namespace
and services on laptop using kube-fwd
• Scale down the services that you are working on, on
the shared cluster to avoid conflicts
Confidential – do not distribute
HYBRID SHARED NAMESPACE
• npm link works
• Scaling down services that you are working on is
manual
• Dependencies on laptop need to be configured
payment-svc order-svc
payment-svc
recommendations-svcorder-svc
fulfillment-svc
recommendations.default.svc
Scale down
services that
you work on
to zero on
shared
cluster
trafficbiqmind
• Run all dependent services on shared K8s cluster
• Use okteto to transparently convert services that
you want to work on into dev mode
• No private network between laptop and k8s cluster
is needed as all the services are running on the
same cluster
• All changes in the local environment are synced to
remote container
Confidential – do not distribute
HOT SYNC TO REMOTE CONTAINER
• Not great for sync if the cluster is too
far from dev machine
• npm link does not work
paymentsvc order-svc
payment-svc
recommendations-svcorder-svc
fulfillment-svc
Redeploy target
services in dev
mode to
enable live sync
code syncbiqmind
• Each developer works on her own namespace (self-service)
• Access to platform services
HOT SYNC TO REMOTE CONTAINER
namespace
api
frontend
db
namespace
api
frontend
dbauth
Developer 1 Developer 2
Confidential – do not distribute
biqmind
Confidential – do not distribute
TOOL
UNIVERSE
Dev Pods
Dev Spaces Visual Studio Code Remote
- Containers
biqmind
It seems like many dev tools and plugins need to be configured. Is
it more effort than local development?
In this presentation, I demonstrated the various different approaches we took to save time for other
people. You can pick the right one based on your business case.
Can Gitlab plug into AKS? i do not see any challenge with it if you are using gitlab runners, but I m not an expert in that area
Our environment does not allow use of cloud services. Could we
use on-premise kubernetes with hot sync to remote container
instead of using AKS?
Azure does have solutions for on-prem Kubernetes. However, you can use the tools against any
standard k8s distribution.
Can i know if it is hard to setup the environment, to do a testing on
my personal laptop?
In this presentation, I demonstrated the various different approaches we took to save time for other
people. You can pick the right one based on your business case.
In my perception, we can create more then one container or more
then one program in a container. Is it possible for us to create
backend process such as ajax, and activate web sockets to
communicate between program in different container?
Containers inside a pod can use `localhost` to use call each other, so yes, it is possible to
communicate (make sure you use the right port for service)
Doesn't it cost more for every developer have his or her own
namespace? If we have 25 developers, we must have 25
namespace on AKS.
While there is cost associated, it also gives flexibility for developers and speeds up the development
process.
Confidential – do not distribute
Q&A
biqmind
Is it possible if we create many services and some of them can be
reused in containers for different projects? Or should we copy the
services to a new project if we need them again?
Some services can act as shared services (deployed in shared namespace) which do not change
often so it is quite possible. But keep in mind the additional bootstrapping time required. To answer
you fully, I probably need a better understanding of your context.
How gitlab work with AKS ? Can we setup gitlab runner inside
AKS?
From my experience, helm chart was a better way to integrate with AKS. This document may help,
see https://docs.gitlab.com/runner/install/kubernetes.html
Kubefwd is similar to port forward command in kubectl. Any
difference to that?
kubefwd also creates /etc/hosts entries for services and removes when you stop automatically, so
slightly more advanced than kubectl port-forward. For more details, see
https://github.com/txn2/kubefwd
In hindsight, would you use other alternatives to microservices
other than kubernetes?
While the focus of this session has been providing different options for enterprises to save time on
evaluation, we still think kubernetes is the best fit for microservices development. From my
experience, other paths will take more time
Is Okteto only available for Golang and nodeJs? No, it is available for most languages
What is the tool used for consolidating logs for all services in one
place?
The tool is tilt, you can find more information on it here https://github.com/windmilleng/tilt
if i deploy Istio in a private cluster, how do I access the dashboard
like grafana on my local machine?
You can try using kubectl port-forward on your grafana dashboard pod
Is the code base of the sample application available Github to
download?
Any sample application would work. The one I used is here https://github.com/debianmaster/nodejs-
welcome
Confidential – do not distribute
Q&A
biqmind
If your organization is looking to build cloud-native applications or implement Azure
Kubernetes Service quickly, we can help!
Our FREE consulting session covers:
• Readiness questionnaire and interview
• Discovery into common pain points such as integration with existing infrastructure,
security and deployment complexity
• Discussion on how you can implement a pilot project on AKS
For more details:
bit.ly/AKSApp
Confidential – do not distribute
FREE HALF-DAY AKS APP
ASSESSMENT
biqmind
• Biqmind AKS Services:
https://biqmind.com/azure/aks/
Confidential – do not distribute
OTHER RESOURCES
biqmind
THANK YOU
For more information:
Gianluca Carola
Senior Director, Partnership & Alliances
Gianluca.Carola@biqmind.com
Vinod Narayanankutty
Enablement Director
Vinod.Nara@biqmind.com
Confidential – do not distribute
biqmind
© Copyright 2020 by Biqmind Pte. Ltd. All Rights Reserved.
No part of this document may be reproduced, transmitted, transcribed, stored in a retrieval system or translated into any language in any form by any means without the
written permission of Biqmind.
All contents are subject to change. While every precaution has been taken in the preparation of this document, Biqmind assumes no responsibility for errors, omissions, or
for damages resulting from the use of the information herein.
Products or corporate names may be trademarks or registered trademarks of other companies and are used only for the explanation and to the owners’ benefit, without
intent to infringe.
We own all rights, titles, and interests in perpetuity to all intellectual properties which are, in whole or in part, described in this proposal. No parties shall have any claim to or
have any right, title or interest in them of any kind or nature.
Intellectual properties shall mean any idea, invention, knowledge, information, document, item, property, matter or issue, including without limitation to the following:
• All intellectual property rights (whether owned exclusively by either Biqmind or related entities, or jointly with other parties or whether currently owned by either Biqmind
or related entities, or developed by Biqmind or related entities in the future).
• All Inventions contemplated, developed and accomplished by Biqmind or the related entities; For the purpose of this clause, “Invention” shall mean any and all inventions
(whether patentable, patented or not), ideas, and discoveries, including improvements, original works of authorship, designs, formulas, processes, techniques, know-how
computer programs or portions thereof, databases, trade secrets and proprietary information, documentation, and materials made, created, conceived or reduced to
practice.
Biqmind and related entities’ respective trade secrets and business information, including but not limited to all development plans and prospectuses, technical files, technical
diagrams, drawings, formulas, models and relevant technical articles, technical reports, all quality management methods, pricing methods, sales methods and customers’
materials.
Confidential – do not distribute
biqmind

Mais conteúdo relacionado

Mais procurados

Docker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdminDocker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdminDocker, Inc.
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshiftMamathaBusi
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersImesh Gunaratne
 
9 - Making Sense of Containers in the Microsoft Cloud
9 - Making Sense of Containers in the Microsoft Cloud9 - Making Sense of Containers in the Microsoft Cloud
9 - Making Sense of Containers in the Microsoft CloudKangaroot
 
Skynet vs. Planet of The Apes: Duel!
Skynet vs. Planet of The Apes: Duel!Skynet vs. Planet of The Apes: Duel!
Skynet vs. Planet of The Apes: Duel!Docker, Inc.
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...Docker, Inc.
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDocker, Inc.
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...Docker, Inc.
 
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...Red Hat Developers
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Wojciech Barczyński
 
Kube what? for NodeJs developers
Kube what? for NodeJs developersKube what? for NodeJs developers
Kube what? for NodeJs developersAll Things Open
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftDevOps.com
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless worldRed Hat Developers
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java ApplicationsAutomating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java ApplicationsJelastic Multi-Cloud PaaS
 
Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldzekeLabs Technologies
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDocker, Inc.
 
Cloud spanner architecture and use cases
Cloud spanner architecture and use casesCloud spanner architecture and use cases
Cloud spanner architecture and use casesGDG Cloud Bengaluru
 
Containerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsContainerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsDocker, Inc.
 
DockerCon EU 2015: Placing a container on a train at 200mph
DockerCon EU 2015: Placing a container on a train at 200mphDockerCon EU 2015: Placing a container on a train at 200mph
DockerCon EU 2015: Placing a container on a train at 200mphDocker, Inc.
 

Mais procurados (20)

Docker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdminDocker?!?! But I'm a SysAdmin
Docker?!?! But I'm a SysAdmin
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 
9 - Making Sense of Containers in the Microsoft Cloud
9 - Making Sense of Containers in the Microsoft Cloud9 - Making Sense of Containers in the Microsoft Cloud
9 - Making Sense of Containers in the Microsoft Cloud
 
Skynet vs. Planet of The Apes: Duel!
Skynet vs. Planet of The Apes: Duel!Skynet vs. Planet of The Apes: Duel!
Skynet vs. Planet of The Apes: Duel!
 
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
DCEU 18: From Legacy Mainframe to the Cloud: The Finnish Railways Evolution w...
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker Engine
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
 
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
 
Kube what? for NodeJs developers
Kube what? for NodeJs developersKube what? for NodeJs developers
Kube what? for NodeJs developers
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless world
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java ApplicationsAutomating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
 
Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container world
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
Cloud spanner architecture and use cases
Cloud spanner architecture and use casesCloud spanner architecture and use cases
Cloud spanner architecture and use cases
 
Containerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsContainerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated Applications
 
DockerCon EU 2015: Placing a container on a train at 200mph
DockerCon EU 2015: Placing a container on a train at 200mphDockerCon EU 2015: Placing a container on a train at 200mph
DockerCon EU 2015: Placing a container on a train at 200mph
 

Semelhante a Developing Microservices Directly in AKS/Kubernetes

The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...NETWAYS
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architecturesnine
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson LinHanLing Shen
 
Improving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware TakeoutImproving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware TakeoutVMware Tanzu
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?The Software House
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - SkaffoldSuman Chakraborty
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - SkaffoldSuman Chakraborty
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetupcornelia davis
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionServerless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionAll Things Open
 
DevOps Talks Melbourne 2018: Whales, Cats and Kubernetes
DevOps Talks Melbourne 2018: Whales, Cats and KubernetesDevOps Talks Melbourne 2018: Whales, Cats and Kubernetes
DevOps Talks Melbourne 2018: Whales, Cats and KubernetesMatt Ray
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativecornelia davis
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeVMware Tanzu
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesHelder Klemp
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...OpenWhisk
 

Semelhante a Developing Microservices Directly in AKS/Kubernetes (20)

The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
Improving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware TakeoutImproving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware Takeout
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionServerless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps Adoption
 
DevOps Talks Melbourne 2018: Whales, Cats and Kubernetes
DevOps Talks Melbourne 2018: Whales, Cats and KubernetesDevOps Talks Melbourne 2018: Whales, Cats and Kubernetes
DevOps Talks Melbourne 2018: Whales, Cats and Kubernetes
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
 

Último

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 

Último (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 

Developing Microservices Directly in AKS/Kubernetes

  • 1. DEVELOPING MICROSERVICES DIRECTLY IN AKS Chakradhar Rao Jonagam Biqmind Head Software Architect, CNCF Ambassador Azure Apps Webinar Series, 29 April 2020 biqmind
  • 2. • 10 years+ of experience helping customers across US/APAC unlock the value of cloud • Ex Red Hat Senior Solutions Architect, Emerging Technologies practice • Kubernetes Specialist • Cloud Native Compute Foundation(CNCF) ambassador HELLO “Chak” Jonagam Biqmind Head Software Architect @debianmaster Confidential – do not distribute biqmind
  • 3. ABOUT BIQMIND Confidential – do not distribute Specialist services and software tools to make cloud-native possible CLOUD-NATIVE TOOLS CAPE radically simplifies advanced Kubernetes functionalities and development across clouds/on-premise Disaster Recovery, Multi-cluster deployment, CI/CD, ingress/DNS SPECIALIST SERVICES Specialist resources to bridge gaps around process, product, and technologies. Azure and Red Hat Partner Architecture, Development, DevSecOps, Project Management DISCOVERY WORKSHOPS Focused programs that deliver practical goals, use cases and action plans in 1 to 3 days Technology or industry specific biqmind
  • 4. Confidential – do not distribute TODAY The problem • Our story • Our developer expectations The solution • Possible approaches • Pros and cons with each approach • Tool universe • Demo biqmind
  • 5. OUR DEVELOPER JOURNEY Clone all 24 repos Use CAGE to run all 24 services with host path mount into container for hot reload Sync CAGE specific changes to K8s/AKS deployment configsAdopting K8s In lower envs Sync changes to edge deployment specific configs Create CAGE specific Deployment config Confidential – do not distribute biqmind
  • 6. Microservices = Multiple moving parts = significant setup time for development Confidential – do not distribute biqmind
  • 7. Our laptops are hardly the right environment for microservice development Confidential – do not distribute biqmind
  • 8. K8s for developers is a work-in-progress Confidential – do not distribute biqmind
  • 10. Setting up dependency services is hard requiring significant bootstrapping time Confidential – do not distribute biqmind
  • 11. Debugging is harder with microservices and that complexity doubles with containers Confidential – do not distribute biqmind
  • 12. Things work differently in different environments like docker and AKS, It is not easy to sync configs if you use different tools for dev and non-dev Confidential – do not distribute Credits: Photo by Pop & Zebra on Unsplash biqmind
  • 13. Confidential – do not distribute What does a Great Dev environment look like? Confidential – do not distribute biqmind
  • 14. Confidential – do not distribute A GREAT DEV ENVIRONMENT… Smooth set Up & onboarding Production-Like environment Easy on laptop biqmind
  • 15. Confidential – do not distribute A GREAT DEV ENVIRONMENT… Easy to debug across services, logs Easy to replicate Faster feedback Easy branch switching biqmind
  • 16. Confidential – do not distribute POSSIBLE APPROACHES biqmind
  • 17. • Run all services in K8s namespace • Deploy code-server in same K8s cluster (preferably in same namespace) • Open browser to access code editor • Clone repos, start services • Can embed vscode-web inside desktop app Confidential – do not distribute VSCODE WEB ALONGSIDE SERVICES • Not a native editor experience • Few additional steps are required to create services, dependencies, scale down conflicting services etc payment-svc recommendations-svcorder-svc fulfillment-svc payment-svc biqmind
  • 18. • Run all dependent services on shared K8s cluster • Run services that you are working on, on your laptop • Connect dependency services from laptop to shared cluster transparently, no extra config required • Establish private network between shared namespace and services on laptop using kube-fwd • Scale down the services that you are working on, on the shared cluster to avoid conflicts Confidential – do not distribute HYBRID SHARED NAMESPACE • npm link works • Scaling down services that you are working on is manual • Dependencies on laptop need to be configured payment-svc order-svc payment-svc recommendations-svcorder-svc fulfillment-svc recommendations.default.svc Scale down services that you work on to zero on shared cluster trafficbiqmind
  • 19. • Run all dependent services on shared K8s cluster • Use okteto to transparently convert services that you want to work on into dev mode • No private network between laptop and k8s cluster is needed as all the services are running on the same cluster • All changes in the local environment are synced to remote container Confidential – do not distribute HOT SYNC TO REMOTE CONTAINER • Not great for sync if the cluster is too far from dev machine • npm link does not work paymentsvc order-svc payment-svc recommendations-svcorder-svc fulfillment-svc Redeploy target services in dev mode to enable live sync code syncbiqmind
  • 20. • Each developer works on her own namespace (self-service) • Access to platform services HOT SYNC TO REMOTE CONTAINER namespace api frontend db namespace api frontend dbauth Developer 1 Developer 2 Confidential – do not distribute biqmind
  • 21. Confidential – do not distribute TOOL UNIVERSE Dev Pods Dev Spaces Visual Studio Code Remote - Containers biqmind
  • 22. It seems like many dev tools and plugins need to be configured. Is it more effort than local development? In this presentation, I demonstrated the various different approaches we took to save time for other people. You can pick the right one based on your business case. Can Gitlab plug into AKS? i do not see any challenge with it if you are using gitlab runners, but I m not an expert in that area Our environment does not allow use of cloud services. Could we use on-premise kubernetes with hot sync to remote container instead of using AKS? Azure does have solutions for on-prem Kubernetes. However, you can use the tools against any standard k8s distribution. Can i know if it is hard to setup the environment, to do a testing on my personal laptop? In this presentation, I demonstrated the various different approaches we took to save time for other people. You can pick the right one based on your business case. In my perception, we can create more then one container or more then one program in a container. Is it possible for us to create backend process such as ajax, and activate web sockets to communicate between program in different container? Containers inside a pod can use `localhost` to use call each other, so yes, it is possible to communicate (make sure you use the right port for service) Doesn't it cost more for every developer have his or her own namespace? If we have 25 developers, we must have 25 namespace on AKS. While there is cost associated, it also gives flexibility for developers and speeds up the development process. Confidential – do not distribute Q&A biqmind
  • 23. Is it possible if we create many services and some of them can be reused in containers for different projects? Or should we copy the services to a new project if we need them again? Some services can act as shared services (deployed in shared namespace) which do not change often so it is quite possible. But keep in mind the additional bootstrapping time required. To answer you fully, I probably need a better understanding of your context. How gitlab work with AKS ? Can we setup gitlab runner inside AKS? From my experience, helm chart was a better way to integrate with AKS. This document may help, see https://docs.gitlab.com/runner/install/kubernetes.html Kubefwd is similar to port forward command in kubectl. Any difference to that? kubefwd also creates /etc/hosts entries for services and removes when you stop automatically, so slightly more advanced than kubectl port-forward. For more details, see https://github.com/txn2/kubefwd In hindsight, would you use other alternatives to microservices other than kubernetes? While the focus of this session has been providing different options for enterprises to save time on evaluation, we still think kubernetes is the best fit for microservices development. From my experience, other paths will take more time Is Okteto only available for Golang and nodeJs? No, it is available for most languages What is the tool used for consolidating logs for all services in one place? The tool is tilt, you can find more information on it here https://github.com/windmilleng/tilt if i deploy Istio in a private cluster, how do I access the dashboard like grafana on my local machine? You can try using kubectl port-forward on your grafana dashboard pod Is the code base of the sample application available Github to download? Any sample application would work. The one I used is here https://github.com/debianmaster/nodejs- welcome Confidential – do not distribute Q&A biqmind
  • 24. If your organization is looking to build cloud-native applications or implement Azure Kubernetes Service quickly, we can help! Our FREE consulting session covers: • Readiness questionnaire and interview • Discovery into common pain points such as integration with existing infrastructure, security and deployment complexity • Discussion on how you can implement a pilot project on AKS For more details: bit.ly/AKSApp Confidential – do not distribute FREE HALF-DAY AKS APP ASSESSMENT biqmind
  • 25. • Biqmind AKS Services: https://biqmind.com/azure/aks/ Confidential – do not distribute OTHER RESOURCES biqmind
  • 26. THANK YOU For more information: Gianluca Carola Senior Director, Partnership & Alliances Gianluca.Carola@biqmind.com Vinod Narayanankutty Enablement Director Vinod.Nara@biqmind.com Confidential – do not distribute biqmind
  • 27. © Copyright 2020 by Biqmind Pte. Ltd. All Rights Reserved. No part of this document may be reproduced, transmitted, transcribed, stored in a retrieval system or translated into any language in any form by any means without the written permission of Biqmind. All contents are subject to change. While every precaution has been taken in the preparation of this document, Biqmind assumes no responsibility for errors, omissions, or for damages resulting from the use of the information herein. Products or corporate names may be trademarks or registered trademarks of other companies and are used only for the explanation and to the owners’ benefit, without intent to infringe. We own all rights, titles, and interests in perpetuity to all intellectual properties which are, in whole or in part, described in this proposal. No parties shall have any claim to or have any right, title or interest in them of any kind or nature. Intellectual properties shall mean any idea, invention, knowledge, information, document, item, property, matter or issue, including without limitation to the following: • All intellectual property rights (whether owned exclusively by either Biqmind or related entities, or jointly with other parties or whether currently owned by either Biqmind or related entities, or developed by Biqmind or related entities in the future). • All Inventions contemplated, developed and accomplished by Biqmind or the related entities; For the purpose of this clause, “Invention” shall mean any and all inventions (whether patentable, patented or not), ideas, and discoveries, including improvements, original works of authorship, designs, formulas, processes, techniques, know-how computer programs or portions thereof, databases, trade secrets and proprietary information, documentation, and materials made, created, conceived or reduced to practice. Biqmind and related entities’ respective trade secrets and business information, including but not limited to all development plans and prospectuses, technical files, technical diagrams, drawings, formulas, models and relevant technical articles, technical reports, all quality management methods, pricing methods, sales methods and customers’ materials. Confidential – do not distribute biqmind