SlideShare une entreprise Scribd logo
1  sur  35
Mobile, open source, and the drive to the cloud
Karl Weinmeister
Senior Manager, Swift@IBM
Engineering
Agenda
• Why:
• Enabling Modern App Design Patterns
• What:
• Logic, Data, Events & Integration powered by Open Source
• How:
• Developer Experience & Tools
• Get Involved:
• Sample End-to-end Applications
• Resources & Links
2
Modern Application Design: Tiers
3
Application-specific
Backend
Other Cloud Services
On-prem Services
Experiences being built by this
community are dramatically changing
the way we live and work
New Experiences
User-facing Client Apps
Things / Sensors
End Users
Modern Application Design: Tier Attributes
4
Application-specific
Backend
Other Cloud Services
On-prem Services
End Users
User-facing Client Apps
Role: User Interactions &
Remote Sensing
Application State: User
& View Specific State,
Caching of eventually
consistent state
Usage: Sometimes on,
Driven by Users and
Events
Resources: Constrained
CPU, Mem, Network BW
Role: Integration
Service Composition,
Background Monitoring/Activity,
Event/Traffic Routing,
State synchronization across
clients and things
Application State: Global
Application State
Usage: Always-on, Always
Connected
Resources: Unlimited CPU,
Mem, Network BW
Modern Application Design: Tier Attributes
5
Application-specific
Backend
Other Cloud Services
On-prem Services
End Users
User-facing Client Apps
Developer Experience
• Tight Coupling/Dependency between Client Apps
and Application Backend
• Need ability to deploy the right functionality to the
proper tier to deliver world class experience
• Successful experience reached through fast
iterations
Modern Application Design: Application Constructs
6
Application-specific
Backend
Other Cloud Services
On-prem Services
Logic: Client and Server-side Swift
Data: Cloudant, MongoDB, Redis,
ElasticSearch, PostgresQL, etc
Events: OpenWhisk
Integration: Open Github Packages
User-facing Client Apps
Developer Experience
End Users
Swift.org: What is included?
• Open Sourced Dec 3, 2015
• Swift Language
• Core libraries:
• XCTest
• Libdispatch (GCD)
• Foundation for non-Apple hosts (New)
• LLVM Compiler & Debugger (swift-lldb, swift-llvm, swift-clang)
• Swift Package Manager (New)
IBM Swift Sandbox
The IBM Swift Sandbox
Experiment with Swift on the server,
share your code and collaborate with
your peers
http://swiftlang.ng.bluemix.net 8
Features
• One click access to Swift on
Linux (multiple versions)
• Mobile UI & Auto Saving
Draft
• Code Snapshots & Sharing,
UI Themes, Social
• Social Sharing
Growth in Swift Popularity
9
2014 2015
Surging Popularity
within 6 months compared to other popular languages
10
New Client-side Development Community
11
Hybrid / Web App Development
NodeJS Attracted Web-based
Developers to the Cloud
Swift App Development
Swift on the Server can attract
Swift-based Developers
>11 Million Apple
Developers
~100 Apple/IBM Enterprise
Solutions and Assets
Lessons to be learned from NodeJS Timeline
V8 Release
(2008)
+ libuv (concurency)
+ foundation
= NodeJS
(2009)
+ npm
(2009-2011)
Initial Popularity
(2012-2013)
Mainstream
Usage
(2014-2015)
Swift Release
(Late 2015)
+ libdispatch (concurrency)
+ Foundation
+ Web Foundation (Kitura)
= ??
(2016)
+ swift pkg mgr
+ catalog
(? 2016)
Package Growth
(2012)
Package Growth
(2016-2017)
Mainstream
Usage
(??)
+ Express: beta1.0
(Web Framework)
(2009-2010)
+ Kitura: alpha1.0
(Web Framework)
(2016-?)
Initial Popularity
(??)
Swift.org Contributions
Sandbox Package Catalog
Swift.org Contributions
Mailing lists (https://swift.org/community/#mailing-lists)
Very active community
IBM’s involvement in bringing Swift to the Cloud
• Core Libraries
• Foundation
• Libdispatch
• Motivating Server Projects
• Kitura Web Framework
• Web Foundation Libraries
• OpenWhisk support of Swift
Status Quo
Still early days
• Language evolution (1.0  2.0  3.0  4.0) currently at 2.2  3.0
New (Very early):
• Swift Package Manager:
• One of the key developers is Max Howell (creator of Homebrew on Mac)
New on Linux (Still in progress)
• Libdispatch (Concurrency)
• Foundation (New for non-Apple platforms)
14
Apple Client Deployment Server/Cloud Deployment
Application-Specific Cloud ServicesClient Facing App
Beyond Swift.org: Bringing Swift to the Server
• Drive towards consistent Swift developer experience across Client & Server
• Building / Investing in Core Swift Libraries (Foundation & Libdispatch)
• Motivated/Prioritized through open source projects (Kitura & OpenWhisk)
• Deployment options across open source technology (Docker, Cloud Foundry, Vagrant)
Foundation
Swift
Swift Standard Library
Core Foundation
DispatchPWQ
Clibs
GLibc
Foundation
Swift
Swift Standard Library
Core Foundation
Dispatch
Darwin
Clibs
Client-specific Libraries App Libraries Server-specific LibrariesApp Libraries
Driving
Towards
Consistent
Runtime
across
Clients/Servers
OpenWhisk &
Kitura-based
Server-side
Environments
(Built with
Foundation &
Libdispatch)
Kitura Web Framework
What is it?
New, modular, package-based web framework written in
Swift
Why is this cool?
Empower a new generation of native mobile developers to
write and deploy code into the Cloud.
Developer Benefits ?
Delivers core technologies needed to stand up enterprise
apps on the server
Enables developers to create a web application in Swift and
deploy these servers on Linux and the Cloud.
http://github.com/ibm-swift/kitura 16
myFirstProject
├── Package.swift
├── Sources
│ └── main.swift
└── Tests
└── empty
mkdir myFirstProject
2. Next initialize this project as a new Swift package project
Develop a Kitura Web Application in Swift
1. First we create a new project directory
cd myFirstProject
swift build --init
Now your directory structure under myFirstProject should look like this:
import Kitura
import SwiftyJSON
import PackageDescription
let package = Package(
name: "myFirstProject",
dependencies: [
.Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 13) ]
)
4. Import the modules in your code (Sources/main.swift):
Develop a Kitura Web Application in Swift
3. Now we add Kitura as a dependency for your project (Package.swift):
Kitura.addHTTPServer(port: 8090, with: router)
Kitura.run()
let router = Router()
router.get("/hello") { request, response, next in
response.status(.OK).send("<h1>Hello, World!</h1>")
next()
}
7. Create and start a HTTPServer:
Develop a Kitura Web Application in Swift
5. Add a router and a path:
router.get("/hello.json") { request, response, next in
response.status(.OK).send(json: JSON(["Hello": "World!"]))
next()
}
6. Add a JSON data route
import Kitura
import SwiftyJSON
let router = Router()
router.get("/hello") { request, response, next in
response.status(.OK).send("<h1>Hello, World!</h1>")
next()
}
router.get("/hello.json") { request, response, next in
response.status(.OK).send(json: JSON(["Hello": "World!"]))
next()
}
Kitura.addHTTPServer(port: 8090, with: router)
Kitura.run()
Develop a Kitura Web Application in Swift
8. Sources/main.swift file should now look like this:
Mac OS X: swift build
Linux: swift build -Xcc –fblocks
Develop a Kitura Web Application in Swift
9. Compile your application:
.build/debug/myFirstProject
10. Run your web application:
11. Open your browser:
http://localhost:8090/hellohttp://localhost:8090/ http://localhost:8090/hello.json
Application Data: Open Technology
Today, developers chose their cloud data technology based on the
demands of their application. IBM is happy to offer a wide range of open
technologies in managed offerings: Cloudant, Redis, MongoDB, Postgres,
ElasticSearch, RethinkDB, and more
23
Package (P)
Action f(x)
Trigger (T)
Rule (R)
R = T  f(x)
Namespace
f(x)
Application Events: OpenWhisk Overview
High-level
Architecture
Triggers: A class of events emitted by
event sources.
Actions: Encapsulate the actual code
to be executed which support multiple
language bindings. Actions invoke any
part of an open ecosystem.
Rules: An association between a
trigger and an action.
Packages: Describe external services
in a uniform manner.
Combined these allow developers to
compose solutions using modern
abstraction and chaining which can be
created, accessed, updated and
deleted via the CLI
OpenWhisk: How does it work?
OpenWhisk
Swift Docker …
Incoming HTTP request
Browser
Mobile App
Web App
Variety of
languages
Event Providers
Cloudant
Git
Weather
…
…
Trigger execution of
associated OpenWhisk
action
JS
Application Events: OpenWhisk Resources
https://new-console.ng.bluemix.net/openwhisk
https://github.com/openwhisk
Application Integration: Swift Packages
• Swift.org introduced the Swift Package Manager
• Lack of standardization on packages creates a bit of package hell
• Welcome addition but still early days
• Growing content seen in Github
• Catalog to help with sharing and discovery
• Client and Server side packages
• Building upon lessons learned in other package managers
Application Integration: Swift Package Catalog
https://swiftpkgs.ng.bluemix.net/
Xcode Developer
Experience
Swift on the client
Build and
Debug
Applications
IBM Swift Sandbox
Collaborative
Code as
Questions/An
swers
Provision 3rd Party Client-
side Registered Swift
Packages
IBM Cloud Services
Provision IBM Cloud
Service Packages and
Credentials
Swift
Packages
Swift on the server
Docker
Whisk
CloudFoundry
Sandbox
Developer Experience
28
Sample Applications: BluePic
BluePic is a photo sharing app that allows you to take photos, upload
them and share them with a community. The BluePic community will be
made up of all the users that run an instance of your created app.
https://github.com/IBM-Swift/Kitura-BluePic
Sample Applications: TodoList
A shared example to showcase backend tech stacks
http://todobackend.com/
An example using Kitura to develop a Todo-Backend
https://github.com/IBM-Swift/Kitura-TodoList
Swift on the IBM Cloud
31
Swift@IBM - Developer Resources
https://developer.ibm.com/swift/
The Swift@IBM devCenter
Join IBM Swift Engineering and
leverage the latest resources
32
Technical Blog Threads on Swift@IBM
Swift (General)
• Why I’m Excited about Swift (12/3)
• Running Swift within Docker (12/15)
• Introducing the (beta) IBM Watson iOS SDK! (12/18)
Swift Sandbox
• Introducing Swift Sandbox (12/3)
• Hello Swift! IBM Swift Sandbox Day 1 Wrapup (12/5)
• #HourofCode: Learn Swift in three easy steps today! (12/8)
• Introduction to Swift Tutorial using the IBM Swift Sandbox (12/8)
• What’s new in the IBM Swift Sandbox v0.3 (12/21)
• Exploring Swift on Linux (12/28)
• What’s new in the IBM Swift Sandbox v0.4 (1/20)
https://developer.ibm.com/swift/blogs
Swift (General)
• Swift on POWER Linux (2/1)
• Seven Swift Snares & How to Avoid Them (1/27)
Interconnect 2016
• Build End-to-End Cloud Apps using Swift with Kitura (2/21)
• Introducing the Swift Package Catalog (2/21)
• Talking about Swift Concurrency on Linux (2/21)
• Explore the IBM Swift Sandbox 1-2-3 (2/21)
• Using the Cloud Foundry Buildpack for Swift on Bluemix (2/21)
• 10 Steps To Running a Swift App in an IBM Container (2/21)
• Build End-to-End Cloud Apps using Swift with Kitura (2/21)
Drumbeat of Blogs/Announcements from IBM Swift Engineering Community
33
Summary
Deployment Options
Swift.org Projects Community Packages
Server Projects
Foundation, libdispatch, clang,
llvm, swift-package-manager
MongoDB, Redis, CouchDB,
Postgresql, Elasticsearch, MQ
Open Source OverviewDeveloper Resources
Swift Sandbox
Package Catalog
And many more…
35
Thank you, @kweinmeister

