Giter Site home page Giter Site logo

openstack-vim-driver's Introduction

License Build Status

Openstack VIM Driver

A VIM driver implementation that manages infrastructure with Openstack. Create/delete operations are managed through the Heat Orchestration API and supports templates written in both Heat or TOSCA, by first translating the template into a Heat template.

Currently the only external infrastructure that can be returned by the "find infrastructure" API is Networks.

Please read the following guides to get started with the VIM Driver:

Developer

  • Developer Docs - docs for developers to install the driver from source or run the unit tests

User

openstack-vim-driver's People

Contributors

1jenkins avatar ajayvaishnav-1 avatar akshata-desai-ibm avatar chowarth123 avatar clloydaccanto avatar davetobin avatar dependabot[bot] avatar dvaccarosenna avatar haynesdavis avatar haynesdavisibm avatar ibmtncmo avatar lokanalla avatar manojn94 avatar owen-lynch-ibm avatar sglover avatar suryadipnag avatar tonyob avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openstack-vim-driver's Issues

Include resource requests and limits configuration in Helm chart

It is common when creating a Pod to define the resources it will use (CPU and Memory) on a Kubernetes node.

It is also common for most helm charts to allow these parameters to be configurable.

We should consider adding Pod resource limits and requests values to our Helm Charts, making them configurable though the helm chart values.

https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

The majority of helm charts available on the public repository allow the resources to be configured through the following values:

resources:    
  limits:      
    cpu: "1"      
    memory: "2048Mi"
  requests:
    cpu: "25m"      
    memory: "1536Mi"

Docs: Deployment Location - Use of string, e.g. os_cacert in deployment location

Describe the bug
The sample of using a string like os_cacert as described did not work for me when using the Swagger API https://<host>:<port>/api/os/ui/#/openstack-locations/.ping.

To Reproduce
Steps to reproduce the behavior:
Using the Try it out on the API,
[A] This did not work, giving a Bad Request , Request body is not valid JSON
{ "deploymentLocation": { "name": "test", "properties": {"os_auth_project_name": "admin", "os_auth_project_domain_name": "Default", "os_auth_password": "QmtJe43ExTm2sYCcrANGdTrnV", "os_auth_username": "admin", "os_auth_user_domain_name": "Default", "os_auth_api": "v3", "os_api_url": "https://9.20.133.31:13000", "packageRepositoryUrl": "http://9.30.118.175:32739", "os_cacert": | -----BEGIN CERTIFICATE----- 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 0FN3Ar+C2UD4U43fSnoCJEqAk5YW -----END CERTIFICATE-----}, "type": "string" } }

