Showing posts with label Database. Show all posts
Showing posts with label Database. Show all posts

Service Catalog


Introduction

The Service Catalog offers :
- powerful abstractions to make services available in a Kubernetes cluster. 
These services are:
- typically third-party managed cloud offerings OR
- self-hosted services 

Developers can focus on the applications without the need for managing complex services deployment.

Service Catalog is list of (1) service class (or service offering) E.g services : database, messaging queue, API gateway, a log drain, or something else. Services are associated with (2) service plan The service plan is variant of service in terms of cost, size etc.

Service Broker
Typically, a third party Service provider will expose a Service Broker on their own infrastructure

Service configuration options using JSON schema to configure service and plan. Automatic form building is also possible. 

Service Broker use cases

1. Service breaker handle interactions from modern cloud native apps to legacy system for valueable data stored at legacy system.


2. OSBAPI allows interactions with multiple cloud provider. 

Service broker can also implement web-based service dashboard

A Service Broker is a piece of software (server) that implements the Open Service Broker APIs. These APIs are for
- listing catalog
- provisioning 
- deprovisioning
- binding service instance with application
- unbinding service instance from application

These are secure APIs. Service broker implements OAuth etc on interface with application / container / platform. a service broker proxy can be used to support custom authentication flow. 

For time consuming provisioning and deprovisioning, OSBAPI supports asynchronous operation. 

The service broker first register with K8s.
K8s platform is like client software, that request service broker. The first request may be to get service catalog. Then K8s platform will ask to create new service instance

on-demand : service instance is provisioned, when requested.

multi-tenant : service instance are pre-provisioned.

The service instance will be bind to K8s application/pod using Service BindingsTypically, a Service Binding will also provide credentials and connectivity information (IP and port) to the application to access the Service. These credentials will be managed by K8s as secrets. 

Here, service catalog is K8s resource and it has corresponding (1) Service Catalog Controller and (2) Service Catalog API Gateway. The end-user will interact with Service Catalog API gateway. The gateway will ask service broker to list out all the services (service offering/class + service plan). Then K8s will update (remove duplicate, add, delete, modify) the master service catalog and respond to application/platform client. 

Comparison


Open Service Broker API             Kubernetes servicecatalog.k8s.io Kinds
Platform                            Kubernetes
Service Broker                     ClusterServiceBroker
Service                             ClusterServiceClass
Plan                                ClusterServicePlan
Service Instance                    ServiceInstance
Service Binding                     ServiceBinding

Reference 

React.JS


Let me share some useful resources related to React.JS

First let's have a look to overall Layer architecture, to get big picture.


Layer Component Examples
4 At browser : MVC Framework Angular.JS, React.JS, Veu.JS, Vanila JS etc.
3 Web Application Framework (WAF) Express.JS
2 Server side scripting Node.JS
1 Databse (DB) Mongo DB, Any NoSQL DB

With React.JS one can build: 

1. Web Application
2. Web Services
3. Web Resources
4. Web API

We have

1. React.JS to build user interface
2. React Native to build application for Android OS, iOS and UWP (Universal Windows Platform : Windows10)


Now here is list of URLs:

URLs
https://en.wikipedia.org/wiki/React_(JavaScript_library)
https://en.wikipedia.org/wiki/Web_framework
https://en.wikipedia.org/wiki/MEAN_(software_bundle)
https://www.quora.com/What-is-a-full-stack-in-JavaScript
https://redux.js.org/
https://reactjs.org/
http://www.material-ui.com/
https://x-team.com/blog/react-baby-steps/
Basics

HTML
https://www.w3schools.com/html/
CSS
https://www.w3schools.com/css/
https://www.codecademy.com/learn/learn-css
https://www.safaribooksonline.com/library/view/designing-with-web/9780321679765/ (safari books)
JavaScript
https://javascript.info/
https://www.safaribooksonline.com/library/view/speaking-javascript/9781449365028/ (safari books)
es6
https://www.udemy.com/essentials-in-javascript-es6/learn/v4/content
React

https://reactjs.org/tutorial/tutorial.html
https://reactjs.org/docs/getting-started.html
https://www.safaribooksonline.com/videos/reactjs-fundamentals-second/9780134854670 (safari books)
Webpack

https://webpack.js.org/concepts/
https://www.valentinog.com/blog/react-webpack-babel/

Redux

https://redux.js.org/
https://egghead.io/courses/getting-started-with-redux

React-Router

https://reacttraining.com/react-router/web/guides/quick-start
https://medium.com/@pshrmn/a-simple-react-router-v4-tutorial-7f23ff27adf

Internationalization

https://github.com/yahoo/react-intl/wiki#getting-started
https://medium.com/@marcelmokos/internationalize-react-apps-done-right-using-react-intl-library-82978dbe175e

Utility libraries
Axios

https://github.com/axios/axios

Loadash
https://lodash.com/docs/4.17.10
Moment
https://momentjs.com/docs/
Testing

https://jestjs.io/docs/en/getting-started (jest)
https://airbnb.io/enzyme/docs/api/ (enzyme)
https://hackernoon.com/testing-react-components-with-jest-and-enzyme-41d592c174f (react + jest +enzyme)

Some more reference

1. To get start with skeleton code using this NPM project. 





AWS


As per Wikipedia Amazon has about 90+ cloud services. Here is list of all major services