Contenu connexe

Tendances

Multicloud - Understanding Benefits. Obstacles, and Best Approaches
Multicloud - Understanding Benefits. Obstacles, and Best ApproachesMulticloud - Understanding Benefits. Obstacles, and Best Approaches
Multicloud - Understanding Benefits. Obstacles, and Best ApproachesKenneth Hui
 
Accelerating Innovation with Hybrid Cloud
Accelerating Innovation with Hybrid CloudAccelerating Innovation with Hybrid Cloud
Accelerating Innovation with Hybrid CloudJeff Jakubiak
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Michael Elder
 
Pathways to Multicloud Transformation
Pathways to Multicloud TransformationPathways to Multicloud Transformation
Pathways to Multicloud TransformationIBM
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
 
IBM Connect August 2016 - Innovate with the cloud built for cognitive business
IBM Connect August 2016 - Innovate with the cloud built for cognitive businessIBM Connect August 2016 - Innovate with the cloud built for cognitive business
IBM Connect August 2016 - Innovate with the cloud built for cognitive businessDenny Muktar
 
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)Denny Muktar
 
IBM Cloud: Architecture for Disruption
IBM Cloud: Architecture for DisruptionIBM Cloud: Architecture for Disruption
IBM Cloud: Architecture for DisruptionJürgen Ambrosi
 