[B] This worked, using os_cacert as a string
(btw,this is the cmd I used to stringify the .pem but I'm sure that there are other ways)

awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' ca_crt.pem > ca_crt.string

{ "deploymentLocation": { "name": "test", "properties": {"os_auth_project_name": "admin", "os_auth_project_domain_name": "Default", "os_auth_password": "QmtJe43ExTm2sYCcrANGdTrnV", "os_auth_username": "admin", "os_auth_user_domain_name": "Default", "os_auth_api": "v3", "os_api_url": "https://9.20.133.31:13000", "packageRepositoryUrl": "http://9.30.118.175:32739", "os_cacert": "-----BEGIN CERTIFICATE-----\nMIIF4TCCA8mgAwIBAgIJAMn3Ningiqw3MA0GCSqGSIb3DQEBCwUAMIGGMQswCQYD\nVQQGEwJVSzEQMA4GA1UECAwHSHVyc2xleTENMAsGA1UEBwwEY2l0eTEMMAoGA1UE\nCgwDSUJNMQ4wDAYDVQQLDAVUZWxjbzEUMBIGA1UEAwwLOS4yMC4xMzMuMzExIjAg\nBgkqhkiG9w0BCQEWE2Rhc3VyZXNoQGluLmlibS5jb20wHhcNMjAwMzI1MTQ1ODIy\nWhcNNDAwMzIwMTQ1ODIyWjCBhjELMAkGA1UEBhMCVUsxEDAOBgNVBAgMB0h1cnNs\nZXkxDTALBgNVBAcMBGNpdHkxDDAKBgNVBAoMA0lCTTEOMAwGA1UECwwFVGVsY28x\nFDASBgNVBAMMCzkuMjAuMTMzLjMxMSIwIAYJKoZIhvcNAQkBFhNkYXN1cmVzaEBp\nbi5pYm0uY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxEgKkJcC\nnE/tW/6DAnpKNeZqxTf7Sp76RVLPsBjpb3ZluP+hPi8+KUH132udShz3H6tSzMJj\nxWe3+V3FvdGjyDyw80k6q7OheNjCKiqRjlWOMQIK0xheeE2PEajzN+8+lkdTknir\nC1G7xmrfDsfe7Bl/s8LMkigkwirpo8WGRktYO5YvrHkimJSNcQJXyoJNLcTjc96x\nbZDZ8OBtTJuHSksyKsxMoNUgpQB29KU7lm4QZ/qNQQp4954/L6EgKpWZZgCqh5V3\nf81zb1kP1TJIWMVf0Y6qn4EzE37lO7UhyyyeQy/AcYreRC+xEJd1rf2bc1MJK6kB\nIB/vGlnEfRyUSqdCxLCCJ7rzkOPyleJ0OVpWyA2kha27/6Dw3uyqivMwNg3pL/0l\nQ0VvEFKXB350LpbJA+1PvPpTEH5JPnasS7BZYXrzGkY0p0E/Mm8T5aW4Hrp9YZk0\n9IEjcckCLP3kHAMmGGRtUsOX79KZWW+pOUpQoxMkONtqZYotoR90DNAW2MvX5hq+\nDUvPbQFOV7+i/IlSPGelGqvl753/ymcItBeq5CGgNa+QMZlkVTWCsqg7YTFartU/\nJA5DIkQMH+a1j4B3AyH/DP1XQxzxFg2tOVGiJfGnbKhuhTkaDAMiTBNYZJxPtQU/\n1yI79c65IhTC2BtubTRLyzE/V5xHlkTOMm0CAwEAAaNQME4wHQYDVR0OBBYEFKaC\nzsOyTtFBPzECa4bSTmDakZODMB8GA1UdIwQYMBaAFKaCzsOyTtFBPzECa4bSTmDa\nkZODMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAJ708FpXiounmZgZ\nl6ZOeXMiMvYxgHQIycI1dvl53eRBc6qt8qjzZY8N51r4xMZExhJNo+U86A2tkuqf\ni09XbXyqx/gA5mRUln0vJA8qGxmWRqzRv/sAAa66uzKnU+2qGMhTpVPuIUm3QBde\nJajgZHUSazsUhJt/UnZic1VUQaIi1ZKYGIUBnrvI9rQW7PHKaPxGdIHOK1yIyjn0\noVj7+NBUN6fdxcN3NdYAJM/ec/B23y2ZCid3USS319SDyniRf/pqxIkw6z+D3okt\n8DiVcTkVCy/46c7WnD/Gg+/tJXJpIi/UnpoPqIFpCt4kFrMdh3Ezni0HuurrTG03\n6eUK7+jGeYIBQINGwDTRHWpXPCoPiivEjijuSiR1Lnps+R+UTwnGeR5IpibS/jnm\nuReTovMijIi5mNX1qCHxG25SzWFyIoSBA/n/0OJnZ1T4HHaovvr57CpVP0L2Haj+\nUqZsgxPiA9GrM6kTiZvS01qQjR5j7olrNwns+XqE7W26OTGtyy11MCevlZ0Vanz7\npQ7ORIx8UtmCYTR7DN4LZ5MFvZyMUrmfiaqu1LFxM5NsptbWhBjRQ+UDv8w4Laqe\nd68cOIlCm4Hk6a5WYLySYHb2NJnqurH2HILkBQhnTD46gs3ZTW/FY1RY+3EaRVwd\n0FN3Ar+C2UD4U43fSnoCJEqAk5YW\n-----END CERTIFICATE-----\n" }, "type": "string" } }

Expected behavior
Response Body
{ "description": "Reached Heat client successfully", "success": true }

Screenshots
If applicable, add screenshots to help explain your problem.

Environment: (please complete the following information where applicable):

  • OS: Ubuntu 16.04
  • Version 1.0.0
  • Stratoss LM 2.1

Additional context
It is probably the same for other string which contains \n

Support imported files in Heat

Heat allows files to be referenced on type or with get_file, so you may provide a full Heat stack as multiple templates.

Now we can support multiple files on the driver API, so we should look to include these files in the request to Heat so they may be imported.

Update InfrastructureDriver to accept and make use of systemProperties

Openstack VIM driver needs to update to v0.7.0 of Ignition in order to work with Brent, which now sends properties (formerly inputs) and systemProperties on create requests.

The VIM driver should use the resourceId and resourceName system properties to name the Stack created by the request. It would also be useful to allow users to access the systemProperties in their templates.

Support Heat templates (upgrade to Ignition 0.3.0)

Use the templateType field added to the Infrastructure API in Ignition 0.3.0 to determine if the template is TOSCA or Heat. When the template is Heat we can skip the Tosca translation.

Support to be added for create infrastructure. Find infrastructure to not support Heat currently.

Support structured properties

Properties coming from the TNC-O Resource manager are being updated to include types of Lists, Maps, Integers, Floats, Booleans and Timestamps rather than just Strings so we need to ensure this driver also supports these property types.

Error Messages not clear for Adopting suspended stacks

Description

This is to track internal bug:
https://github.ibm.com/TNC/tnc-o-tracking/issues/222

When Adopting an assembly that contains an Openstack stack that is in an unadoptable state, there is a very unclear message which is the stack_status_reason field in Openstack.

To Reproduce
Steps to reproduce the behavior:

  1. Adopt a stack in Suspended state
  2. observe error message in ALM UI

Expected behavior
Should have a clear message stating the status of the stack and details of the status.

Increase default number of processes

The current default is 4 processes with 2 threads, we should increase this to 4x4 to allow more requests.

Long term we need to switch to a request queue to support more concurrent requests but this change is a short term solution.

Use TNC-O production defaults for properties

Properties like the Kafka connection URL are currently configured to work with AIO. These should default to TCN-O production defaults. For the Kafka connection url, this is alm-kafka.

Clearer error message for ping API?

When using ping API (/api/os/ui/#/openstack-locations/.ping) to test Openstack location properties, if Openstack environment doesn't have Heat enabled (e.g existing Openstack that wasn't installed with Heat in mind), the response message is somewhat vague:
{ "description": "public endpoint for orchestration service not found", "success": true }
It is hard to troubleshoot with this information. Is it possible to change the error message to something like "Unable to reach Heat orchestration service in Openstack"?

Upgrade Ignition framework version to 0.2.0

The Ignition version used by this driver needs upgrading to align with changes made in the Find Infrastructure API specification (to return an empty result rather than 404 when nothing is found).

Autoscaling on CPU usage

Update helm chart to include configurable options allow the driver to scale up and down based on CPU usage

Allow key properties to be used as inputs to Heat templates

Currently any property marked as "key" in a Resource descriptor will have it's value replaced by Brent with "keyName", "privateKey" and "publicKey" values.

In a Heat template, we cannot reference any of these as an input property. If we reference the name of the key as an input we get a concatenation of private and public key instead.

E.g. in the following case, on a create infrastructure request, "my_key" will be populated with the concatenated value.

parameters:
  my_key:
    type: string

It would be better if we could reference the 3 separate parts of the key:

parameters:
  # This will be populated with the "keyName"
  my_key:
    type: string
  # This will be populated with the "privateKey"
  my_key_private:
    type: string
  # This will be populated with the "publicKey"
  my_key_public:
    type: string

Service port named http

Describe the bug
The service deployed for the driver has a port configuration with a fixed name of "http" which is confusing as it may actually be served on https

Environment: (please complete the following information where applicable):

  • Version 1.0.0

Helm delete to cleanup secrets

Is your feature request related to a problem? Please describe.
When I reinstall a new version of the driver I get the following error on the helm install: 'Error: secrets "ovd-tls" already exists'

Describe the solution you'd like
When I run a helm delete on the driver I would like the secrets to be deleted.

Tighten restrictions on dependency versions

Add upper bounds to dependency versions in setup.py.

We recently ran into an issue where Gunicorn 20.0 was installed which has breaking changes compared to our tested version (19.9)

issue with openstack VIM driver for brent

Installed VIM driver successfully but while accessing the browser link getting below ,

error: Internal Server Error
UI : http://9.46.65.22:31681/api/infrastructure/ui

Deployment :
root@eli4-master:~/vimdriver# helm install os-vim-driver-0.5.0.tgz --name os-vim-driver -f custom-values.yml --tls
NAME: os-vim-driver
LAST DEPLOYED: Thu Feb 20 02:34:12 2020
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
os-vim-driver-ingress ovd.lm 80 0s

==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
os-vim-driver-7d54b6494-mkxsg 0/1 ContainerCreating 0 0s

==> v1/ConfigMap
NAME DATA AGE
os-vim-driver 1 1s
os-vim-driver-env 5 1s

==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
os-vim-driver NodePort 10.0.67.97 8292:31681/TCP 1s

==> v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
os-vim-driver 1 1 1 0 0s

Description of pods:
root@eli4-master:~/vimdriver# kubectl describe pods os-vim-driver-7d54b6494-mkxsg
Name: os-vim-driver-7d54b6494-mkxsg
Namespace: default
Priority: 0
PriorityClassName:
Node: 9.46.74.117/9.46.74.117
Start Time: Thu, 20 Feb 2020 02:34:13 -0800
Labels: app=os-vim-driver
part-of=lm
pod-template-hash=7d54b6494
Annotations: kubernetes.io/psp: ibm-privileged-psp
Status: Running
IP: 10.1.49.185
Controlled By: ReplicaSet/os-vim-driver-7d54b6494
Containers:
os-vim-driver:
Container ID: docker://6485dfc85ada5f1e6a3af0f185aa4bdc84f39a3ccf8b15ee2484c7931ba6e02f
Image: accanto/os-vim-driver:0.5.0
Image ID: docker-pullable://accanto/os-vim-driver@sha256:17329933e415456b67c3cc4b9c407e494ff6ed2a3044e50605d5221210cd632f
Port: 8292/TCP
Host Port: 0/TCP
State: Running
Started: Thu, 20 Feb 2020 02:34:30 -0800
Ready: True
Restart Count: 0
Environment Variables from:
os-vim-driver-env ConfigMap Optional: false
Environment:
Mounts:
/var/ovd/ovd_config.yml from config (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-mvd2r (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: os-vim-driver
Optional: false
default-token-mvd2r:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-mvd2r
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message


Normal Scheduled 81s default-scheduler Successfully assigned default/os-vim-driver-7d54b6494-mkxsg to 9.46.74.117
Normal Pulling 78s kubelet, 9.46.74.117 pulling image "accanto/os-vim-driver:0.5.0"
Normal Pulled 66s kubelet, 9.46.74.117 Successfully pulled image "accanto/os-vim-driver:0.5.0"
Normal Created 64s kubelet, 9.46.74.117 Created container
Normal Started 64s kubelet, 9.46.74.117 Started container

Error logs :
h", "thread_name": "MainThread", "level": "ERROR", "logger_name": "kafka.conn"}
{"@timestamp": "2020-02-20T10:34:33.915Z", "@Version": "1", "message": "<BrokerConnection node_id=bootstrap-0 host=9.46.65.22:9092 [IPv4 ('9.46.65.22', 9092)]>: Closing connection. KafkaConnectionError: 111 ECONNREFUSED", "host": "os-vim-driver-7d54b6494-mkxsg", "path": "/usr/local/lib/python3.7/site-packages/kafka/conn.py", "tags": [], "type": "logstash", "thread_name": "MainThread", "level": "INFO", "logger_name": "kafka.conn"}
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/osvimdriver/init.py", line 12, in create_wsgi_app
ignition_app = create_app()
File "/usr/local/lib/python3.7/site-packages/osvimdriver/app.py", line 33, in create_app
return app_builder.configure()
File "/usr/local/lib/python3.7/site-packages/ignition/boot/api.py", line 127, in configure
return BootstrapRunner(configuration).init_app()
File "/usr/local/lib/python3.7/site-packages/ignition/boot/app.py", line 131, in init_app
service_configurator.configure(self.configuration, self.service_register)
File "/usr/local/lib/python3.7/site-packages/ignition/boot/configurators/jobqueue.py", line 36, in configure
TopicCreator().create_topic_if_needed(messaging_config.connection_address, messaging_config.topics.job_queue)
File "/usr/local/lib/python3.7/site-packages/ignition/service/messaging.py", line 62, in create_topic_if_needed
admin_client = KafkaAdminClient(bootstrap_servers=connection_address, client_id='ignition')
File "/usr/local/lib/python3.7/site-packages/kafka/admin/client.py", line 204, in init
**self.config)
File "/usr/local/lib/python3.7/site-packages/kafka/client_async.py", line 240, in init
self.config['api_version'] = self.check_version(timeout=check_timeout)
File "/usr/local/lib/python3.7/site-packages/kafka/client_async.py", line 899, in check_version
raise Errors.NoBrokersAvailable()
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 9)
spawned uWSGI worker 1 (pid: 10, cores: 2)
spawned uWSGI worker 2 (pid: 12, cores: 2)
spawned uWSGI worker 3 (pid: 14, cores: 2)
spawned uWSGI worker 4 (pid: 16, cores: 2)
spawned uWSGI http 1 (pid: 18)
--- no python application found, check your startup logs for errors ---
[pid: 16|app: -1|req: -1/1] 10.1.157.192 () {38 vars in 3671 bytes} [Thu Feb 20 10:36:41 2020] GET /api/infrastructure/ui => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 14|app: -1|req: -1/2] 10.1.157.192 () {38 vars in 3592 bytes} [Thu Feb 20 10:36:41 2020] GET /favicon.ico => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 14|app: -1|req: -1/3] 10.1.157.192 () {40 vars in 3702 bytes} [Thu Feb 20 10:36:55 2020] GET /api/infrastructure/ui => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 1)
--- no python application found, check your startup logs for errors ---
[pid: 10|app: -1|req: -1/4] 10.1.157.192 () {38 vars in 3592 bytes} [Thu Feb 20 10:36:55 2020] GET /favicon.ico => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)

