IBM Bluemix Workshop version 3
-
Upload
nguyen-tai-dzung -
Category
Software
-
view
515 -
download
4
Transcript of IBM Bluemix Workshop version 3
-
IBM Bluemix Hands On Workshop
-
10.1
IBM Bluemix Hands On Workshop
Nguyen Tai Dzung (Dng) Cloud Solution Architect + Bluemix Evangelist
IBM Clouds and Ecosystem Development Email: [email protected] [email protected]
Please register:
https://bluemix.net
https://hub.jazz.net
https://hub.jazz.net/
-
IBM Bluemix Hands On Workshop
Contents
1. Module 1 IBM Bluemix Overview
2. Module 2 Tour of IBM Bluemix
3. Module 3 First Deploy
Exercise First Deploy Exercises (Bluemix UI, CF CLI and Eclipse)
4. Module 4 DevOps Services
Exercise Bluemix integration with DevOps Services
5. Module 5 Create your application
Exercise Your first Node.js application
6. Module 6 Services
Exercise Adding a service to an application
7. Module 7 How it works
Exercise Specifying a buildpack when deploying an application
8. Module 8: Containers
-
IBM Bluemix Hands On Workshop
Contents
9. MobileFirst on Bluemix
10. Big Data on Bluemix
11. Internet of Things (IoT)
-
IBM Bluemix Hands On Workshop
Course overview Welcome to Getting Started with IBM Bluemix
5 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Prerequisite skills and software
To complete this course successfully, you should understand: Basics of application development How to use the command line to do basic programming tasks
Youll need the following software and accounts: IBM Bluemix registration: A 30-day trial is available Eclipse: Well show you how to do that Cloud Foundry Command Line Interface Node.js runtime
An IBM Bluemix account An IBM Bluemix DevOps Services account
6 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Course learning objectives
Understand the basics of the IBM Bluemix platform Understand the basics of cloud computing and how to maximize the value of cloud
development
Learn how to integrate Bluemix into your own development process Learn the importance of designing an application to run on a cloud platform, such as IBM
Bluemix
Understand the different runtime options for deploying an application
7 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 1: IBM Bluemix overview Basics of the IBM cloud platform as a service
Copyright IBM Corporation 2015 8
-
IBM Bluemix Hands On Workshop
IBM Bluemix: IBMs cloud platform
9 Copyright IBM Corporation 2015
Bluemix service categories
Developer experience
Rapidly deploy and scale applications in any language.
Compose applications quickly with useful APIs and services and avoid tedious backend configuration.
Realize fast time-to-value with simplicity, flexibility, and clear documentation.
Enterprise capability
Securely integrate with existing on-premises data and systems.
Choose from flexible deployment models.
Manage the full application lifecycle with DevOps.
Develop and deploy on a platform built on a foundation of open technology.
Built on a foundation of open technology
Build, run, scale, manage, integrate, and secure applications in the cloud.
DevOps Big data Mobile Watson Business analytics
Database Web and application Security Internet of Things Cloud integration
API management and integration
-
IBM Bluemix Hands On Workshop
So what is Bluemix?
10
Bluemix is an open-standards, cloud-based platform for building, running, and managing applications.
Build your apps, your way Use the most prominent compute technologies to power your app: Cloud Foundry, Docker, OpenStack.
Extend apps with services A catalog of IBM, third party, and open source services allow the developer to stitch an application together quickly.
Scale more than just instances Development, monitoring, deployment, and logging tools allow the developer to run and manage the entire application.
Layered Security IBM secures the platform and infrastructure and provides you with the tools to secure your apps.
Deploy and manage hybrid apps seamlessly Get a seamless dev and management experience across a number of hybrid implementations options.
Flexible Pricing Try compute options and services for free and, when youre ready, pay only for what you use. Pay as you go and subscription models offer choice and flexibility.
Coming Summer 2015
-
IBM Bluemix Hands On Workshop
Addressing many types of use cases
Extend existing applications - Add user experience such as mobile, social
- Add new capabilities integrating other services and APIs
- Do rapid experimentation for new capabilities
API-enable applications - Scalable API layer on top of existing services
- Simplify how composite service capabilities are exposed through APIs
New applications - Systems of Engagement
- Different state management models
- Twelve-factor applications
Backend Systems and Integration
API Creation and Management New Channels and
Opportunities
Copyright IBM Corporation 2015 11
http://12factor.net/http://12factor.net/http://12factor.net/
-
IBM Bluemix Hands On Workshop
Bluemix structure
Copyright IBM Corporation 2015 12
-
IBM Bluemix Hands On Workshop
How does Bluemix work? Bluemix is underlined by three key open compute technologies: Cloud Foundry, Docker, and OpenStack.
It extends each of these with a growing number of services, robust DevOps tooling, integration capabilities, and a seamless developer experience.
13
Flexible Compute Options to Run Apps / Services
Instant Runtimes Containers Virtual Machines
Platform Deployment Options that Meet Your Workload Requirements
Bluemix
Public
Bluemix
Dedicated
Bluemix
Local*
DevOps
Tooling Your Own Hosted Apps / Services
Integration
and API
Mgmt
Powered by IBM SoftLayer In Your Data Center
+ + +
+ +
+ Always focused on whats next
Catalog of Services that Extend Apps Functionality
Web Data Mobile Analytics Cognitive IoT Security Yours
+
*Bluemix Local coming Summer 2015
-
IBM Bluemix Hands On Workshop
More openness and choice than ever before
14
Bluemix is anything but locked down. You choose how you build, deploy, and manage your apps. Bluemix takes care of the rest.
Compute Choose the level of infrastructure abstraction based on your apps architectural needs.
Dev Tooling From editors to source code management to continuous delivery, you can use Bluemix powerful tooling or easily bring your own.
Location Deploy apps to Bluemix Public (in a growing number of geos), your own dedicated cloud Bluemix, or one that runs within your data center (Local*).
Services Pick from a catalog of IBM, third party, open source, or your own services to extend your apps.
IBM
Third Party
Open Source
Yours
*Bluemix Local coming Summer 2015
-
IBM Bluemix Hands On Workshop
Bluemix offers different compute models to run your code
Copyright IBM Corporation 2015
Cloud Foundry application
Docker container Virtual machine
Consistent experience: Common service binding and consumption model Common user ID and permissions model Ability to hook into common routing layer
expanding
Level of abstraction
Flexibility
15
Reference: Bluemix Instant Runtimes, Containers or Virtual Machines?
https://developer.ibm.com/bluemix/2015/08/05/bluemix-instant-runtimes-containers-or-virtual-machines/
-
IBM Bluemix Hands On Workshop
A PaaS helps developers focus on whats most important to them: The application
Bluemix eliminates and dramatically simplifies various tasks:
OS patching
OS security hardening
Deployment
Load-balancing
Scaling
Health management
16 Copyright IBM Corporation 2015
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Data
Applications
Traditional On-Premises
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Data
Applications
Platform as a Service
Networking
Storage
Servers
Virtualization
O/S
Middleware
Runtime
Data
Applications
Software as a Service
Networking
Storage
Servers
Virtualization
Middleware
Runtime
Data
Applications
Infrastructure as a Service
O/S
Vendor Manages in Cloud Client Manages
Standardization; OPEX savings; faster time to value
Customization; higher costs; slower time to value
-
IBM Bluemix Hands On Workshop
Bluemix: foundational concepts
Account Anchor point for billing
User User User
Organizations Enables team collaboration
Organizations Enables team collaboration
Organizations enables team collaboration
Spaces Logical grouping of apps and service instances
per-user permissions
Spaces Logical grouping of apps and service instances
per-user permissions
Spaces Logical grouping of apps and service instances
Per-user permissions
Space Apps Space VMs
Space Containers
Space Service instances
17 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
So whats a Region ?
us-south https://console.ng.bluemix.
net https://api.ng.bluemix.net
eu-gb https://console.eu-
gb.bluemix.net https://api.eu-gb.bluemix.net
- Dedicated cloud Foundry Installation & services - Maximum isolation from entities in other regions
18 Hands on Workshop - Copyright IBM Corporation 2015
au-syd https://console.au-
syd.bluemix.net https://api.au-
syd.bluemix.net
https://console.ng.bluemix.nethttps://console.ng.bluemix.nethttps://api.ng.bluemix.net/https://console.eu-gb.bluemix.nethttps://console.eu-gb.bluemix.nethttps://console.eu-gb.bluemix.nethttps://api.ng.bluemix.nethttps://api.ng.bluemix.nethttps://api.ng.bluemix.nethttps://console.eu-gb.bluemix.nethttps://console.eu-gb.bluemix.nethttps://console.eu-gb.bluemix.nethttps://api.ng.bluemix.nethttps://api.ng.bluemix.nethttps://api.ng.bluemix.net
-
IBM Bluemix Hands On Workshop
Building increasingly flexible deployment models
Public Dedicated On-premises
Copyright IBM Corporation 2015 19
-
IBM Bluemix Hands On Workshop
Module 2: The Bluemix tour Demo of the Bluemix interface
20 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Bluemis Tours
21 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 3: Boilerplate applications Deploying your first application
22 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Boilerplates
Provide a fast way to get an application stated Package of sample application code and services
23 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 3a: Deploy your first application
24 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Accessing sample code
Sample code for the application is available to download after a runtime or boilerplate has been deployed.
25 Copyright IBM Corporation 2015
1.Click
2.Click
-
IBM Bluemix Hands On Workshop
Command-line interface
Bluemix uses the Cloud Foundry command-line interface (CLI): cf cf help provides help page showing all the commands
cf help provides help for specific command
26 Copyright IBM Corporation 2015
cf l login cf ds delete service
cf t target space or organization cf bs bind service to application
cf a list apps in current space cf st start app
cf app display status for specific app
in current space cf sp stop app
cf p push (deploy or update) app cf d delete app
cf s show service info cf scale scale app
cf cs create service
cf logs tail or show logs for app
-
IBM Bluemix Hands On Workshop
Sample cf commands
To log in to Bluemix: cf l a https://api.ng.bluemix.net -u -p -o -s dev
cf l a https://api.eu-gb.bluemix.net -u -p -o -s
dev
This command will log in to Bluemix, set the organization to the users own organization, and the space to dev
To check what space you are logged into or to change the space: cf t
cf t -s test
The first option prints the current target organization and space. The second option switches to the test space.
To check what spaces exist in an organization: cf spaces
Displays the spaces available in the current organization.
cf space dev
Displays information about the dev space in the current organization.
27 Copyright IBM Corporation 2015
https://api.ng.bluemix.nethttps://api.ng.bluemix.nethttps://api.ng.bluemix.nethttps://api.ng.bluemix.net
-
IBM Bluemix Hands On Workshop
Exercise 3b: Deploy then update an application using the Command Line Interface
28 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Eclipse plug-in for Bluemix
Available in the Eclipse marketplace Enables developers to develop in Eclipse and then deploy to Bluemix Java and JavaScript are supported
29 Copyright IBM Corporation 2015
Servers view Right click Bluemix
Select Add and
Remove
Select available app Click Add to deploy
to Bluemix
-
IBM Bluemix Hands On Workshop
Define your Bluemix server connection in Eclipse
In Eclipse preferences, select Server then Runtime Environments. Add a server definition for each Bluemix space that you want to deploy
to.
30 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Adding additional Bluemix regions to Eclipse
31 Copyright IBM Corporation 2015
1. Click Manage Cloud from the Add Bluemix Account dialog box.
2. Click Add to add an additional Bluemix cloud
3. Enter the details of the Bluemix region by providing the name and endpoint URL
4. Click Finish.
For more information about region endpoint URLs, see:
https://www.ng.bluemix.net/docs/#overview/overview.html#ov_intro__reg
https://www.ng.bluemix.net/docs/overview/overview.html
-
IBM Bluemix Hands On Workshop
Environment Variables
Bluemix sets environment variables when deploying an application to inform the application about the environment it is running in. Application may need to use this information to set configuration such as
the hostname and port to listen for incoming requests. VCAP_APP_HOST specifies the hostname on which your application should
listen VCAP_APP_PORT specifies the port number on which your application
should listen
You can also define custom environment variables to provide configuration to your application
32 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Manifest file
Allows you to specify the parameters for an application deployment manifest.yml file is used at deploy time if found in directory application
is being pushed from
---
applications:
- name: Myphpmyadmin
memory: 128M
instances: 1
host: Myphpmyadmin
path: .
buildpack: https://github.com/dmikusa-pivotal/cf-php-build-pack.git
services:
- mysql_BlueMixLab
---
applications:
- name: bluemix-todo-node
host: bluemix-todo-node-${random-word}
command: node app.js
memory: 128M
services:
- todo-db
http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
33 Copyright IBM Corporation 2015
http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.htmlhttp://docs.cloudfoundry.org/devguide/deploy-apps/manifest.htmlhttp://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
-
IBM Bluemix Hands On Workshop
.cfignore
When you push an application all content of the current directory and all sub directories are pushed to the server this is not the behavior you always want
.cfignore allows control of what is sent to the server by listing the files and directories you do not want to send to the server
Sample .cfignore file: .git node_modules tmp lib-src
34 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 3c: Working with Eclipse and Bluemix
35 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Summary
Bluemix provides a number of options for developing applications giving you the ability to integrate Bluemix into the developer tools of your choice
Bluemix provides starter packs to get you up and running quickly Start applications from scratch
36 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 4: DevOps and Bluemix Overview of DevOps services and app development
37 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
IBM Bluemix DevOps services An open, integrated rapid development experience that scales
A Premier DevOps service for IBM Cloud platform
Promotes incremental frictionless adoption of
DevOps services for Bluemix
An integrated developer experience End-to-end DevOps solution in the cloud for
developing applications
Integrated task tracking, agile planning,
source control with autodeploy
Complementary mobile quality and
application performance monitoring
Use your favorite tools or work from the web
IDE
Free public and fee-based private projects
Scalable, secure, enterprise-ready Runs on SoftLayer infrastructure
38 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
DevOps Services available today
39 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 4a: IBM Bluemix integration with DevOps services
40 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Get productive with Bluemix DevOps services in minutes Register at www.jazzhub.com
Answer a few questions Which Source Code Management
(SCM) - Git, GitHub, Jazz SCM?
Do you want your project to be public or private?
Do you want to practice agile software development?
Do you want to deploy on IBM Bluemix?
Start coding
41 Copyright IBM Corporation 2015
http://www.jazzhub.com/
-
IBM Bluemix Hands On Workshop
Collaborate seamlessly on public or private projects Easily invite team members Access from anywhere Built for collaboration from the ground up Choose who sees your project and how you engage with broader
communities
42 Copyright IBM Corporation 2015
Invite other people to
your project
Enter a comma
separated list of
email addresses
-
IBM Bluemix Hands On Workshop 43
Agile development in the cloud is easy with Bluemix DevOps services
Built-in agile process support Work items to track and plan project activities Agile tools for the product backlog, releases, and sprints Dashboard charts for project status
43 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Choose how you code with Bluemix DevOps services Browser-based integrated
development environment
Full support for local development with Eclipse
or Visual Studio
Built-in support for Jazz Source Control
Hosted Git repository
Got GitHub? No problem
44 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Live Sync for Node.js
Enables Node.JS code changes to be pushed live without the need to redeploy the application
Available in IBM Bluemix DevOps services as the Live Edit feature (Chrome browser only for debug)
Available on Microsoft Windows and Applied OS X platforms from the command line using the Live Sync CLI
45 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 4b: Working in DevOps Services
46 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Leverage the power of social coding
47 Copyright IBM Corporation 2015
Public Private
With public projects, its easy to learn and share work with a broader
audience.
-
IBM Bluemix Hands On Workshop
Summary
IBM Bluemix DevOps Services: Provides an online set of tooling to plan, manage, develop, and deploy
your application
Can use the build in code repository or choose to use Git Hub
Allows developers to collaborate on a project
Allows developers to work online or locally on the same project
48 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 5: Cloud development and the new IT Maximizing the value of Bluemix
49 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Challenges and expectations
Time to market for new applications is to long
Speed and innovation are needed to
capture new business opportunities
Remove blockage from IT deployment
Competitive threat from new on the web born companies
Clients want to enter the API economy. Need environment to share or sell software assets they build/own
Reduce operational cost and limit capital investments and remove the need to manage and procure assets and services
50 Copyright IBM Corporation 2015
Developers expectations: Client business challenges:
-
IBM Bluemix Hands On Workshop
Bluemix can fit into a software development process, but will it deliver the promised value?
51 Copyright IBM Corporation 2015
Initiation
Planning
Requirements
Analysis
Design
Development
Integration
System Test
Deployment
Operation and
Maintenance
-
IBM Bluemix Hands On Workshop
What does it take to deliver the promised value?
52 Copyright IBM Corporation 2015
User-centered design
Agile methodology
DevOps processes and tooling
Architect for cloud
Microservices
Architecture
-
IBM Bluemix Hands On Workshop
User-centered design
53 Copyright IBM Corporation 2015
Hills: who, what, WOW
Sponsored users: design for
real users, not for imagined
needs
Playbacks: collaborate to tell
a great story
-
IBM Bluemix Hands On Workshop
Agile methodology
54 Copyright IBM Corporation 2015
Agile principles The Agile Manifesto is based on 12 principles:
Customer satisfaction by rapid delivery of useful software
Welcome changing requirements, even late in development
Working software is delivered frequently
Close, daily cooperation between business people and
developers
Projects are built around motivated individuals, who should
be trusted
Face-to-face conversation is the best form of
communication (co-location)
Working software is the principal measure of progress
Sustainable development, able to maintain a constant pace
Continuous attention to technical excellence and good
design
Simplicitythe art of maximizing the amount of work not
doneis essential
Self-organizing teams
Regular adaptation to changing circumstance
Agile practices Agile development is supported by several concrete
practices, covering areas such as requirements, design,
modeling, coding, testing, project management, process,
and quality. Some notable agile practices include:
Acceptance test-driven development (ATDD)
Agile modeling
Backlogs (product and sprint)
Behavior-driven development (BDD)
Cross-functional team
Continuous integration (CI)
Domain-driven design (DDD)
Information radiators (scrum board, task board, visual
management board, burndown chart)
Iterative and incremental development (IID)
Pair programming
Planning poker
Refactoring
Scrum events (sprint planning, daily scrum, sprint review, and
retrospective)
Test-driven development (TDD)
Agile testing
Timeboxing
Use case
User story
Story-driven modeling
Retrospective
Velocity tracking
From Wikipedia:
http://en.wikipedia.org/w/index.php?title=Agile_software_development&action=edit§ion=4http://en.wikipedia.org/w/index.php?title=Agile_software_development&action=edit§ion=16http://en.wikipedia.org/wiki/Domain-driven_designhttp://en.wikipedia.org/wiki/Retrospective
-
IBM Bluemix Hands On Workshop
DevOps
55 Copyright IBM Corporation 2015
Goals The specific goals of a DevOps approach span the entire delivery pipeline. They include improved deployment frequency, which can lead to faster time to market, lower failure rate of new releases, shortened lead time between fixes, and faster mean time to recovery in the event of a new release crashing or otherwise disabling the current system. Simple processes become increasingly programmable and dynamic, using a DevOps approach, which aims to maximize the predictability, efficiency, security, and maintainability of operational processes. Very often, automation supports this objective.
Adoption
The adoption of DevOps is being driven by factors such as:
Use of agile and other development processes and methodologies
Demand for an increased rate of production releases from application and business
unit stakeholders
Wide availability of virtualized and cloud infrastructure from internal and external
providers
Increased usage of data center automation and configuration management tools
From Wikipedia:
http://en.wikipedia.org/w/index.php?title=DevOps&action=edit§ion=4http://en.wikipedia.org/w/index.php?title=DevOps&action=edit§ion=6
-
IBM Bluemix Hands On Workshop
Bluemix unified DevOps experience (roadmap)
56 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Application architecture
57 Copyright IBM Corporation 2015
Feeds
Pub/sub
Task
Task
Backend Cache
Backend
Web
Web
Web
-
IBM Bluemix Hands On Workshop
Twelve-Factor app (http://12factor.net)
In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service.
The twelve-factor app is a methodology for building software-as-a-service apps that:
Use declarative formats for setup automation to minimize time and cost for new developers joining the project
Have a clean contract with the underlying operating system, which offers maximum portability between
execution environments
Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems
administration
Minimize divergence between development and production, enabling continuous deployment for maximum
agility
Can scale up without significant changes to tooling, architecture, or development practices
The twelve-factor methodology can be applied to apps written in any programming language, and which use any
combination of backing services (database, queue, memory cache, etc).
I. Codebase
One codebase tracked in revision control, many deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing Services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as similar as possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off processes
Copyright IBM Corporation 2015 58
http://12factor.nethttp://12factor.net/codebasehttp://12factor.net/codebasehttp://12factor.net/dependencieshttp://12factor.net/dependencieshttp://12factor.net/confighttp://12factor.net/confighttp://12factor.net/backing-serviceshttp://12factor.net/backing-serviceshttp://12factor.net/build-release-runhttp://12factor.net/build-release-runhttp://12factor.net/processeshttp://12factor.net/processeshttp://12factor.net/port-bindinghttp://12factor.net/port-bindinghttp://12factor.net/concurrencyhttp://12factor.net/concurrencyhttp://12factor.net/disposabilityhttp://12factor.net/disposabilityhttp://12factor.net/dev-prod-parityhttp://12factor.net/dev-prod-parityhttp://12factor.net/logshttp://12factor.net/logshttp://12factor.net/admin-processeshttp://12factor.net/admin-processes
-
IBM Bluemix Hands On Workshop
Exercise 5a: Creating a new project and code repository
59 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Best tools for the job
Importance of having a good developer setup Lint tooling (static analysis is useful for code quality) Syntax highlighting, autocomplete, etc. Quality Assurance needs to be part of the development process Continuous testing during development
Test tools such as Mocha, Chai, Sinon for JavaScript
60 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 5b: Setting up for static analysis and test-driven development
61 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Test-driven development
No code is written unless it is to pass a test. When one function calls another function, ensure that unit tests are not
duplicating tests done by the tests for the called function. Test frameworks provide spy functionality to verify functions are called
correctly rather than testing what the called function returns.
Wherever possible, ensure tests cover problematic areas of the implementation language. For example, with a JavaScript string vs number comparison,
5 > 11 but 5 < 11 type coercion sometimes delivers the wrong comparison
62 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 5c: Test-driven development
63 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
DevOps pipeline in Bluemix
IBM Bluemix DevOps Services can be configured to automatically run tests and if the tests pass, the code is deployed to Bluemix.
64 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 5d: Adding a REST API, deploying to Bluemix, and setting up the DevOps pipeline
65 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Summary
A modern cloud platform alone does not deliver the agility and speed businesses require today.
A modern approach to application creation is needed, which delivers: Innovation
Agility
Quality
Best user experience
This approach requires an appropriate design, methodology, set of processes, tooling, and architecture to enable developers to deliver.
Many companies are adopting a bimodal approach to manage existing applications and enable innovative new applications to be created.
66 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 6: Services Using and adding services in IBM Bluemix
67 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Using services in Bluemix
Bluemix provides services that can be used by applications without requiring you to manage the setup and operation of those services.
Available services are listed in the catalog in the web UI and can also be obtained by using the command cf marketplace.
To use the service, you must bind the service to your application by using web UI or the command cf bs.
68 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Accessing a service
When you bind a service to your application, Bluemix adds details about the service to an environment variable VCAP_SERVICES.
You can view the VCAP_SERVICES variable in the web UI. Applications should be able to parse the VCAP_SERVICES variable.
69 Copyright IBM Corporation 2015
Click
-
IBM Bluemix Hands On Workshop
Parsing VCAP_SERVICES
Node if (process.env.VCAP_SERVICES) {
var env = JSON.parse(process.env.VCAP_SERVICES);
var credentials = env['mysql-5.5'][0].credentials;
}
Ruby mysql_dbs = JSON.parse(ENV['VCAP_SERVICES'])["mysql-5.5"]
credentials = mysql_dbs.first["credentials"]
Java String vcap_services = System.getenv("VCAP_SERVICES"); if (vcap_services != null && vcap_services.length() > 0) {
JsonRootNode root = new JdomParser().parse(vcap_services);
JsonNode mysqlNode = root.getNode(mysql-5.5");
JsonNode credentials = mysqlNode.getNode(0).getNode("credentials");
}
The Java buildpack parses the VCAP_SERVICES variable and can auto-configure bound services. See the Bluemix Liberty for Java documentation.
70 Copyright IBM Corporation 2015
https://www.ng.bluemix.net/docs/starters/liberty/index.html
-
IBM Bluemix Hands On Workshop
Unit testing when services are used
Do not include calls to remote systems in unit tests. Service APIs provide a contract between the service consumer and
service provider.
Unit tests can ensure the code being tested is using the API correctly according to the contract. We should assume that the service provider has also tested the service
and ensures it implements the contract that is defined by the API.
Test frameworks provide capabilities to stub and mock external calls, but ensure that the API is being called correctly when you run unit tests. These facilities are often called test doubles.
71 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 6a: Adding a service to an application
72 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Become a service provider
In additional to consuming services, you can create new services on Bluemix Private services are available only to your organization
cf cups biTestService -p "host, port, username, password
Specify the properties you want to make available to applications binding to the service
You can update the properties if requires
Public services, that can become an additional revenue stream, can only be added through the IBM Cloud Marketplace
73 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 6b Creating a user-provided service
74 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Summary
The VCAP_SERVICES environment variable allows your application to discover bound services and provides the information required to access the service.
Bluemix allows new services to be added through the IBM Cloud Market Place.
SoftLayer can be used to host services. User-provided services (private to an organization) can be created or
accessed the same way as a Bluemix provided service.
75 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 7: How Cloud Foundry works Cloud Foundry internals
76 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
An open platform as a service (PaaS). The system supports multiple
frameworks, multiple application infrastructure services, and deployment
to multiple clouds.
Cloud Foundry
77 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Lots of languages, frameworks, and services
78 Copyright IBM Corporation 2015
Multiple languages
Ruby, Java, Scala, Node.js, Erlang, Python, PHP, etc.
Multiple frameworks
Rails, Sinatra, Spring, Grails, Express, Lift, etc.
Multiple services
MySQL, Postgres, MongoDB, Redis, RabbitMQ, etc.
Multiple clouds, Multiple IaaS environments
Public cloud, microcloud, private cloud
-
IBM Bluemix Hands On Workshop
Bluemix architecture
79 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Cloud Foundry kernel internals
80 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Design of a virtual machine (VM)
81 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Cloud Foundry: application staging
82 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Choosing the runtime for an application
If you dont specify a runtime when you deploy an application, Bluemix will try to find a suitable runtime as follows: 1. Each predefined runtime has a position set and runtimes are tried in
ascending position order. 2. Bluemix asks each runtime, starting with runtime at position 1, if it can run
the application. 3. The first runtime that responds that it can run the application is used. 4. If no runtime can run the application, an error is returned.
At deploy time, you can also specify the runtime to use.
83 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Buildpacks
Buildpacks provide the framework and runtime support for your application.
The buildpack determines whether they can run your application as part of the auto detect mechanism that Bluemix uses when you push an application.
You can control which platform-provided buildpack your application should use or specify an external buildpack to be used to run your application: Bring your own Buildpack.
84 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Specifying a buildpack
Use the cf CLI to specify which buildpack to use when deploying your application. Use the -b option with the command cf push
You can specify the name of an internal buildpack or provide the URL for an external buildpack.
cf buildpacks shows the installed internal buildpacks that are available:
cf push myApp -b nodejs_buildpack cf push myApp -b https://github.com/dmikusa-pivotal/cf-php-build-pack.git
85 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Exercise 7a: Specifying a buildpack when deploying an application
86 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Cloud Foundry: services
87 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 8: Containers Docker, virtual machines, and Dockerfiles
88 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Docker containers and virtual machines (VMs)
Server Server
Host OS Host OS
Hypervisor Docker Engine
Guest
OS Guest
OS
Guest
OS
Binaries
Libraries
Binaries
Libraries Binaries
Libraries
Binaries
Libraries Binaries Libraries
Appl
A
Appl
A
Appl
B
Appl B
Appl B
Appl B
Appl B
Appl B
Appl B
Ap
pl A
Appl A
VM
Docker = Linux namespaces + cgroups + overlay file system + image format
Docker
Copyright IBM Corporation 2015 89
-
IBM Bluemix Hands On Workshop
Advantages to using containers
High density: Because containers share the same operating system (OS) image and middleware (when applicable), you can run more applications on a server. For example, if the full stack image required to run an application requires 1 GB, if you wanted to use a full VM, youd 1
GB times the number of VMs. With LXC containers and AuFS, you can share the bulk of the 1 GB, and you can have hundreds of containers and still use a little over 1 GB (assuming they are all running the same OS image).
Fast start-up: Because containers might have several layers in common, only the new layers need to be copied, dramatically reducing build/transfer/boot/load times. A full virtualized system usually takes about 10 minutes to start; LXC containers take seconds, and sometimes even less
than a second.
Portability across environments: Deploying a consistent production environment is hard. Even if you use tools like Chef and Puppet, there are always OS and library updates that change between hosts and environments. Docker gives you the ability to snapshot the OS into a common image, and when combined with IBMs patterns
technology, Docker makes it easy to deploy a collection of images comprising a given workload in another collection of Docker hosts.
Copyright IBM Corporation 2015
Cloudy operations with Docker LXC outperform VM 48x server reboot, 1.5x server boot, 1.62x server
snapshot, etc. Docker LXC density potential compared to VMs
3x memory savings 26x CPU savings 3.22x smaller images in this test (note image sizes can
vary based on required packages) Manual VM Docker
Provision Time
Days
Minutes
Seconds / ms
Significant threat to virtualization market
90
-
IBM Bluemix Hands On Workshop
Dockers components and functions
Container Image
Repository
Dockerfile for Container N
Image N
Container Build Engine
Server
Host OS
Linux Container + Docker Engine
Co
ntain
er A
Co
ntain
er B
Co
ntain
er N
Push new Image to
Repository
Describes steps to build the container automatically from source
Get N
Run N
Build N
Source Code Repository
Build Store Run
Copyright IBM Corporation 2015 91
-
IBM Bluemix Hands On Workshop
Sample Dockerfile
Dockerfile for WebSphere Liberty Profile:
FROM ubuntu:12.04
# add the files we require, jar + WLP files
ADD wlp-developers-extended-8.5.5.2.jar /root/
ADD wlp-developers-runtime-8.5.5.2.jar /root/
ADD JAXWSEJBSample.jar /root/
# install WLP
RUN apt-get update
RUN apt-get install -y default-jre
RUN java -jar /root/wlp-developers-runtime-8.5.5.2.jar --acceptLicense /root/
RUN java -jar /root/wlp-developers-extended-8.5.5.2.jar --acceptLicense /root/
RUN cd /root/wlp && java -jar ../JAXWSEJBSample.jar /root/wlp
EXPOSE 9080
CMD /root/wlp/bin/server run JAXWSEJBSample
92 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Summary
The advantages of containers: Containers and VMs allow you to easily bring applications to Bluemix.
They provide a way to virtualize and partition physical infrastructure.
They allow IaaS and PaaS to converge and be co-located.
They support a large scale deployment with low latency.
Containers provide portability across environments.
93 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
Module 9: Beyond the 30-day free trial Freemium level of service
94 Copyright IBM Corporation 2015
-
IBM Bluemix Hands On Workshop
After the 30-day Bluemix trial
After your 30-day trial ends, you will be asked to enter a credit card to continue using Bluemix.
You are still able to use Bluemix for free after you enter your credit card details because there is a freemium level of service available: 375 GB-hours are free every monthwow! Services have a free plan.
Use the Pricing Sheet and price calculator to verify what you can run for free each month.
Use your account summary to check your monthly usage. Set notifications to advise when cost thresholds are being reached.
95 Copyright IBM Corporation 2015
https://console.ng.bluemix.net/?ace_base=true/#/pricinghttps://console.ng.bluemix.net/?ace_base=true/#/pricing/cloudOEPaneId=pricing&paneId=pricingSheet
-
IBM Bluemix Hands On Workshop
Use the Bluemix UI to manage your Freemium usage
Dashboard
Pricing Calculator
Account Summary
and Notifications
Copyright IBM Corporation 2015 96
-
2015 IBM Corporation
IBM Bluemix and Mobile Redefining Mobile Platform for Developers
Nguyn Tai Dng Cloud Solution Architect + Bluemix Evangelist IBM Clouds and Ecosystem Development Email: [email protected]
-
2014 IBM Corporation 98
Building Mobile Apps with Cloud Services
-
99
IBM MobileFirst reduces your mobile
back-end effort so that you can focus on creating value
where it matters most your customers experiences
Today, most organizations have no choice but to focus mobile efforts under the surface
Development
Engagement
Security
Operations
Development
Engagement
Security
Operations
The right mobile technologies enable you to deliver great apps
-
100
IBM MobileFirst Platform Foundation 7.1 Component Overview
-
101
b
The MobileFirst platform provides flexibility for you to consume and compose the capabilities you need on premise or in the cloud
Quality Assurance
Application Scanning
On Premise or Private Cloud Modules Application Scanning Detect code security vulnerabilities at the time of development Quality Assurance Collect beta test feedback, crashes and analyze user sentiment Foundation Development environment, continuous delivery, operations, security and integration As Services in Bluemix Cloud APIs Cloudant NoSQL DB, Workflow, Business Analytics, more
Foundation
Services in IBM Bluemix
-
102
The MobileFirst Platform is integrated into IBM Bluemix Cloud Services
Mobile Application
Security
Mobile Quality Assurance
Embeddable Reporting
Cloudant NoSQL DB
Cloud Integration
Workflow
Business
Rules
Cloud Storage for mobile data
management
Security to prevent
unauthorized access to data
Integration Connect with
APIs & Systems of Record
Workflow to automate next actions
Analytics
for reporting and insight
-
2014 IBM Corporation 103
Mobile Cloud
-
104
Offline Mobile Cloud Application
Fat Clients with presentation and business logic processed locally.
Data downloaded from backend when on WIFI / Occasionally
Advantages: Well Integrated and can be Optimized for Performance
Availability: even without network connectivity.
Disadvantages: No Portability, Complex Code.
-
105
All processing done online presentation layer at the client.
Many times assumes constant connectivity with backend
Advantages: Multiplatform, Direct and Instantaneous Accessibility to better services.
Disadvantages: Excessive latency for real time responsiveness, no access to device features, sometimes difficult to maintain sessions for a long time.
Online Mobile Cloud Application
-
106
WHAT IS MOBILE CLOUD ?
MC refers to an infrastructure where both the data storage and data processing happen outside of the mobile device.
Mobile cloud applications move the computing power and data storage away from the mobile devices and into powerful and centralized computing platforms located in clouds, which are then accessed over the wireless connection based on a thin native client.
MOBILE CLOUD = MOBILE COMPUTING + CLOUD COMPUTING
-
107
WHY DO WE NEED MOBILE CLOUD?
Mobile devices face many resource challenges (battery life, storage, bandwidth etc.)
Cloud computing offers advantages to users by allowing them to use infrastructure, platforms and software by cloud providers at low cost and elastically in an on-demand fashion.
Mobile cloud computing provides mobile users with data storage and processing services in clouds, obviating the need to have a powerful device configuration (e.g. CPU speed, memory capacity etc), as all resource-intensive computing can be performed in the cloud.
-
108
Mobile Cloud: Enabling New Applications
Idea: Offload Computation to Cloud
-
109
IBM Mobile Offerings in Data and Push Services
Persistent cloud with ability to Notify on Events or completion of processing
01010101010101
110101010001
01
01010
000111000101
01
-
2014 IBM Corporation 110
Bluemix Mobile Backend as a Service
-
111
-
2014 IBM Corporation 112
Mobile and Bluemix MBaaS
-
2014 IBM Corporation 113
Mobile and Push Notification
-
2014 IBM Corporation 114
Push Notification
-
2014 IBM Corporation 115
Bluemix Mobile Quality Assurance
-
2014 IBM Corporation 116
Bluemix Mobile Quality Extensions
-
2014 IBM Corporation 117
Deploying the MobileFirst Server
-
2014 IBM Corporation 118
MobileFirst Platform
Server
Bluemix
Softlayer bare metal Linux instance
Bluemix app
Bluemix Services
MobileFirst app
MobileFirst, Softlayer and Bluemix
Shared Identity Token
Adapters
-
2014 IBM Corporation 119
Spectrum of mobile app development approaches
Web-Native Continuum
HTML5, JS, and CSS3 (full site or m.site)
Quicker and cheaper way to mobile
Sub-optimal experience
HTML5, JS, and CSS
Usually leverages Cordova
Downloadable, app store presence, push capabilities
Can use native APIs
As previous + more
responsive, available offline
Web + native code
Optimized user experience with native screens, controls, and navigation
App fully adjusted to OS
Some screens are multi-platform when makes sense
App fully adjusted to OS
Best attainable user experience
Unique development effort per OS, costly to maintain
Hybrid Pure web Pure native
Mobile web site (browser access)
Native shell
enclosing external m.site
Pre-packaged
HTML5 resources
HTML5 + native UI
Mostly native, some
HTML5 screens
Pure native
-
2014 IBM Corporation 120
Studio provides authoring, visual design, simulation, and runtime skins for hybrid apps
-
2015 IBM Corporation
The Path to New Value with IBM Big Data & Analytics
Presenter: Nguyen Tai Dzung Technical Consultant + Solution Architect EcoD Team, IBM Vietnam [email protected]
-
2015 IBM Corporation 122
-
2015 IBM Corporation 123
123
The World of Big Data & Analytics Is Rapidly Expanding
-
2015 IBM Corporation
Mc lng trung bnh mi nm: 116.414 USD (khong 2 t 515 triu ng) Thc t, big data ang l cm t hot nht trong ton b th gii cng ngh hin nay. ngha ca Big Data (D liu Ln) l kh rng: thu thp nhng khi lng d liu khng l (email, vn bn, video, status Facebook), x l cc khi lng d liu ny tm ra cc thng tin c ngha gip cc cng ty, t chc c th a ra cc quyt nh kinh doanh ph hp hn trong tng lai. Vi s vn ln mnh m ca cc mng x hi trong nhng nm qua cng nh ca Internet of Thing trong tng lai gn, Big Data chc chn s cn tip tc hot trong vng nhiu nm na. Cc cng vic lin quan ti Big Data bao gm c cc tc v phn tch, cc loi c s d liu NoSQL (khng i theo m hnh bng quan h nh thng thng do qu nhiu d liu), Hadoop vv Rt nhiu doanh nghip ang chy theo tro lu ny: t cc cng ty khi nghip, cc cng ty dch v phn mm cho n cc cng ty thng thng. Bi vy m Dice hin ang c ti 35.000 u vic cho Big Data, v thu nhp cho cc cng vic lin quan ti cng ngh ny tng ti 9,3% trong nm qua. Ngun bi vit: http://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.html
124
Big Data
http://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.htmlhttp://vieccntt.com/30-cong-nghe-lap-trinh-thu-nhap-25-ty-dong-moi-nam-p1.html
-
2015 IBM Corporation
D liu ln (Big data) l thut ng dng m t cc b d liu c kch thc rt ln, kh nng pht trin nhanh, v rt kh thu thp, lu tr, qun l va phn tch vi cc cng c thng k hay ng dng c s d liu truyn thng. Mt s c trng ca Big Data bao gm: 1. Volume (Dung lng): Dung lng ca Big Data ang tng ln mnh m
tng ngy t cc ngun nh thit b di ng bao gm video, hnh nh, con ngi tng tc trn cc h thng(mng x hi, transaction t bn l )
C mi 11 giy, mt petabyte (~ mt triu GB) d liu c to ra trn ton
th gii, tng ng vi mt on video HD dai 13 nm. Facebook phi x l khong 500 TB d liu mi ngy (forum, chat, hnh nh) Wallmart d liu ca h n t cc transactions
Li ch thu c t vic x l mt khi lng ln d liu chnh l im thu ht ch yu ca Big
Data, tuy nhin cng t ra nhiu kh khn trong vic tm ra nhng phng php, k thut x l khi lng d liu ny.
2. Velocity (Tc ): vi s ra i ca cc k thut, cng c, ng dng lu tr, ngun d liu lin tc c b sung vi tc nhanh chng.
T chc McKinsey Global c tnh lng d liu ang tng trng vi tc 40%/nm, v s tng 44 ln t nm 2009 n 2020.
125
Big Data Is All Data (1/2)
Data at Scale
Volume
Data in Motion
Velocity
-
2015 IBM Corporation 126
Big Data Is All Data (2/2)
Data in Many Forms
Variety
Data Uncertainty
Veracity
3. Tnh a dng (variety): D liu c thu thp t nhiu ngun khc nhau, t cc thit b cm bin, thit b di ng, qua mng x hi .v.v Cc kiu d liu c cu trc, bn cu trc v khng c cu trc tn ti di nhiu hnh thc bao gm hnh nh, m thanh, video, vn bn, v.v
4. Veracity ( chnh xc): mt trong nhng tnh cht phc tp nht ca BigData l chnh xc ca d liu. S gia tng mnh m tnh tng tc v chia s ca ngi dng Mobile lm cho bc tranh xc nh v tin cy v chnh xc ca d liu ngy mt kh khn hn. Bi ton phn tch v loi b d liu thiu chnh xc v nhiu ang l tnh cht quan trng ca BigData. [2]
5. Gi tr (value): y l c trng quan trng nht ca Big Data,
cp n qu trnh trch xut cc gi tr to ln ang tim n trong cc b d liu khng l.
https://www.youtube.com/watch?v=7D1CQ_LOizAVideos/0. Explaining Big Data.mp4
-
2015 IBM Corporation 127
Two types of big data
1. Data in Movement Streams Data following constantly through a network or other data transport mechanism. Data persisted in memory on a temporary basis is also persisted to be in motion. Twitter / Facebook comments
Stock market data
Sensors: Vital signs of a newly-born
2. Data at Rest Oceans Data is persisted in a physical medium and is considered relatively static
Collection of what has streamed
Web logs, emails, social media
Unstructured documents: forms, claims
Structured data from disparate systems
-
2015 IBM Corporation 128
Tools to address practical challenges managing Big Data
InfoSphere BigInsights for Hadoop For data at rest
100% standard Hadoop
IBM Big SQL, BigSheets
Developer tools, Accelerators
Ease of use for all roles
InfoSphere Streams For data in motion
Agile development environment
Sub-millisecond response
Live graph, streams debugger
Packaged adapters and toolkits
Geospatial Toolkit
-
2015 IBM Corporation 129
Big Data & Analytics on Bluemix
https://ace.ng.bluemix.net/#/home
You can launch Big Data services and build applications in minutes on Bluemix. Use only what you need.
https://ace.ng.bluemix.net/https://ace.ng.bluemix.net/
-
2015 IBM Corporation
IBM Cloudant
Innovator of Database as a Service (DBaaS)
JSON document database
For mobile, Web, & IoT apps that need:
Elastic scalability
High availability
Data model flexibility
Data mobility
Available as:
Fully managed DBaaS
On-premises private cloud
Hybrid architecture
Build More. Grow More.
Sleep More.
-
2015 IBM Corporation 131
Hadoop l g?
Tm tt ngn gn v Hadoop: 1. Framework cho php pht trin ng dng phn tn 2. Vit bng Java, nhng h tr c C++, Python, Perl 3. Linux-based 4. Lm vic vi khi lng d liu khng l (tnh bng Petabyte). 5. X l trong mi trng phn tn, d liu lu tr nhiu phn cng khc nhau,
yu cu x l ng b.
Hadoop c 2 thnh phn: 1. Hadoop Distributed File System: lu tr phn tn 2. MapReduce: x l phn tn
Hadoop c th x l cc ng dng c khi lng d liu ln mt cch nhanh chng, chnh xc, hiu qu cao bng cch lu v tnh ton d liu trn nhiu node mt cch c lp. C th: D liu c chia ra thnh blocks lu tr trn rt nhiu DataNode, mi block c nhiu bn sao lu trn nhiu DataNode khc nhau, phng khi mt DataNode no c s c th h thng vn hot ng bnh thng.
https://bienuit.files.wordpress.com/2014/07/hadoop.png
-
2015 IBM Corporation 132
Hng gii quyt ca Hadoop...
Qun l file phn tn: Hadoop Distributed File System (HDFS) s chia nh d liu ra thnh nhiu phn. D liu c qun l mt cch c h thng. tng c s dng y l di chuyn tnh ton vo trong d liu thay v di chuyn d liu tnh ton nh cch thng thng.
Cc tin trnh hot ng c lp: MapReduce l m hnh t chc ca Hadoop, theo cc node hot ng mt cch c lp cao. Mc d gia cc node vn c giao tip nhng b gii hn mt cch ti a, do gim thiu ri ro khi mt node b li.
Kh nng m rng t nhin: nhiu chng trnh c vit trin cc h thng phn tn khc ngoi Hadoop, mi ln m rng h thng t 10 my ln 100 hay 1000 my th i hi phi sa i cu trc chng trnh rt l nhiu. Cch thit k ca Hadoop gip m rng chng trnh mt cch t nhin m khng cn phi thay i nhiu hoc thay i rt t trong mt vi trng hp c bit.
https://bienuit.files.wordpress.com/2014/07/hadoop.png
-
2015 IBM Corporation 133
Hng gii quyt ca Hadoop...
https://bienuit.files.wordpress.com/2014/07/hadoop.png
-
IBM Internet of
Things
-
More and more of the worlds activity is being expressed
digitally by billions of interconnected devices
135
Smarter
cities
Smarter
vehicles Smarter
home
Smarter
health
Smarter
factories
Smarter
transportatio
n
providing businesses with the ability to learn more about their
operating environment, and identify and act with the potential to
create new value.
-
DATA Unlocked from billions of connected devices
CLOUD Standards based connectivity from anywhere
ENGAGEMENT New revenue opportunities created from insights
Today 3 technology forces are converging that are accelerating IoT
-
SilverHook Powerboats develops app 40%
faster, enhancing racer and fan experience
It changes the paradigm in a lot of different areas if we can develop this type
of technology at this speed. It gives other projects a benchmark to live up to.
Nigel Hook, president of SilverHook Powerboats
Solution components Software
IBM Bluemix
IBM Internet of Things Foundation
The transformation: Powerboat racers and fans both needed real-
time insight into what was happening during races. With IBM
Bluemix and IBM Internet of Things Foundation, the SilverHook
Powerboat team developed an application 40% faster, streaming
sensor data to the cloud and using analytics to deliver information
and alerts to racers. Partner company Virtual Eye also used the
data to create a rich 3-D visualization for fans.
Improves decision-making and safety during the
race by providing critical data to
drivers
Enhances fan experience of races with real-
time 3D data visualization
40% faster application development process
MSP03109-USEN-00
Video:- https://www.youtube.com/watch?v=rpsjxnoNc-U
https://www.youtube.com/watch?v=rpsjxnoNc-Uhttps://www.youtube.com/watch?v=rpsjxnoNc-Uhttps://www.youtube.com/watch?v=rpsjxnoNc-Uhttps://www.youtube.com/watch?v=rpsjxnoNc-Uhttps://www.youtube.com/watch?v=rpsjxnoNc-Uhttps://www.youtube.com/watch?v=rpsjxnoNc-U
-
Module 2
Intel Edison
138
-
Intel Edison Board
Small, Powerful & Adaptable Hardware
Dual-core Intel Atom processor 500MHz
Integrated Wi-Fi*, Bluetooth Low-Energy (LE)
32-bit Intel Quark microcontroller at 100 MHz
1 GB of RAM, 4 GB of Storage
40 multiplexed GPIO interfaces with expansion board options for total
project design and flexibility
Yocto Project* Linux*
Module 2 The Intel Edison board
-
Expansion options
Module 2 The Intel Edison board
Partner
Expansion
Boards
Intel
Expansion Boards
Built to Order
Expansion
Boards
-
Intel Edison
70 pin connector
Hirose DF40 Series
Easy to build your own board
Intel currently offers 2 boards
Breakout Board
Arduino* expansion board
Module 2 The Intel Edison board
Intel extension Boards
-
Intel Edison Development Board with Arduino* 20 digital input/output pins including
4 pins as PWM outputs
6 analog inputs
1 UART (RX/TX)
1 I2C input connector
1 ICSP 6-pin header (SPI)
Module 2 The Intel Edison board
-
Connect to your Edison board what are connectors/cables for ?
Module 2 The Intel Edison board
Device mode micro USB for :
5V power
Arduino IDE
Ethernet over USB
Flash memory
Host / device mode switch
Micro USB for Serial
commands
to Edison via terminal/putty to :
Flash firmware
Configure Edison
IP address
Standard size USB Host mode for
Mouse
Keyboard
webcam
Barrel (7V-15V) DC power
connector
-
Intel Edison Breakout Board
I/O: array of through-hole solder points
USB OTG with USB Micro (AB)
Battery charger
USB micro (B) [UART]
DC power supply jack (7 to 15 VDC)
Module 2 The Intel Edison board
-
Partner Expansion Boards
Module 2 The Intel Edison board
-
Collaborate. Learn. Share. Succeed. Intel Developer Zone is where developers are tapping
into everything they need to successfully bring their
connected ideas to life.
Software tools and testing equipment
Code samples and how to guides
Dev Kits, hardware, sensors and more
Forums, online events and meet-ups
Peer review and expert insights
A global community
Module 2 The Intel Edison board
software.intel.com/
iot
-
Module 3
Internet of Things
Foundation
147
-
IBM Internet of Things Foundation Service
Connect
Collect
Manage
Assemble
Secure Device Registration
Scalable Device Connectivity
Device Management new!
PAYG SaaS pricing
Sandbox QuickStart service
Powered by IBM MessageSight technology
Platform
-
IoT Zone on Bluemix an intro to IoTF
IoT Zone in Bluemix https://bluemix.net/solutions/iot
-
IoT Foundation model
IBM IoT Foundation Connectivity Summary
IBM Internet of
Things
Foundation
-
10.1
Thank you!
-
Getting Started with IBM Bluemix
Hands-On Workshop
Module 3: First Deploy Exercises
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 2
Table of Contents
Workshop overview ..................................................................................................................................... 3 Exercise 3a: Deploy your first application ................................................................................................... 3 Exercise 3b: Deploy and then update the application by using the CLI ...................................................... 5 Exercise 3c: Working with Eclipse and Bluemix ....................................................................................... 13
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 3
Workshop overview In this workshop, you will:
Deploy a simple application from the Bluemix web interface. Use the cf command line to modify and deploy the application. Configure Eclipse so that you can create IBM Bluemix as a runtime in Eclipse
Exercise 3a: Deploy your first application This exercise will show you how to deploy a simple application from the IBM Bluemix web interface.
1. In a browser, navigate to one of the following regions: https://bluemix.net: This link should take you to your default location.
o https://console.ng.bluemix.net (Region: US South) o https://console.eu-gb.bluemix.net (Region: United Kingdom) o https://console.au-syd.bluemix.net (Region: Sydney)
2. Click LOG IN and then enter your login information on the IBM id page and click Sign in. You should see your dashboard view:
3. Click CATALOG.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 4
4. Select the Node.js Cloudant DB Web Starter from the Boilerplates section.
5. Enter a name for your application as shown above. The host name information is automatically entered. The host name must be unique on Bluemix, so enter a name with your company name or initials to make the name unique.
6. Click CREATE.
After a short while your application should be running. You can launch the application by clicking on the route.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 5
Exercise 3b: Deploy and then update the application by using the CLI In this exercise, you use the cf command-line interface (CLI) to work with Bluemix. You use this tool in a terminal or command window on your workstation. Use the same sample application that was used in exercise 3a.
1. Click Start Coding and then click Download Starter Code.
2. After the starter package is downloaded, move it to a directory on your workstation where you want to work, such as the Bluemix directory in your Documents folder.
3. Extract the package by double-clicking or right-clicking and click Extract or Unarchive. Do not delete the .zip file: you will need it in Exercise 3c.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 6
4. Delete the deployed application so that you can deploy it from the command line. Click the Overview page for the application, click the gear wheel in the application, and then click Delete App.
5. Delete the service and the route with the application by selecting the checkbox in the Services tab and the Routes tab:
6. Click OK to delete the application.
7. Open a command or terminal window and change the directory to the location where you extracted the downloaded sample application. (The file package.json should be in your current directory.)
8. Log in to Bluemix by issuing one of the following commands. Use the same region that
you used in the Bluemix web UI:
cf l -a https://api.ng.bluemix.net (Region: US South) cf l -a https://api.eu-gb.bluemix.net (Region: United Kingdom) cf l -a https://api.au-syd.bluemix.net (Region: Sydney)
9. Enter the email and password that you used to log in to the Bluemix web UI. If prompted,
select the organization and space that you want to work in.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 7
10. Before you deploy the application, deploy a Cloudant database. View the available services by running this command:
cf marketplace
11. In the list of services, find the cloudantNoSQLDB service.
12. Create the service by running this command:
cf cs cloudantNoSQLDB Shared BICloudant
CloudantNoSQLDB is the name of the service from the cf marketplace command. Shared is the name of the service plan that you want to use from the cf
marketplace command. BICloudant is the name of the service instance that you want to use. Enter your
own name rather than BICloudant. You will use this new name when connecting (binding) the service to the application.
13. Refresh your web UI to you see the deployed service.
14. Deploy the application.
Push the application to Bluemix by entering the following command. Change the application name to your unique name:
cf push BI-MyFirstDeploy-3 -c "node app.js" -m 128M --no-manifest --no-start
BI-myFirstDeploy-3 is the application name and host name. -c specifies the command to start the application. -m specifies the amount of memory to allocate to each application instance. The
default is 1 GB.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 8
--no-manifest instructs to CLI tool to ignore the supplied manifest, which will be explained later.
--no-start instructs to CLI tool not to automatically start the application.
Dont want to allow the application to automatically start because it needs a database to run. You must link the Cloudant database instance to the application before you start the application.
15. Link the database and application by using the following command. Substitute the
application name and service instance names that you used previously:
cf bs BI-MyFirstDeploy-3 BICloudant
BI-myFirstDeploy-3 is the application name used when the application is deployed.
BICloudant is the service instance name used when the service is deployed.
If you refresh the web UI, you see that the application and service are linked, but the application is still stopped.
16. Start an application by running the following command. Substitute the name of your application:
cf start BI-MyFirstDeploy-3
BI-myFirstDeploy-3 is the application that you want to start.
If you refresh the web UI, you should see the application running. If not, you can start the application from the Dashboard.
17. Launch the application by clicking on the route in the web UI
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 9
18. In a text editor, open the file app.js and modify the name of the file, the file description, and the value (lines 306, 307 and 310):
Line 306: Change the docName from 'sample_doc' to 'test_doc' Line 307: Change the docDesc from 'A sample Document' to 'A test Document' Line 310: Change the value from 'A sample Document' to 'A test Document'
Save the file when youre finished editing.
When the application starts for the first time, it creates the sample document in the database. We have just modified the code that creates the sample document in the database. The document must be deleted from the database before you restart the application to allow the database to be populated again.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 10
19. In the Bluemix web UI, select the Cloudant Service instance and then start the Cloudant Dashboard.
20. Launch the Cloudant console.
You should see a single database. Select the database:
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 11
21. Edit the database document.
22. Delete the document.
23. Confirm the deletion when prompted.
24. Redeploy the updated application with the push command. This time, you dont need to include the --no-start or memory parameter.
cf push BI-MyFirstDeploy-3 -c "node app.js" --no-manifest
25. After the application has restarted, test it to ensure that your changes are now running.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 12
After the application is tested to confirm that the modified code is running, the application can be deleted to release resources for the next exercise.
26. Delete the application and service and confirm the deletion when prompted by running the following two commands:
Delete the application:
cf d BI-MyFirstDeploy-3 r
BI-myFirstDeploy-3 is the application name to be deleted. -r instructs Bluemix to also delete the routes attached to the application.
Delete the service:
cf ds BICloudant
BICloudant is the name of the service instance to be deleted.
Confirm the deletion of the application and service.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 13
Exercise 3c: Working with Eclipse and Bluemix This exercise shows you how to work with Eclipse and Bluemix.
1. Launch Eclipse and switch to the JavaScript perspective. You should use a new workspace, but this is not essential.
2. Configure Eclipse to use Bluemix as a server by opening Eclipse Preferences and clicking Server > Runtime Environments.
3. Click Add. Then, select IBM Bluemix Runtime and select the Create a new local server checkbox.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 14
4. Click Next.
5. Select the appropriate URL to match the region that you have been using.
6. Enter your email and password, which are the credentials that you used to log into Bluemix. Click Validate Account to ensure that all details are valid and then click Next.
7. Select the organization and space that you want to use and then click Finish. Click OK to
close the Preferences page.
If you want to work with multiple spaces in Eclipse, you must create multiple server configurations.
8. Open the Servers view in Eclipse. If its not showing, click Window > Show View >
Servers.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 15
Use the same application that you used in the last session. You should have the archive file that you downloaded in the last exercise on your workstation. If not, deploy the Node.js Cloudant Web Starter application from the Bluemix web UI, click View Guide, and then download the starter application.
9. Import the starter application package to Eclipse by clicking File > Import.
10. In the Import dialog, click General > Existing Projects into Workspace.
11. Click Next. Then, select the downloaded Zip file and click Finish.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 16
The project will be created. Before JavaScript applications can be deployed to Bluemix by the plug-in, those applications must be identified as a project suitable for Bluemix deployment by assigning a facet to the project.
12. Right-click the project in the Project Explorer view and click Properties.
13. Click Project Facets > Convert to faceted form.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 17
14. When you see the facets, select the Node.js Application facet. Click OK to close the dialog.
15. Delete the manifest.yml file by right-clicking it and clicking Delete.
16. Deploy the application. Right-click IBM Bluemix. If you have multiple definitions in the
Servers view, select the server definition for the space that you want to deploy the application to.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 18
17. Click Add and Remove.
18. Select the cloudant_boilerplate_nodejs in the Available column and click Add to move it to the Configured column.
19. Click Finish.
20. In the Deploy dialog, change the application name to something unique. Click Next. Ensure that the URL contains a string that will be unique and then click Next.
21. On the Services selection window, click the Add a Service ( ) icon to add a service.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 19
22. When the list of available services is shown, select the CloudantNoSQLDB service.
23. Click Finish and Finish again to close the application Deploy dialog.
The application is now being deployed to Bluemix. Eclipse should automatically switch to the Console view where you see details of the deployment.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 20
24. After the application is running, switch to the Server view and expand the Bluemix server. You should see the application in the list. Start the application from Eclipse by right-clicking the application in the Servers view and clicking Open Home Page.
Tip: In Eclipse, you can change the browser thats used to start applications by clicking Window > Web Browser and selecting your preferred browser.
25. Remove the sample document from the database to allow the application to create it
when the database launches. In the Bluemix web UI, select the Cloudant Service instance and then launch the Cloudant Dashboard.
You should see a single database:
26. Select the database and then delete the document. Confirm the deletion.
27. In a text editor, open the file app.js:
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 21
28. Modify the name of the file, the file description and value (lines 306, 307, and 310) to replace sample with test:
29. Save the changes by clicking File > Save.
Notice in the Server view that the state of the Bluemix server has changed to republish, which means that an application has changed. However, the application has not yet been published to Bluemix.
30. Select the cloudant_boilerplate_nodejs application in the Server view and right-click
and click Update and Restart.
31. After the application is restarted, test the application to ensure that the change is now live.
After the project has been tested, the application can be deleted to release resources for future exercises.
-
Exercise 3: First Deploy Getting Started with IBM Bluemix
Copyright IBM Corporation 2013-2015. All rights reserved. 22
32. Right-click the project in the Explorer view and click Delete to delete the project. Delete project contents on disk and then click OK.
You are asked whether you want to delete the cloudantNoSQLDB service. Select the checkbox to delete the service. In the Bluemix web UI, confirm that the application and server have been deleted. Important: Deleting a project that is deployed through Eclipse also deletes it from Bluemix.
-
Getting Started with IBM Bluemix
Hands-On Workshop
Module 4: Bluemix DevOps Services
-
Exercise 4: DevOps Services Getting Started with IBM Bluemix
Copyright IBM Corporation 2015. All rights reserved. 2
Table of Contents
Bluemix Hands-On Workshop ..................................................... Error! Bookmark not def ined.
Section 4- DevOps Services ....................................... Error! Bookmark not defined. Exercise 4.a - Bluemix integration with DevOps Services ............................................................... 3 Exercise 4.b working in DevOps Services .................................................................................... 5
-
Exercise 4: DevOps Services Getting Started with IBM Bluemix
Copyright IBM Corporation 2015. All rights reserved. 3
Exercise 4.a - Bluemix integration with DevOps Services This exercise looks at how Bluemix and DevOps Services work together Log into Bluemix http://bluemix.net, https://console.eu-gb.bluemix.net or https://console/au-syd.bluemix.net and deploy the Node.js Cloudant DB Web Starter boilerplate from the Catalog. Once the application is running, select the Overview page then select ADD GIT on the Application Overview page
if prompted, add your DevOps Service details and select Sign In. Ensure you leave the option to populate the repository selected then select CONTINUE
In the overview page you will now see the option to EDIT CODE
select EDIT CODE you should be taken into DevOps Services with the sample application code imported and ready to work with. Select BUILD & DEPLOY. The project has automatically been set up to deploy code changes to Bluemix when they are pushed to the Git repository. You can now modify the code and deploy to Bluemix from DevOps Services. To test this,
select the 'run stage'icon in the Build S