The IBM Cloud Point of View
The IBM Cloud Point of ViewThe IBM Cloud Point of View
The IBM Cloud Point of ViewMaria Nolet
 
Build & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeBuild & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeRightScale
 
Democratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentDemocratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentIntel Corporation
 
Building a hybrid, dynamic cloud on an open architecture
Building a hybrid, dynamic cloud on an open architectureBuilding a hybrid, dynamic cloud on an open architecture
Building a hybrid, dynamic cloud on an open architectureDaniel Krook
 
IBM Bluemix Dedicated – GitHub Enterprise
IBM Bluemix Dedicated – GitHub EnterpriseIBM Bluemix Dedicated – GitHub Enterprise
IBM Bluemix Dedicated – GitHub EnterpriseIBM DevOps
 
Accelerate your digital transformation September 2018
Accelerate your digital transformation September 2018Accelerate your digital transformation September 2018
Accelerate your digital transformation September 2018Aleksandar Francuz
 
Azure App Modernization
Azure App ModernizationAzure App Modernization
Azure App ModernizationPhi Huynh
 

Tendances (19)

Multicloud - Understanding Benefits. Obstacles, and Best Approaches
Multicloud - Understanding Benefits. Obstacles, and Best ApproachesMulticloud - Understanding Benefits. Obstacles, and Best Approaches
Multicloud - Understanding Benefits. Obstacles, and Best Approaches
 