may be issue with kafka ,

As kafka is running on ClusterIp service and vim driver is running on NodePort :

root@eli4-master:~/vimdriver# kubectl get svc |egrep -i "kafka|os-vim-driver"
alm-kafka ClusterIP None 9092/TCP,9093/TCP,8080/TCP,8443/TCP 27h
os-vim-driver NodePort 10.0.67.97 8292:31681/TCP 6m49s

Questions : Do we need to change the kafka service to from ClusterIp to NodePort to access it from outside the K8S cluster ?

Log level causing high disk usage

Describe the bug
The log level is set to DEBUG and it is causing a high amount of logging, filling up elasticsearch when using filebeat

To Reproduce
Install the driver and let it run for a few days, you will find high disk usage in elasticsearch

Expected behavior
The log level should be lower thereby reducing the rate at which the disk fills up

Support NFV tosca types

Is your feature request related to a problem? Please describe.
The heat translator supports a subset of the Etsi NFV TOSCA types, it would be good to support those to expand our TOSCA support.

Describe the solution you'd like
Update the forked version of the heat translator the include the new types.
Also provide reasonable extensions to support specific Openstack properties and use cases (such as reference an existing Network).

Ingress removal

Ingress will no longer be supported and will be removed

For more information ,please refer to internal issue : 3574

