Help:Cloud Services introduction: Difference between revisions

From Wikitech
Content deleted Content added
β†’β€ŽCloud VPS: Move Cloud VPS explanatory content to Portal:Cloud_VPS
Revise this page as part of improving overall WMCS navigation and content, see phab:T344628
Line 1: Line 1:
{{See|wmflabs.org and wmcloud.org redirect here. You might be looking for the [[:Category:Toolforge tools|Lists of Toolforge tools]] or the [[toolforge:openstack-browser/project/|List of Cloud VPS projects]].}}
{{note|This page has upcoming planned revisions. Please help improve them and provide feedback: https://phabricator.wikimedia.org/T344628}}

[[File:What is Cloud Services? poster.pdf|alt=A Poster showing some Wikimedia Cloud services statistics and services|thumb|upright=1.3|Poster-format overview]]
[[File:What is Cloud Services? poster.pdf|alt=A Poster showing some Wikimedia Cloud services statistics and services|thumb|upright=1.3|Poster-format overview]]
'''Wikimedia Cloud Services (WMCS)''' provides tools, services, and support for technical collaborators who want to contribute to Wikimedia software projects. Use Cloud Services to host your software tools for the [[meta:Special:MyLanguage/Wikimedia movement|Wikimedia movement]], without charge.


== What can you do with Cloud Services? ==
[[Wikimedia_Cloud_Services_team|'''Wikimedia Cloud Services''' ('''WMCS''')]] provides tools, services, and support for technical collaborators who want to contribute in Wikimedia software projects. Use Cloud Services to host your software tools for the [[meta:Special:MyLanguage/Wikimedia movement|Wikimedia movement]], without charge.


=== Host tools on Wikimedia servers ===
== Service concepts ==


Tools and bots make it easier to edit and maintain Wikimedia projects. For developers who support Wikimedia projects by developing tools and bots, '''[[Help:Toolforge | Toolforge]]''' provides the following features:
{{ContentGrid
* Free, reliable, and scalable shared hosting, including web servers, databases and other data storage
|content=
* A distributed job processing system
{{Colored box
* Support for multiple users to collaboratively maintain and manage tools
|title = Data as a service
|content = [[Superset]] and [[#PAWS|PAWS]] empower '''technically curious to advanced users''' to query wiki replicas and create scripts, tutorials, and data visualizations to analyze and improve Wikimedia projects.


To use Toolforge you need:
See [[#Data Services]] below.
* Some programming knowledge
}}
* An understanding of Unix command line
{{Colored box
|title = Platform as a service
|content = [[#Toolforge|Toolforge]] is for '''intermediate to advanced users''' working on tools, bots, webservices that support Wikimedia projects.


To get started, visit [[Help:Toolforge]]. Or, [https://developer.wikimedia.org/build-tools/ learn more about creating bots].
See [[#Toolforge]] below.
}}
{{Colored box
|title = Infrastructure as a service
|content = [[#Cloud_VPS|Cloud VPS]] is for '''advanced users''' who need to administer their own servers for Wikimedia operations and software development.


=== Run scripts and visualize data ===
See [[#Cloud VPS]] below.
}}
}}


'''[[PAWS]]''' is a Jupyter notebook installation hosted by Wikimedia. PAWS notebooks can be used for creating tutorials, running live code, creating data visualizations, running basic bots, and more.
Are you unsure? Check [[#Which service is right for you?]] below.


A single PAWS notebook is maintained by a single user, but they can be downloaded and forked by other users. To use PAWS you need only a Wikimedia login and a web browser. Knowledge of Python is helpful, but not required.
== Toolforge ==


=== Administer servers for software development ===
[[File:Toolforge_logo.svg|right|frameless|60px|alt=Toolforge|link=Portal:Toolforge]]


Open source software projects help the Wikimedia movement by improving core infrastructure (like MediaWiki), powering research and analytics, and supporting Wikimedia operations and software development. For advanced projects that aren't viable in the Toolforge environment, '''[[Help:Cloud_VPS | Cloud VPS]]''' (Virtual Private Server) provides the following features:
''[[Portal:Toolforge|Toolforge]]'' is one of the projects hosted by Wikimedia Cloud VPS. It is a shared hosting (platform as a service) environment for volunteers to develop and run [https://admin.toolforge.org/tools tools], [[mw:Manual:Creating a bot|continuous bots]], web services, scheduled jobs, and data analysis.
* Free cloud computing environment, powered by [[:w:OpenStack|OpenStack]]
* Collaboratively-owned collections of virtual private servers, storage, firewall, and HTTPS proxy resources to projects
* Access to a variety of data services
* Freedom to install packages not provided by Debian or the Wikimedia Foundation
To use Cloud VPS, you need:
* An open source project that isn't viable in the Toolforge environment, or can't be accomplished using other WMCS offerings
* One or more active project maintainers who meet basic requirements
* Advanced programming knowledge
* Advanced experience with Unix command line
* The ability to administer your own servers and manage your project's applications, data, runtime, middleware, and operating systems


To get started, visit [[Help:Cloud VPS]].
To use Toolforge you will need some programming knowledge, an understanding of Unix command line, and version control via [[mw:Gerrit|Gerrit]] and Git.


==== What is the difference between Cloud VPS and Toolforge? ====
Users of the Toolforge project create so-called "tool" accounts (technically ''service groups''). These accounts allow one or more users to collaborate to manage the software source code, configuration, and jobs for that tool or bot.

The Toolforge administrators manage a pool of virtual servers which provide a shared project hosting environment that can be used by Toolforge users. These resources include [[Help:Toolforge/Web|web servers]], [[Help:Toolforge/Database|databases]] and [[Help:Toolforge#Redis|other data storage]], and a [[Help:Toolforge/Grid|distributed job processing system]]. These services provide a reliable and scalable hosting environment for volunteers to develop and operate their tools and bots.

For additional documentation and help with Toolforge, see [[Portal:Toolforge]].

== Cloud VPS ==

[[File:Wikimedia_Cloud_Services_logo.svg|right|frameless|60px|alt=Cloud Services|link=Portal:Cloud VPS]]

''[[Portal:Cloud VPS|Cloud VPS]]'' (Virtual Private Server) is a [[:w:Cloud computing|cloud computing]] environment powered by [[:w:OpenStack|OpenStack]]. It offers collaboratively owned collections of virtual private servers. You can use this infrastructure to create and maintain open source software projects that help the [[:meta:Special:MyLanguage/Wikimedia movement|Wikimedia movement]].

The environment includes access to a variety of data services. Cloud VPS allows developers and system administrators to try out improvements to Wikimedia infrastructure (including MediaWiki), power research and analytics, and host projects that are not viable in the Toolforge environment.

== What is the difference between Cloud VPS and Toolforge? ==


Cloud VPS is an [[:w:Cloud_computing#Infrastructure_as_a_service_.28IaaS.29|Infrastructure as a service (IaaS)]] solution. It provides virtual machines, storage, firewall, and HTTPS proxy resources to projects. The members of each individual project are responsible for managing applications, data, runtime, middleware, and operating systems themselves.
Cloud VPS is an [[:w:Cloud_computing#Infrastructure_as_a_service_.28IaaS.29|Infrastructure as a service (IaaS)]] solution. It provides virtual machines, storage, firewall, and HTTPS proxy resources to projects. The members of each individual project are responsible for managing applications, data, runtime, middleware, and operating systems themselves.


Toolforge is a [[:w:Cloud_computing#Platform_as_a_service_.28PaaS.29|Platform as a service (PaaS)]] solution. It provides [[Help:Toolforge/Web|web servers]], [[Help:Toolforge/Database|databases]] and [[Help:Toolforge#Redis|other data storage]], and a [[Help:Toolforge/Grid|distributed job processing system]] as managed services that can be used by tools and their maintainers.
Toolforge is a [[:w:Cloud_computing#Platform_as_a_service_.28PaaS.29|Platform as a service (PaaS)]] solution. It provides [[Help:Toolforge/Web|web servers]], [[Help:Toolforge/Database|databases]], and a [[Help:Toolforge/Grid|distributed job processing system]] as managed services for tool maintainers.

== Data Services ==

''[[Portal:Data Services|Data Services]]'' are a collection of products which provide access to copies of Wikimedia's production wiki databases (with private information redacted) and access to [[meta:Special:MyLanguage/Data dumps|Wikimedia data dumps]]. Use data services to create replicas of the production databases and other data for analysis and experimentation.

There are also services to interact with data in a web browser: Superset and PAWS.

=== Superset ===

An instance of [https://superset.apache.org/ Superset] is offered as a public querying interface for [[Help:Toolforge/Database|Wiki Replicas]], a set of live replica [[:w:en:SQL|SQL]] databases of public Wikimedia wikis. Superset offers a web interface for running queries against the Wiki Replicas. Making exploring the replicas relatively easy.


=== Access databases and data dumps ===
To use Superset you need only a Wikimedia login and a web browsers. A basic understanding of SQL is recommended. Learn about [[Help:MySQL_queries|SQL queries]].


{{Note|What is a wiki replica? What's in the dumps? Learn the basics of Wikimedia open data and how to access all available datasets at [[meta:Research:Data|Research:Data]].}}
=== PAWS ===


==== Access wiki databases for tool development====
[[File:PAWS.svg|right|frameless|200px|alt=PAWS|link=PAWS]]


Tools and software hosted on Toolforge and Cloud VPS can directly access public data dumps and production wiki replicas.
''[[PAWS]]'' is a Jupyter notebook installation hosted by Wikimedia. PAWS notebooks can be used for creating tutorials, running live code, creating data visualizations, running bots using Pywikibot, and more.
* Learn about [[Help:Toolforge/Database | accessing wiki replica databases from a tool account]].
* Learn about [[Help:Shared_storage | accessing dumps through shared storage services for Cloud VPS and Toolforge]].


==== Query wiki replicas and dumps in a browser ====
A single PAWS notebook is maintained by a single user, but they can be downloaded and forked by other users.


* '''[[PAWS]]''' provides a Jupyter notebook environment you can use to query wiki replicas and dumps, create interactive graphs, and use APIs for analysis.
To use PAWS you need only a Wikimedia login and a web browser. Knowledge of Python is helpful, but not required.
* '''[[Superset]]''' and '''[https://quarry.wmcloud.org/ Quarry]''' are web interfaces for querying live replica SQL databases of public Wikimedia wikis.
To use Superset or Quarry you need only a Wikimedia login and a web browser, but you should have a basic understanding of SQL. Learn about [[Help:MySQL_queries|SQL queries]].


== Which service is right for you? ==
== Which service is right for you? ==
Line 87: Line 67:
|+
|+
! rowspan="2" |Activity / Needs
! rowspan="2" |Activity / Needs
!PAWS '''(DaaS)'''
!PAWS
!Superset (DaaS)
!Superset
!Toolforge (PaaS)
!Toolforge
!Cloud VPS (IaaS)
!Cloud VPS
|-
|-
|Data as a service
|Data as a service
Line 97: Line 77:
|Infrastructure as a service
|Infrastructure as a service
|-
|-
|Write documentation and create tutorials
|Write scripts and visualize data
|βœ”
|βœ”
|
|
Line 103: Line 83:
|
|
|-
|-
|Write queries against wiki replica databases
|Browser based
|βœ”
|βœ”
|
|
|-
|Write queries against replica databases
|βœ”
|βœ”
|βœ”
|βœ”
Line 115: Line 89:
|βœ” via Toolforge
|βœ” via Toolforge
|-
|-
|Access on database dump files
|Access on wiki database dump files
|βœ”
|βœ”
|
|
Line 124: Line 98:
|βœ”
|βœ”
|
|
|βœ” easily
|βœ”
|βœ” if not viable on Toolforge
|βœ” manually
|-
|-
|Run web services
|Run web services
|
|
|
|
|βœ” easily
|βœ”
|βœ” if not viable on Toolforge
|βœ” manually
|-
|-
|Build tools to improve Wikimedia projects
|Build tools to improve Wikimedia projects
|
|
|
|
|βœ” easily
|βœ”
|βœ” if not viable on Toolforge
|βœ” manually
|-
|-
|Schedule or run continuous jobs
|Schedule or run continuous jobs
|
|
|
|
|βœ” easily
|βœ”
|βœ” if not viable on Toolforge
|βœ” manually
|-
|Terminal based
|
|
|βœ”
|βœ”
|-
|-
|Need your own subdomain
|Need your own subdomain
Line 174: Line 142:
|
|
|βœ”
|βœ”
|-
!Platform / Environment
|web browser
|web browser
|terminal
|terminal
|-
|-
!User knowledge
!User knowledge
Line 182: Line 156:
|}
|}


== Get started ==
== Before you start ==


To use Cloud Services products, you must first [[Help:Create a Wikimedia developer account|create a Wikimedia account and a developer account]].
Set up your Toolforge or Cloud VPS projects by following the instructions on [[Help:Getting Started]].


== Learn more ==
{{:Help:Cloud Services communication}}


== Technology stack==

WMCS is a computing ecosystem built on [[w:OpenStack|OpenStack]] and [[w:Kubernetes|Kubernetes]].

== Learn more ==
* [[Portal:Toolforge|Toolforge Portal]] β€” Information about Toolforge and links to help and technical documentation.
* [[Portal:Cloud VPS|Cloud VPS Portal]] β€” Information about Cloud VPS and links to help and technical documentation.
* [[Portal:Data Services|Data Services Portal]] β€” Information about Data Services and links to help and technical documentation.
* See the [[Help:Glossary|glossary]] for detailed definitions of terms which are specific to Toolforge and Cloud VPS.
* 🎬 Video: [https://media.ccc.de/v/36c3-77-wikimedia-cloud-services-introduction Wikimedia Cloud Services introduction] (2019)
* 🎬 Video: [https://media.ccc.de/v/36c3-77-wikimedia-cloud-services-introduction Wikimedia Cloud Services introduction] (2019)
* πŸ“£ Slides: [[commons:File:Introduction_to_Wikimedia_Cloud_Services_-_Wikimania_Hackathon_2019_Stockholm_Sweden.pdf|An introduction to Cloud Services presentation]] (2019)
* πŸ“£ Slides: [[commons:File:Introduction_to_Wikimedia_Cloud_Services_-_Wikimania_Hackathon_2019_Stockholm_Sweden.pdf|An introduction to Cloud Services presentation]] (2019)


{{:Help:Cloud Services communication}}
== Historical information ==

From 2011 until early 2017, ''Wikimedia Cloud Services'' was known as ''Wikimedia Labs''. However, the term ''Labs'' was used for [[Labs labs labs|several different things]].


[[Category:Overviews]]
Since 2017, the former ''Wikimedia Foundation Labs team'' and ''Tool Labs Support team'' merged into the ''[[mw:Wikimedia Cloud Services team|Wikimedia Cloud Services team]]''.
[[Category:Cloud Services]]

Revision as of 19:35, 8 September 2023

A Poster showing some Wikimedia Cloud services statistics and services
Poster-format overview

Wikimedia Cloud Services (WMCS) provides tools, services, and support for technical collaborators who want to contribute to Wikimedia software projects. Use Cloud Services to host your software tools for the Wikimedia movement, without charge.

What can you do with Cloud Services?

Host tools on Wikimedia servers

Tools and bots make it easier to edit and maintain Wikimedia projects. For developers who support Wikimedia projects by developing tools and bots, Toolforge provides the following features:

  • Free, reliable, and scalable shared hosting, including web servers, databases and other data storage
  • A distributed job processing system
  • Support for multiple users to collaboratively maintain and manage tools

To use Toolforge you need:

  • Some programming knowledge
  • An understanding of Unix command line

To get started, visit Help:Toolforge. Or, learn more about creating bots.

Run scripts and visualize data

PAWS is a Jupyter notebook installation hosted by Wikimedia. PAWS notebooks can be used for creating tutorials, running live code, creating data visualizations, running basic bots, and more.

A single PAWS notebook is maintained by a single user, but they can be downloaded and forked by other users. To use PAWS you need only a Wikimedia login and a web browser. Knowledge of Python is helpful, but not required.

Administer servers for software development

Open source software projects help the Wikimedia movement by improving core infrastructure (like MediaWiki), powering research and analytics, and supporting Wikimedia operations and software development. For advanced projects that aren't viable in the Toolforge environment, Cloud VPS (Virtual Private Server) provides the following features:

  • Free cloud computing environment, powered by OpenStack
  • Collaboratively-owned collections of virtual private servers, storage, firewall, and HTTPS proxy resources to projects
  • Access to a variety of data services
  • Freedom to install packages not provided by Debian or the Wikimedia Foundation

To use Cloud VPS, you need:

  • An open source project that isn't viable in the Toolforge environment, or can't be accomplished using other WMCS offerings
  • One or more active project maintainers who meet basic requirements
  • Advanced programming knowledge
  • Advanced experience with Unix command line
  • The ability to administer your own servers and manage your project's applications, data, runtime, middleware, and operating systems

To get started, visit Help:Cloud VPS.

What is the difference between Cloud VPS and Toolforge?

Cloud VPS is an Infrastructure as a service (IaaS) solution. It provides virtual machines, storage, firewall, and HTTPS proxy resources to projects. The members of each individual project are responsible for managing applications, data, runtime, middleware, and operating systems themselves.

Toolforge is a Platform as a service (PaaS) solution. It provides web servers, databases, and a distributed job processing system as managed services for tool maintainers.

Access databases and data dumps

What is a wiki replica? What's in the dumps? Learn the basics of Wikimedia open data and how to access all available datasets at Research:Data.

Access wiki databases for tool development

Tools and software hosted on Toolforge and Cloud VPS can directly access public data dumps and production wiki replicas.

Query wiki replicas and dumps in a browser

  • PAWS provides a Jupyter notebook environment you can use to query wiki replicas and dumps, create interactive graphs, and use APIs for analysis.
  • Superset and Quarry are web interfaces for querying live replica SQL databases of public Wikimedia wikis.

To use Superset or Quarry you need only a Wikimedia login and a web browser, but you should have a basic understanding of SQL. Learn about SQL queries.

Which service is right for you?

Activity / Needs PAWS Superset Toolforge Cloud VPS
Data as a service Data as a service Platform as a service Infrastructure as a service
Write scripts and visualize data βœ”
Write queries against wiki replica databases βœ” βœ” βœ” βœ” via Toolforge
Access on wiki database dump files βœ” βœ”
Write and run bots βœ” βœ” βœ” if not viable on Toolforge
Run web services βœ” βœ” if not viable on Toolforge
Build tools to improve Wikimedia projects βœ” βœ” if not viable on Toolforge
Schedule or run continuous jobs βœ” βœ” if not viable on Toolforge
Need your own subdomain βœ” βœ”
Work with co-maintainers and co-admins βœ” βœ”
Install packages not provided by Debian or the Wikimedia Foundation βœ”
Administer your own virtual server βœ”
Platform / Environment web browser web browser terminal terminal
User knowledge curiousβ€”advanced curiousβ€”advanced intermediateβ€”advanced advanced

Before you start

To use Cloud Services products, you must first create a Wikimedia account and a developer account.

Learn more

Communication and support

Support and administration of the WMCS resources is provided by the Wikimedia Foundation Cloud Services team and Wikimedia movement volunteers. Please reach out with questions and join the conversation:

Discuss and receive general support
Stay aware of critical changes and plans
Track work tasks and report bugs

Use a subproject of the #Cloud-Services Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself

Read stories and WMCS blog posts

Read the Cloud Services Blog (for the broader Wikimedia movement, see the Wikimedia Technical Blog)