Accelerating Innovation with Hybrid Cloud
Accelerating Innovation with Hybrid CloudAccelerating Innovation with Hybrid Cloud
Accelerating Innovation with Hybrid Cloud
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
 
Pathways to Multicloud Transformation
Pathways to Multicloud TransformationPathways to Multicloud Transformation
Pathways to Multicloud Transformation
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
 
IBM Cloud Paks - IBM Cloud
IBM Cloud Paks - IBM CloudIBM Cloud Paks - IBM Cloud
IBM Cloud Paks - IBM Cloud
 
IBM Connect August 2016 - Innovate with the cloud built for cognitive business
IBM Connect August 2016 - Innovate with the cloud built for cognitive businessIBM Connect August 2016 - Innovate with the cloud built for cognitive business
IBM Connect August 2016 - Innovate with the cloud built for cognitive business
 
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
 
IBM Cloud: Architecture for Disruption
IBM Cloud: Architecture for DisruptionIBM Cloud: Architecture for Disruption
IBM Cloud: Architecture for Disruption
 
The IBM Cloud Point of View
The IBM Cloud Point of ViewThe IBM Cloud Point of View
The IBM Cloud Point of View
 
IBM Cloud
IBM Cloud IBM Cloud
IBM Cloud
 
Build & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeBuild & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record Time
 
Democratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud DevelopmentDemocratizing the Cloud with Open Source Cloud Development
Democratizing the Cloud with Open Source Cloud Development
 
Building a hybrid, dynamic cloud on an open architecture
Building a hybrid, dynamic cloud on an open architectureBuilding a hybrid, dynamic cloud on an open architecture
Building a hybrid, dynamic cloud on an open architecture
 
IBM Bluemix Dedicated – GitHub Enterprise
IBM Bluemix Dedicated – GitHub EnterpriseIBM Bluemix Dedicated – GitHub Enterprise
IBM Bluemix Dedicated – GitHub Enterprise
 
IBM Bluemix Overview
IBM Bluemix OverviewIBM Bluemix Overview
IBM Bluemix Overview
 
Accelerate your digital transformation September 2018
Accelerate your digital transformation September 2018Accelerate your digital transformation September 2018
Accelerate your digital transformation September 2018
 
Azure App Modernization
Azure App ModernizationAzure App Modernization
Azure App Modernization
 
Bluemix summary
Bluemix summaryBluemix summary
Bluemix summary
 

Similaire à Mobile, open source, and the drive to the cloud