90 services 
Computing
Amazon Elastic Compute Cloud (EC2) : IaaS
Amazon Elastic Beanstalk (ESB) : PaaS
Amazon Lambda : FaaS
Networking
Amazon Route 53
Amazon Virtual Private Cloud (VPC)
AWS Direct Connect
Amazon Elastic Load Balancing (ELB)
AWS Elastic Network Adapter (ENA)
Content Delivery
Amazon CloudFront : CDN
Contact Center
Amazon Connect
Storage and content delivery
Amazon Simple Storage Service (S3) : Object storage
Amazon Glacier : For archiving data
AWS Storage Gateway : iSCSI
Amazon Elastic Block Store (EBS) : block level storage
AWS Import/Export
Amazon Elastic File System (EFS)
Database
Amazon DynamoDB : NoSQL
Amazon Elastic Cache : Like Memcached and Redis
Amazon Relational Database Service (RDS) : MySQL, Oracle, SQL Server, PostgreSQL
Amazon Redshift : column based
Amazon SimpleDB
AWS Data Pipeline
Amazon Aurora : MySQL
Mobile services 
AWS Mobile Hub : Add/Configure features for mobile apps
Amazon Cognito : Singup / signin
AWS Device Farm : Testing
Amazon Pinpoint : email/SMS/push notofication and tracking customer activity
Deployment
AWS CloudFormation : IaaC to configure cloud
Amazon Elastic Beanstalk (ESB) : PaaS
AWS OpsWorks : Configure EC2 using Chef
AWS CodeDeploy
Management
AWS System Manager 
Amazon Indentity and Access Management (IAM) : Implicit Service
AWS Directory Service
Amazon CloudWatch
AWS Management Console (AWS Console)
Amazon CloudHSM (Hardware Security Module)
AWS Key Management Service (KMS)
Amazon EC2 Container Service (ECS)
Application services
Amazon API Gateway
Amazon CloudSearch
Amazon DevPay
Amazon Elastic Transcoder (ETS) : S3 hosted videos transcoding for mobile
Amazon Simple Email Service (SES)
Amazon Simple Queue Service (SQS)
Amazon Simple Notification Service (SNS)
Amazon Simple Workflow (SWF)
Amazon Cognito
Amazon AppStream 
Analytics 
Amazon Athena : Serverless query to S3 content
Amazon Elastic MapReduce (EMR) : PaaS
Amazon Machine Learning
Amazon Kinesis : like Apache Kafka
Amazon Elastic Search : elastic search and Kibana
Amazon QuickSight
Amazon Sagemaker : Deep Learning. Build, train and deploy Machine Learning models
Miscellaneous
Amazon Marketplace Web Service (MWS)
Amazon Mechanical Turk (Mturk)
Amazon Product Advertising API : old names (1) Amazon Associate Web Service (A2S) + (2) Amazon E-commerce Service (ECS)
Amazon Gift Code on Demand (AGCOD) : For corporate customer
AWS Partner Network (APN)
Amazon Lumberyard : Game engine 
Amazon Chime : Colloborative service for video, conf. and IM. 
Amazon Autoscaling
Machine Learning
AWS DeepLens : Computer vision and deep learning
Amazon Comprehand : NLP
Amazon Rekognition Video
Amazon Sagemaker : Deep Learning. Build, train and deploy Machine Learning models
Amazon translate
Amazon Transcribe
Developer tools

AWS Cloud9 : cloud IDE

Database Key


Today one new label is added. "Database". There are set of articles planned in this category. Today is the first one. 

Most of us know, in RDBMS, database table has primary key and foreign key. Any idea about other types of key? Below tables describes all database keys and relations among them. 



Primary
Unique
Surrogate
Foreign
Composite
Simple
1
Primary
1
1
May be
May be
May be
May be
2
Unique
May be
1
May be
May be
May be
May be
3
Surrogate
May be
1
1
May be
0
1
4
Foreign
0
May be
0
1
May be
May be
5
Composite
May be
May be
0
May be
1
0
6
Simple
May be
May be
0
May be
0
1
7
Super
0
1
0
0
May be
May be
8
Minimal super
May be
1
0
0
May be
May be
9
Tirival Super
May be
1
0
May be
1
0
10
Candidate
May be
1
May be
May be
May be
May be
11
Alternate
0
1
1
May be
May be
May be
12
Natural
May be
1
0
May be
1


Super Minaml super Tirival Super Candidate Alternate Natural
1 Primary May be May be 0 1 0 May be
2 Unique 1 May be May be 1 May be May be
3 Surrogate 0 0 0 May be May be 0
4 Foreign May be May be 0 0 0 0
5 Composite May be May be 1 1 May be 0
6 Simple 0 May be 0 May be May be May be
7 Super 1 May be 1 0 0
8 Minimal super 1 1 0 1 May be May be
9 Tirival Super 1 0 1 1 May be 0
10 Candidate 1 1 1 1 May be May be
11 Alternate 1 1 0 1 1 May be
12 Natural 0 1 May be 1



The above table should be read, row wise

For example 1st row: 

Is primary key is unique? 1 = Yes
Is it surrogate? The surrogate key can become primary key. However the primary key is not always surrogate. So answer "May be"
and so on. Here 1 = Yes and 0 = No

Here are some key points about database keys
  • The primary key cannot be NULL
  • The unique key can be NULL
  • The primary key is always unique
  • All unique keys are candidate key to become primary key
  • Primary key can be one of the candidate key or it can be surrogate key
  • The candidate key, who is not primary key is alternate key. 
  • If surrogate key is primary key, then all candidate keys are alternate keys. 
  • Simple key and composite key are mutually exclusive. 
  • The compound key should have at least two simple keys
  • The composite key is extension of compound key
  • Natural key and domain key are synonyms.
  • Composite key, compound key, aggregate key and concatenated key. All are in a way same. 
  • Minimal super key and candidate key are in a way same. 
  • Trivial super key means all columns.   
Stay tune to this blog "Express YourSelf !" for more interesting articles.