Add Support for Adopt Lifecycle Transitions

Add support for the LM adopt lifecycle transition, which will adopt at most one stack (in one of a configurable set of active states) and return the stack output properties.

Graceful shutdown

Remove usage of uwsgi and always use Gunicorn to ensure SIGTERM is handled by the Gunicorn process.

Helm installation does not work for OCP 4.4 (Kubernetes 1.17)

Helm installation fails with the following error:

helm install os-vim-driver-2.1.0a2.issue51.tgz --name os-vim-driver --namespace lifecycle-manager -f custom-values.yml --tls --tiller-namespace $CS_NAMESPACE
Error: validation failed: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

because OCP 4.4 is using a newer version of Kubernetes (1.17) and the Deployments and Statefulsets apiVersion changed from extensions/v1beta1 to apps/v1. The driver Helm chart needs to be updated to account for this e.g. by using
Capabilities.KubeVersion.Major and Capabilities.KubeVersion.Minor (see https://helm.sh/docs/chart_template_guide/builtin_objects/) to switch between the different apiVersions.

Update API handling with Ignition Resource Driver API changes

Ignition 1.2 will feature a single Resource Driver API instead of separate Infrastructure/Lifecycle APIs, to conform with Brent 2.2.

Before this driver can upgrade to 1.2 it must update it's handling of API requests to match the new API specification.

This means all create/delete requests are now made through an execute_lifecycle request. The driver only needs to support Create/Delete transitions, all other transitions can be rejected. 
The driver should store the Stack ID (infrastructure ID) on the internalResources field. 

Instabilities running in OCP

*Describe the bug *

The default HTTP server being used UWSGI seems often to cause lengthy boot times when running in an OCP environment. In particular, the driver does not respond to HTTP requests like the health check, resulting in the readiness and liveness probes triggering.

Expected behavior
The driver should boot in OCP without lots of restarts due to readiness and liveness probes

Upgrade ignition framework version

Update the Ignition framework version (0.6.1 or later) to benefit from:

  • API support for latest Brent changes, which includes property types
  • Job queue fixes
  • Logging fixes
  • API specification fixes

Uplift dependency versions

Support Python3.8.

Update all 3rd party dependencies to latest versions unless breaking changes are reported.

Exclude Openshift clients for now as we need to investigate what has changed in 2.x

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.