Mobile, Open Source, and the Drive to the Cloud
Mobile, Open Source, and the Drive to the CloudMobile, Open Source, and the Drive to the Cloud
Mobile, Open Source, and the Drive to the CloudDev_Events
 
Mobile, Open Source, & the Drive to the Cloud
Mobile, Open Source, & the Drive to the CloudMobile, Open Source, & the Drive to the Cloud
Mobile, Open Source, & the Drive to the CloudDev_Events
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016Tom Boucher
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018Krishna-Kumar
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopJonas Rosland
 
Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015{code}
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture Dev_Events
 
Serverless Apps with Open Whisk
Serverless Apps with Open Whisk Serverless Apps with Open Whisk
Serverless Apps with Open Whisk Dev_Events
 
Intro Docker to Loire Atlantique
Intro Docker to Loire AtlantiqueIntro Docker to Loire Atlantique
Intro Docker to Loire AtlantiqueJulien Barbier
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
Serverless apps with OpenWhisk
Serverless apps with OpenWhiskServerless apps with OpenWhisk
Serverless apps with OpenWhiskDaniel Krook
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfKatamaRajuBandigari1
 
Mastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder Singh
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Trackvijayrvr
 
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...Ashnikbiz
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...Srijan Technologies
 
Vijay Mix Presentation
Vijay Mix PresentationVijay Mix Presentation
Vijay Mix Presentationvijayrvr
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps ZNetLive
 

Similaire à Mobile, open source, and the drive to the cloud (20)

Mobile, Open Source, and the Drive to the Cloud
Mobile, Open Source, and the Drive to the CloudMobile, Open Source, and the Drive to the Cloud
Mobile, Open Source, and the Drive to the Cloud
 
Mobile, Open Source, & the Drive to the Cloud
Mobile, Open Source, & the Drive to the CloudMobile, Open Source, & the Drive to the Cloud
Mobile, Open Source, & the Drive to the Cloud
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
 
Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture
 
Serverless Apps with Open Whisk
Serverless Apps with Open Whisk Serverless Apps with Open Whisk
Serverless Apps with Open Whisk
 
Intro Docker to Loire Atlantique
Intro Docker to Loire AtlantiqueIntro Docker to Loire Atlantique
Intro Docker to Loire Atlantique
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
Serverless apps with OpenWhisk
Serverless apps with OpenWhiskServerless apps with OpenWhisk
Serverless apps with OpenWhisk
 
Scaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdfScaling frontend applications with micro-frontends Presentation.pdf
Scaling frontend applications with micro-frontends Presentation.pdf
 
Mastinder singh visualcv_resume
Mastinder singh visualcv_resumeMastinder singh visualcv_resume
Mastinder singh visualcv_resume
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Track
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
Docker Enterprise Edition Overview by Steven Thwaites, Technical Solutions En...
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Vijay Mix Presentation
Vijay Mix PresentationVijay Mix Presentation
Vijay Mix Presentation
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
 

Plus de Dev_Events

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesDev_Events
 
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesDev_Events
 
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...Dev_Events
 
Blockchain Hyperledger Lab
Blockchain Hyperledger LabBlockchain Hyperledger Lab
Blockchain Hyperledger LabDev_Events
 
Introduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerIntroduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerDev_Events
 
Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Dev_Events
 
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeLean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeDev_Events
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewDev_Events
 
Node.js – ask us anything!
Node.js – ask us anything! Node.js – ask us anything!
Node.js – ask us anything! Dev_Events
 
Swift on the Server
Swift on the Server Swift on the Server
Swift on the Server Dev_Events
 
Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Dev_Events
 
Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Dev_Events
 
Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Dev_Events
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without ServersDev_Events
 
The App Evolution
The App EvolutionThe App Evolution
The App EvolutionDev_Events
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Dev_Events
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixDev_Events
 
Add Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsAdd Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsDev_Events
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.jsDev_Events
 
Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Dev_Events
 

Plus de Dev_Events (20)

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimes
 
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
 
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
 
Blockchain Hyperledger Lab
Blockchain Hyperledger LabBlockchain Hyperledger Lab
Blockchain Hyperledger Lab
 
Introduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerIntroduction to Blockchain and Hyperledger
Introduction to Blockchain and Hyperledger
 
Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8
 
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeLean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s View
 
Node.js – ask us anything!
Node.js – ask us anything! Node.js – ask us anything!
Node.js – ask us anything!
 
Swift on the Server
Swift on the Server Swift on the Server
Swift on the Server
 
Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed?
 
Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...
 
Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without Servers
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
 
Add Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsAdd Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.js
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.js
 
Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson
 

Dernier

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Dernier (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Mobile, open source, and the drive to the cloud

  • 1. Mobile, open source, and the drive to the cloud Karl Weinmeister Senior Manager, Swift@IBM Engineering
  • 2. Agenda • Why: • Enabling Modern App Design Patterns • What: • Logic, Data, Events & Integration powered by Open Source • How: • Developer Experience & Tools • Get Involved: • Sample End-to-end Applications • Resources & Links 2
  • 3. Modern Application Design: Tiers 3 Application-specific Backend Other Cloud Services On-prem Services Experiences being built by this community are dramatically changing the way we live and work New Experiences User-facing Client Apps Things / Sensors End Users
  • 4. Modern Application Design: Tier Attributes 4 Application-specific Backend Other Cloud Services On-prem Services End Users User-facing Client Apps Role: User Interactions & Remote Sensing Application State: User & View Specific State, Caching of eventually consistent state Usage: Sometimes on, Driven by Users and Events Resources: Constrained CPU, Mem, Network BW Role: Integration Service Composition, Background Monitoring/Activity, Event/Traffic Routing, State synchronization across clients and things Application State: Global Application State Usage: Always-on, Always Connected Resources: Unlimited CPU, Mem, Network BW
  • 5. Modern Application Design: Tier Attributes 5 Application-specific Backend Other Cloud Services On-prem Services End Users User-facing Client Apps Developer Experience • Tight Coupling/Dependency between Client Apps and Application Backend • Need ability to deploy the right functionality to the proper tier to deliver world class experience • Successful experience reached through fast iterations
  • 6. Modern Application Design: Application Constructs 6 Application-specific Backend Other Cloud Services On-prem Services Logic: Client and Server-side Swift Data: Cloudant, MongoDB, Redis, ElasticSearch, PostgresQL, etc Events: OpenWhisk Integration: Open Github Packages User-facing Client Apps Developer Experience End Users
  • 7. Swift.org: What is included? • Open Sourced Dec 3, 2015 • Swift Language • Core libraries: • XCTest • Libdispatch (GCD) • Foundation for non-Apple hosts (New) • LLVM Compiler & Debugger (swift-lldb, swift-llvm, swift-clang) • Swift Package Manager (New)
  • 8. IBM Swift Sandbox The IBM Swift Sandbox Experiment with Swift on the server, share your code and collaborate with your peers http://swiftlang.ng.bluemix.net 8 Features • One click access to Swift on Linux (multiple versions) • Mobile UI & Auto Saving Draft • Code Snapshots & Sharing, UI Themes, Social • Social Sharing
  • 9. Growth in Swift Popularity 9 2014 2015
  • 10. Surging Popularity within 6 months compared to other popular languages 10
  • 11. New Client-side Development Community 11 Hybrid / Web App Development NodeJS Attracted Web-based Developers to the Cloud Swift App Development Swift on the Server can attract Swift-based Developers >11 Million Apple Developers ~100 Apple/IBM Enterprise Solutions and Assets
  • 12. Lessons to be learned from NodeJS Timeline V8 Release (2008) + libuv (concurency) + foundation = NodeJS (2009) + npm (2009-2011) Initial Popularity (2012-2013) Mainstream Usage (2014-2015) Swift Release (Late 2015) + libdispatch (concurrency) + Foundation + Web Foundation (Kitura) = ?? (2016) + swift pkg mgr + catalog (? 2016) Package Growth (2012) Package Growth (2016-2017) Mainstream Usage (??) + Express: beta1.0 (Web Framework) (2009-2010) + Kitura: alpha1.0 (Web Framework) (2016-?) Initial Popularity (??) Swift.org Contributions Sandbox Package Catalog
  • 13. Swift.org Contributions Mailing lists (https://swift.org/community/#mailing-lists) Very active community IBM’s involvement in bringing Swift to the Cloud • Core Libraries • Foundation • Libdispatch • Motivating Server Projects • Kitura Web Framework • Web Foundation Libraries • OpenWhisk support of Swift
  • 14. Status Quo Still early days • Language evolution (1.0  2.0  3.0  4.0) currently at 2.2  3.0 New (Very early): • Swift Package Manager: • One of the key developers is Max Howell (creator of Homebrew on Mac) New on Linux (Still in progress) • Libdispatch (Concurrency) • Foundation (New for non-Apple platforms) 14
  • 15. Apple Client Deployment Server/Cloud Deployment Application-Specific Cloud ServicesClient Facing App Beyond Swift.org: Bringing Swift to the Server • Drive towards consistent Swift developer experience across Client & Server • Building / Investing in Core Swift Libraries (Foundation & Libdispatch) • Motivated/Prioritized through open source projects (Kitura & OpenWhisk) • Deployment options across open source technology (Docker, Cloud Foundry, Vagrant) Foundation Swift Swift Standard Library Core Foundation DispatchPWQ Clibs GLibc Foundation Swift Swift Standard Library Core Foundation Dispatch Darwin Clibs Client-specific Libraries App Libraries Server-specific LibrariesApp Libraries Driving Towards Consistent Runtime across Clients/Servers OpenWhisk & Kitura-based Server-side Environments (Built with Foundation & Libdispatch)
  • 16. Kitura Web Framework What is it? New, modular, package-based web framework written in Swift Why is this cool? Empower a new generation of native mobile developers to write and deploy code into the Cloud. Developer Benefits ? Delivers core technologies needed to stand up enterprise apps on the server Enables developers to create a web application in Swift and deploy these servers on Linux and the Cloud. http://github.com/ibm-swift/kitura 16
  • 17. myFirstProject ├── Package.swift ├── Sources │ └── main.swift └── Tests └── empty mkdir myFirstProject 2. Next initialize this project as a new Swift package project Develop a Kitura Web Application in Swift 1. First we create a new project directory cd myFirstProject swift build --init Now your directory structure under myFirstProject should look like this:
  • 18. import Kitura import SwiftyJSON import PackageDescription let package = Package( name: "myFirstProject", dependencies: [ .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 13) ] ) 4. Import the modules in your code (Sources/main.swift): Develop a Kitura Web Application in Swift 3. Now we add Kitura as a dependency for your project (Package.swift):
  • 19. Kitura.addHTTPServer(port: 8090, with: router) Kitura.run() let router = Router() router.get("/hello") { request, response, next in response.status(.OK).send("<h1>Hello, World!</h1>") next() } 7. Create and start a HTTPServer: Develop a Kitura Web Application in Swift 5. Add a router and a path: router.get("/hello.json") { request, response, next in response.status(.OK).send(json: JSON(["Hello": "World!"])) next() } 6. Add a JSON data route
  • 20. import Kitura import SwiftyJSON let router = Router() router.get("/hello") { request, response, next in response.status(.OK).send("<h1>Hello, World!</h1>") next() } router.get("/hello.json") { request, response, next in response.status(.OK).send(json: JSON(["Hello": "World!"])) next() } Kitura.addHTTPServer(port: 8090, with: router) Kitura.run() Develop a Kitura Web Application in Swift 8. Sources/main.swift file should now look like this:
  • 21. Mac OS X: swift build Linux: swift build -Xcc –fblocks Develop a Kitura Web Application in Swift 9. Compile your application: .build/debug/myFirstProject 10. Run your web application: 11. Open your browser: http://localhost:8090/hellohttp://localhost:8090/ http://localhost:8090/hello.json
  • 22. Application Data: Open Technology Today, developers chose their cloud data technology based on the demands of their application. IBM is happy to offer a wide range of open technologies in managed offerings: Cloudant, Redis, MongoDB, Postgres, ElasticSearch, RethinkDB, and more
  • 23. 23 Package (P) Action f(x) Trigger (T) Rule (R) R = T  f(x) Namespace f(x) Application Events: OpenWhisk Overview High-level Architecture Triggers: A class of events emitted by event sources. Actions: Encapsulate the actual code to be executed which support multiple language bindings. Actions invoke any part of an open ecosystem. Rules: An association between a trigger and an action. Packages: Describe external services in a uniform manner. Combined these allow developers to compose solutions using modern abstraction and chaining which can be created, accessed, updated and deleted via the CLI
  • 24. OpenWhisk: How does it work? OpenWhisk Swift Docker … Incoming HTTP request Browser Mobile App Web App Variety of languages Event Providers Cloudant Git Weather … … Trigger execution of associated OpenWhisk action JS
  • 25. Application Events: OpenWhisk Resources https://new-console.ng.bluemix.net/openwhisk https://github.com/openwhisk
  • 26. Application Integration: Swift Packages • Swift.org introduced the Swift Package Manager • Lack of standardization on packages creates a bit of package hell • Welcome addition but still early days • Growing content seen in Github • Catalog to help with sharing and discovery • Client and Server side packages • Building upon lessons learned in other package managers
  • 27. Application Integration: Swift Package Catalog https://swiftpkgs.ng.bluemix.net/
  • 28. Xcode Developer Experience Swift on the client Build and Debug Applications IBM Swift Sandbox Collaborative Code as Questions/An swers Provision 3rd Party Client- side Registered Swift Packages IBM Cloud Services Provision IBM Cloud Service Packages and Credentials Swift Packages Swift on the server Docker Whisk CloudFoundry Sandbox Developer Experience 28
  • 29. Sample Applications: BluePic BluePic is a photo sharing app that allows you to take photos, upload them and share them with a community. The BluePic community will be made up of all the users that run an instance of your created app. https://github.com/IBM-Swift/Kitura-BluePic
  • 30. Sample Applications: TodoList A shared example to showcase backend tech stacks http://todobackend.com/ An example using Kitura to develop a Todo-Backend https://github.com/IBM-Swift/Kitura-TodoList
  • 31. Swift on the IBM Cloud 31
  • 32. Swift@IBM - Developer Resources https://developer.ibm.com/swift/ The Swift@IBM devCenter Join IBM Swift Engineering and leverage the latest resources 32
  • 33. Technical Blog Threads on Swift@IBM Swift (General) • Why I’m Excited about Swift (12/3) • Running Swift within Docker (12/15) • Introducing the (beta) IBM Watson iOS SDK! (12/18) Swift Sandbox • Introducing Swift Sandbox (12/3) • Hello Swift! IBM Swift Sandbox Day 1 Wrapup (12/5) • #HourofCode: Learn Swift in three easy steps today! (12/8) • Introduction to Swift Tutorial using the IBM Swift Sandbox (12/8) • What’s new in the IBM Swift Sandbox v0.3 (12/21) • Exploring Swift on Linux (12/28) • What’s new in the IBM Swift Sandbox v0.4 (1/20) https://developer.ibm.com/swift/blogs Swift (General) • Swift on POWER Linux (2/1) • Seven Swift Snares & How to Avoid Them (1/27) Interconnect 2016 • Build End-to-End Cloud Apps using Swift with Kitura (2/21) • Introducing the Swift Package Catalog (2/21) • Talking about Swift Concurrency on Linux (2/21) • Explore the IBM Swift Sandbox 1-2-3 (2/21) • Using the Cloud Foundry Buildpack for Swift on Bluemix (2/21) • 10 Steps To Running a Swift App in an IBM Container (2/21) • Build End-to-End Cloud Apps using Swift with Kitura (2/21) Drumbeat of Blogs/Announcements from IBM Swift Engineering Community 33
  • 34. Summary Deployment Options Swift.org Projects Community Packages Server Projects Foundation, libdispatch, clang, llvm, swift-package-manager MongoDB, Redis, CouchDB, Postgresql, Elasticsearch, MQ Open Source OverviewDeveloper Resources Swift Sandbox Package Catalog And many more…

Notes de l'éditeur

  1. 0.4 = UI overhaul and mobile addition
  2. What is it ? Kitura is a new, modular, package-based web framework written in the Swift language for use in standing up a web server written in Swift on both OSX and Linux. Why is this cool ? Now that Swift is open source, a number of included projects are coming together (swift, swift package manager, libdispatch, swift foundation) that makes the development of a Swift-based web server stack both inevitable as well as incredibly valuable means to empower a new generation of native mobile developers to write and deploy code into the Cloud as well. Developer Benefits ? Once you have a new language that runs on a server, many developers want to be able to quickly and easily create a web server written in that language. The swift language and runtime does not include a web framework that can be used to easily create a web server. IBM has created this project to enable developers to create a web application in Swift and deploy these servers on Linux and the Cloud. IBM Message We are leading the development of this web framework and will work with the community to evolve this framework over time as Swift on Linux evolves. Other Details
  3. -Discuss why we have multiple imports
  4. Explain why all the additional C language dependencies -Line up the font on Swift build -
  5. IBM Confidential
  6. Simplified client/server programming model Integrated Client/Server Swift Package Management and composition IBM Cloud deployment and services provisioning Client/Server Programming Model IBM Sandbox collaborative coding and sharing