SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Cloud	
  Foundry	
  100-­‐day	
  Challenge	
  
-­‐	
  Deploy	
  100	
  OSS	
  apps	
  onto	
  CF	
  
Noburou	
  TANIGUCHI	
  
Nippon	
  Telegraph	
  and	
  Telephone	
  CorporaAon	
  
/	
  Japan	
  Cloud	
  Foundry	
  Group	
  
Who	
  I	
  am	
  
•  Work	
  for	
  NTT	
  
–  NTT:	
  Nippon	
  Telegraph	
  and	
  Telephone	
  Corp.	
  
•  A	
  member	
  of	
  cfgrjp	
  
–  cfgrjp:	
  Japan	
  Cloud	
  Foudry	
  Group	
  
•  A	
  CF-­‐related	
  work	
  
–  Cheap	
  Update	
  Buildpack	
  
hNps://bitbucket.org/nota-­‐ja/cheap-­‐update-­‐buildpack	
  
Cloud	
  Foundry	
  100-­‐day	
  Challenge	
  
•  hNp://blog.cloudfoundry.gr.jp/search/
label/百日行	
  
•  「百日行」in	
  Japanese	
  
–  百	
  (hyaku):	
  100	
  
–  日	
  (nichi):	
  day	
  
–  行	
  (gyou):	
  discipline,	
  esp.	
  in	
  religional	
  context	
  
Cloud	
  Foundry	
  100-­‐day	
  Challenge	
  
•  What	
  
–  Deploy	
  100	
  OSS	
  apps	
  onto	
  CF	
  
–  One	
  app	
  (and	
  blog	
  post)	
  per	
  (business)	
  day	
  
–  Since	
  2015/06/04	
  
–  100	
  posts	
  finished	
  at	
  2015/11/16	
  
•  6	
  core	
  writers	
  +	
  3	
  guest	
  writers	
  
•  All	
  in	
  Japanese	
  
Cloud	
  Foundry	
  100-­‐day	
  Challenge	
  
•  Why	
  
–  More	
  CF	
  recogniAon	
  in	
  Japan	
  
–  Learn	
  how	
  to	
  make	
  apps	
  run	
  on	
  CF	
  
–  Explore	
  new	
  features	
  desirable	
  for	
  CF	
  users	
  
Numbers	
  
•  Success	
  /	
  Failure	
  
•  Buildpacks	
  
•  Services	
  
•  (ModificaAons)
Numbers:	
  Success	
  /	
  Failure	
  
•  OK:	
  97	
  
•  NG:	
  3	
  
–  BuNerfly	
  
–  Milkode	
  
–  Zound	
  
NG:	
  BuNerfly	
  
•  hNps://github.com/paradoxxxzero/
buNerfly	
  
–  Web-­‐based	
  terminal	
  
•  cf	
  push	
  =>	
  running	
  
•  Requires	
  password	
  of	
  user	
  'vcap'	
  ..	
  
NG:	
  Milkode	
  
•  hNps://github.com/ongaeshi/milkode	
  
–  Source	
  code	
  search	
  engine	
  with	
  Web	
  UI	
  
•  Runs	
  on	
  Heroku	
  
•  Failed	
  to	
  stage	
  on	
  CF	
  
–  failed	
  compiling	
  "rroonga"	
  gem's	
  naAve	
  extension	
  
•  Need	
  to	
  compile	
  some	
  binaries	
  against	
  cflinuxfs2	
  
environment	
  
•  May	
  run	
  if	
  we	
  have	
  enough	
  Ame	
  
NG:	
  Zound	
  
•  hNps://github.com/gre/zound	
  
–  Real	
  Ame	
  audio	
  streaming	
  (experimental)	
  
•  cf	
  push	
  =>	
  running	
  
•  Needs	
  hardware	
  audio	
  device	
  for	
  
realAme	
  audio	
  rendering	
  
Numbers:	
  Buildpacks	
  
•  Total: 	
  113	
  
–  Binary	
  (Null): 	
  1	
  
–  Go: 	
  4	
  
–  Java:	
  8	
  
–  Node.js:	
  24	
  
–  PHP:	
  22	
  
–  Python: 	
  3	
  
–  Ruby: 	
  21	
  
–  StaAcfile: 	
  16	
  
–  app-­‐specific: 	
  4	
  
–  heroku-­‐buildpack-­‐apt: 	
  4	
  
–  heroku-­‐buildpack-­‐mulA: 	
  6	
  
Numbers:	
  Services	
  
•  Total: 	
  52	
  
–  MongoDB: 	
  8	
  
–  MySQL: 	
  27	
  
•  (incl.	
  ClearDB: 	
  1)	
  
–  PostgreSQL:	
  12	
  
–  Redis: 	
  3	
  
–  SendGrid: 	
  1	
  
•  non-­‐CF	
  services	
  
–  MongoDB: 	
  1	
  
–  PostgreSQL:	
  2	
  
•  apps	
  using	
  mulAple	
  services:	
  3	
  
Some	
  Experience	
  
•  EtherSheet	
  
•  Jenkins	
  
•  SugarCRM	
  
•  Feedbin	
  
•  UNICALE	
  
•  MaNermost	
  
•  CommaFeed	
  
EtherSheet	
  
•  hNps://github.com/ethersheet-­‐
collecAve/EtherSheet/	
  
–  Web-­‐based	
  spreadsheet	
  
•  PORT	
  
•  DATABASE_URL	
  
Jenkins	
  
•  hNp://jenkins-­‐ci.org/	
  
–  Most	
  popular	
  CI	
  tool	
  
•  Very	
  easy	
  with	
  jenkins-­‐buildpack	
  
•  Configs	
  in	
  local	
  file	
  	
  
–  Jenkins	
  Job	
  Builder	
  
–  (Database	
  plugin)	
  
•  Master	
  /	
  Slave	
  composiAon	
  
•  =>	
  Testbed	
  
SugarCRM	
  
•  hNp://www.sugarcrm.com/	
  
–  Well-­‐known	
  open	
  source	
  CRM	
  
•  PHP	
  extensions	
  
•  Custom	
  Apache	
  seongs	
  
•  Configs	
  in	
  local	
  files	
  
–  Redeploy	
  
Feedbin	
  
•  hNps://feedbin.com/	
  
–  Ruby	
  on	
  Rails-­‐based	
  feed	
  reader	
  
•  Complex	
  
–  RDBMS	
  
–  Redis	
  
–  (Memcached)	
  
–  Honeybadger	
  
–  worker	
  processes	
  
•  SSL	
  customizability	
  
•  StaAc	
  file	
  serving	
  customizability	
  
•  Gemfile.lock	
  generaAon	
  
UNICALE	
  
•  hNp://www.unicale.com/	
  
–  PHP-­‐based	
  simple	
  calendar	
  
	
  
•  Very	
  simple	
  
•  Data	
  in	
  local	
  files	
  
–  sshfs	
  
MaNermost	
  
•  hNp://www.maNermost.org/	
  
–  Open	
  source	
  Slack	
  alternaAve	
  
	
  
•  Most	
  hardest	
  ever	
  
•  Go	
  +	
  Node.js	
  (+	
  Ruby)	
  
–  go-­‐buildpack	
  
–  heroku-­‐buildpack-­‐apt	
  
•  with	
  many	
  workarounds	
  
•  PORT	
  
•  DATABASE_URL	
  /	
  VCAP_SERVICES	
  
MulA	
  vs	
  App-­‐Specific	
  Buildpack	
  
•  heroku-­‐buildpack-­‐mulA	
  
–  Easy	
  to	
  understand	
  
–  Less	
  flexible	
  
–  Bothersome	
  
•  Requires	
  addiAonal	
  file(s)	
  
•  App-­‐specific	
  buildpack	
  
–  More	
  flexibile	
  
–  Less	
  (mostly	
  no)	
  addiAonal	
  files	
  
–  Requires	
  to	
  be	
  maintained	
  outside	
  of	
  CF	
  
CommaFeed
•  hNps://www.commafeed.com/	
  
–  Java	
  /	
  Dropwizard-­‐based	
  feed	
  reader	
  
	
  
•  My	
  first	
  actual	
  java-­‐buildpack	
  study	
  
–  Know	
  so	
  many	
  features	
  in	
  java-­‐buildpack	
  
•  Finally	
  use	
  Java	
  Main	
  Container	
  and	
  Java	
  OpAons	
  
•  Configs	
  in	
  local	
  file	
  
•  PORT	
  
•  DATABASE_URL	
  
Three	
  Important	
  Points	
  for	
  Apps	
  
•  Must	
  have	
  dynamic	
  port	
  binding	
  
•  Should	
  avoid	
  configs	
  /	
  data	
  in	
  local	
  file	
  
•  BeNer	
  to	
  get	
  service	
  credenAals	
  from	
  env	
  
Service	
  CredenAals	
  
•  VCAP_SERVICES	
  
•  DATABASE_URL	
  
Seems	
  having	
  no	
  standard	
  format	
  
–  Ruby	
  on	
  Rails	
  
–  Node.js	
  
–  Golang	
  
–  PHP	
  (Pear)	
  
•  JDBC_URL	
  
Difficult	
  Things	
  
•  Problem	
  isolaAon	
  /	
  debugging	
  
–  staging	
  
–  starAng	
  
–  running	
  
•  Should	
  understand	
  various	
  languages	
  /	
  
frameworks	
  
•  Should	
  understand	
  usage	
  of	
  various	
  
buildpacks	
  
Some	
  Debugging	
  Tricks
•  Basic	
  
–  `cf	
  logs	
  <appname>`	
  in	
  another	
  terminal	
  
•  Staging	
  
–  JBP_LOG_LEVEL=DEBUG	
  
–  fork	
  buildpack	
  and	
  `set	
  –x`	
  
•  StarAng	
  
–  netcat	
  dummy	
  daemon	
  
–  (ssh	
  to	
  dea_ng	
  &	
  login	
  to	
  container)	
  
•  Running	
  /	
  Overall	
  
–  How	
  to	
  debug	
  the	
  Cloud	
  Foundry	
  Java	
  Buildpack
hNp://blog.anynines.com/debug-­‐cloud-­‐foundry-­‐java-­‐buildpack/	
  
Toughest	
  Thing	
  
•  Pressure	
  of	
  DAILY	
  post	
  
Good	
  things	
  
•  Experience	
  how	
  to	
  use	
  Cloud	
  Foundry	
  
–  (not	
  how	
  to	
  build	
  /	
  operate)	
  	
  
–  What	
  applicaAon	
  is	
  good	
  for	
  CF	
  
–  How	
  to	
  migrate	
  exisAng	
  applicaAons	
  to	
  CF	
  
–  Many	
  skills	
  for	
  trouble	
  shooAng	
  
A	
  Retrospect	
  
•  More	
  CF	
  recogniAon	
  
–  A	
  certain	
  result	
  
–  But	
  the	
  aNenAon	
  to	
  CF	
  in	
  Japan	
  is	
  sAll	
  not	
  
so	
  high	
  
•  Making	
  apps	
  run	
  on	
  CF	
  
–  Our	
  team	
  have	
  learned	
  a	
  lot	
  
•  New	
  features	
  desirable	
  for	
  CF	
  users	
  
–  Ease	
  of	
  debugging	
  for	
  dev	
  
–  Ops	
  requirements	
  is	
  yet	
  to	
  explore	
  
Finally	
  ..
•  Most	
  applicaAons	
  can	
  be	
  made	
  to	
  run	
  
on	
  Cloud	
  Foundry	
  
–  With	
  a	
  certain	
  effort	
  and	
  Ame	
  
•  I	
  want	
  MORE	
  apps	
  to	
  be	
  CF-­‐ready
Thank	
  you.	
  

Mais conteúdo relacionado

Mais procurados

Docker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよDocker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよYusuke Kon
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesSujay Pillai
 
Transforming Infrastructure into Code - Importing existing cloud resources u...
Transforming Infrastructure into Code  - Importing existing cloud resources u...Transforming Infrastructure into Code  - Importing existing cloud resources u...
Transforming Infrastructure into Code - Importing existing cloud resources u...Shih Oon Liong
 
Things I've learned working with Docker Support
Things I've learned working with Docker SupportThings I've learned working with Docker Support
Things I've learned working with Docker SupportSujay Pillai
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudIdeato
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesYevgeniy Brikman
 
Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016Chris Tankersley
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerIntroducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerAkihiro Nomura
 
AWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultAWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultGrzegorz Adamowicz
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Ontico
 
Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleRoman Rodomansky
 
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHPHands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHPDana Luther
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Go語言開發APM微服務在Kubernetes之經驗分享
Go語言開發APM微服務在Kubernetes之經驗分享Go語言開發APM微服務在Kubernetes之經驗分享
Go語言開發APM微服務在Kubernetes之經驗分享Te-Yen Liu
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codeAxel Quack
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in KubernetesMinhan Xia
 
From Docker to Production - ZendCon 2016
From Docker to Production - ZendCon 2016From Docker to Production - ZendCon 2016
From Docker to Production - ZendCon 2016Chris Tankersley
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPChris Tankersley
 
Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?GDX Wu
 

Mais procurados (20)

Docker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよDocker composeで開発環境をメンバに配布せよ
Docker composeで開発環境をメンバに配布せよ
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content Services
 
Transforming Infrastructure into Code - Importing existing cloud resources u...
Transforming Infrastructure into Code  - Importing existing cloud resources u...Transforming Infrastructure into Code  - Importing existing cloud resources u...
Transforming Infrastructure into Code - Importing existing cloud resources u...
 
Things I've learned working with Docker Support
Things I've learned working with Docker SupportThings I've learned working with Docker Support
Things I've learned working with Docker Support
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in Cloud
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modules
 
Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerIntroducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 Supercomputer
 
AWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultAWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp Vault
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)
 
Deploying Symfony2 app with Ansible
Deploying Symfony2 app with AnsibleDeploying Symfony2 app with Ansible
Deploying Symfony2 app with Ansible
 
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHPHands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
Hands on Docker - Launch your own LEMP or LAMP stack - SunshinePHP
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Go語言開發APM微服務在Kubernetes之經驗分享
Go語言開發APM微服務在Kubernetes之經驗分享Go語言開發APM微服務在Kubernetes之經驗分享
Go語言開發APM微服務在Kubernetes之經驗分享
 
猿でもわかる Helm
猿でもわかる Helm猿でもわかる Helm
猿でもわかる Helm
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
From Docker to Production - ZendCon 2016
From Docker to Production - ZendCon 2016From Docker to Production - ZendCon 2016
From Docker to Production - ZendCon 2016
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
 
Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?
 

Semelhante a Cloud Foundry 百日行 振り返り

Ceph Goes on Online at Qihoo 360 - Xuehan Xu
Ceph Goes on Online at Qihoo 360 - Xuehan XuCeph Goes on Online at Qihoo 360 - Xuehan Xu
Ceph Goes on Online at Qihoo 360 - Xuehan XuCeph Community
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Ceph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer SpotlightCeph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer SpotlightRed_Hat_Storage
 
Ceph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer SpotlightCeph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer SpotlightColleen Corrice
 
Ruby Performance - The Last Mile - RubyConf India 2016
Ruby Performance - The Last Mile - RubyConf India 2016Ruby Performance - The Last Mile - RubyConf India 2016
Ruby Performance - The Last Mile - RubyConf India 2016Charles Nutter
 
OpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning PairOpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning PairRed_Hat_Storage
 
DrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilityDrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilitycherryhillco
 
perlbrew yapcasia 2010
perlbrew yapcasia 2010perlbrew yapcasia 2010
perlbrew yapcasia 2010Kang-min Liu
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfes20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfesYohei Sasaki
 
Everything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLEverything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLMario-Leander Reimer
 
Everything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventureEverything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventureQAware GmbH
 
EKON27-FrameworksExpressiveness.pdf
EKON27-FrameworksExpressiveness.pdfEKON27-FrameworksExpressiveness.pdf
EKON27-FrameworksExpressiveness.pdfArnaud Bouchez
 
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd についてKubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd についてLINE Corporation
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
Great Tools Heavily Used In Japan, You Don't Know.
Great Tools Heavily Used In Japan, You Don't Know.Great Tools Heavily Used In Japan, You Don't Know.
Great Tools Heavily Used In Japan, You Don't Know.Junichi Ishida
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerJürgen Gutsch
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript ProgrammingYoshiki Shibukawa
 
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Cloud Native Day Tel Aviv
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"IT Event
 

Semelhante a Cloud Foundry 百日行 振り返り (20)

Ceph Goes on Online at Qihoo 360 - Xuehan Xu
Ceph Goes on Online at Qihoo 360 - Xuehan XuCeph Goes on Online at Qihoo 360 - Xuehan Xu
Ceph Goes on Online at Qihoo 360 - Xuehan Xu
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Ceph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer SpotlightCeph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer Spotlight
 
Ceph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer SpotlightCeph Deployment at Target: Customer Spotlight
Ceph Deployment at Target: Customer Spotlight
 
Ruby Performance - The Last Mile - RubyConf India 2016
Ruby Performance - The Last Mile - RubyConf India 2016Ruby Performance - The Last Mile - RubyConf India 2016
Ruby Performance - The Last Mile - RubyConf India 2016
 
OpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning PairOpenStack and Ceph: the Winning Pair
OpenStack and Ceph: the Winning Pair
 
DrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilityDrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalability
 
perlbrew yapcasia 2010
perlbrew yapcasia 2010perlbrew yapcasia 2010
perlbrew yapcasia 2010
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfes20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfes
 
Everything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPLEverything-as-code. A polyglot adventure. #DevoxxPL
Everything-as-code. A polyglot adventure. #DevoxxPL
 
Everything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventureEverything-as-code - A polyglot adventure
Everything-as-code - A polyglot adventure
 
EKON27-FrameworksExpressiveness.pdf
EKON27-FrameworksExpressiveness.pdfEKON27-FrameworksExpressiveness.pdf
EKON27-FrameworksExpressiveness.pdf
 
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd についてKubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Great Tools Heavily Used In Japan, You Don't Know.
Great Tools Heavily Used In Japan, You Don't Know.Great Tools Heavily Used In Japan, You Don't Know.
Great Tools Heavily Used In Japan, You Don't Know.
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
Expert JavaScript Programming
Expert JavaScript ProgrammingExpert JavaScript Programming
Expert JavaScript Programming
 
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 

Último

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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Último (20)

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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Cloud Foundry 百日行 振り返り

  • 1. Cloud  Foundry  100-­‐day  Challenge   -­‐  Deploy  100  OSS  apps  onto  CF   Noburou  TANIGUCHI   Nippon  Telegraph  and  Telephone  CorporaAon   /  Japan  Cloud  Foundry  Group  
  • 2. Who  I  am   •  Work  for  NTT   –  NTT:  Nippon  Telegraph  and  Telephone  Corp.   •  A  member  of  cfgrjp   –  cfgrjp:  Japan  Cloud  Foudry  Group   •  A  CF-­‐related  work   –  Cheap  Update  Buildpack   hNps://bitbucket.org/nota-­‐ja/cheap-­‐update-­‐buildpack  
  • 3. Cloud  Foundry  100-­‐day  Challenge   •  hNp://blog.cloudfoundry.gr.jp/search/ label/百日行   •  「百日行」in  Japanese   –  百  (hyaku):  100   –  日  (nichi):  day   –  行  (gyou):  discipline,  esp.  in  religional  context  
  • 4. Cloud  Foundry  100-­‐day  Challenge   •  What   –  Deploy  100  OSS  apps  onto  CF   –  One  app  (and  blog  post)  per  (business)  day   –  Since  2015/06/04   –  100  posts  finished  at  2015/11/16   •  6  core  writers  +  3  guest  writers   •  All  in  Japanese  
  • 5. Cloud  Foundry  100-­‐day  Challenge   •  Why   –  More  CF  recogniAon  in  Japan   –  Learn  how  to  make  apps  run  on  CF   –  Explore  new  features  desirable  for  CF  users  
  • 6. Numbers   •  Success  /  Failure   •  Buildpacks   •  Services   •  (ModificaAons)
  • 7. Numbers:  Success  /  Failure   •  OK:  97   •  NG:  3   –  BuNerfly   –  Milkode   –  Zound  
  • 8. NG:  BuNerfly   •  hNps://github.com/paradoxxxzero/ buNerfly   –  Web-­‐based  terminal   •  cf  push  =>  running   •  Requires  password  of  user  'vcap'  ..  
  • 9. NG:  Milkode   •  hNps://github.com/ongaeshi/milkode   –  Source  code  search  engine  with  Web  UI   •  Runs  on  Heroku   •  Failed  to  stage  on  CF   –  failed  compiling  "rroonga"  gem's  naAve  extension   •  Need  to  compile  some  binaries  against  cflinuxfs2   environment   •  May  run  if  we  have  enough  Ame  
  • 10. NG:  Zound   •  hNps://github.com/gre/zound   –  Real  Ame  audio  streaming  (experimental)   •  cf  push  =>  running   •  Needs  hardware  audio  device  for   realAme  audio  rendering  
  • 11. Numbers:  Buildpacks   •  Total:  113   –  Binary  (Null):  1   –  Go:  4   –  Java:  8   –  Node.js:  24   –  PHP:  22   –  Python:  3   –  Ruby:  21   –  StaAcfile:  16   –  app-­‐specific:  4   –  heroku-­‐buildpack-­‐apt:  4   –  heroku-­‐buildpack-­‐mulA:  6  
  • 12. Numbers:  Services   •  Total:  52   –  MongoDB:  8   –  MySQL:  27   •  (incl.  ClearDB:  1)   –  PostgreSQL:  12   –  Redis:  3   –  SendGrid:  1   •  non-­‐CF  services   –  MongoDB:  1   –  PostgreSQL:  2   •  apps  using  mulAple  services:  3  
  • 13. Some  Experience   •  EtherSheet   •  Jenkins   •  SugarCRM   •  Feedbin   •  UNICALE   •  MaNermost   •  CommaFeed  
  • 14. EtherSheet   •  hNps://github.com/ethersheet-­‐ collecAve/EtherSheet/   –  Web-­‐based  spreadsheet   •  PORT   •  DATABASE_URL  
  • 15. Jenkins   •  hNp://jenkins-­‐ci.org/   –  Most  popular  CI  tool   •  Very  easy  with  jenkins-­‐buildpack   •  Configs  in  local  file     –  Jenkins  Job  Builder   –  (Database  plugin)   •  Master  /  Slave  composiAon   •  =>  Testbed  
  • 16. SugarCRM   •  hNp://www.sugarcrm.com/   –  Well-­‐known  open  source  CRM   •  PHP  extensions   •  Custom  Apache  seongs   •  Configs  in  local  files   –  Redeploy  
  • 17. Feedbin   •  hNps://feedbin.com/   –  Ruby  on  Rails-­‐based  feed  reader   •  Complex   –  RDBMS   –  Redis   –  (Memcached)   –  Honeybadger   –  worker  processes   •  SSL  customizability   •  StaAc  file  serving  customizability   •  Gemfile.lock  generaAon  
  • 18. UNICALE   •  hNp://www.unicale.com/   –  PHP-­‐based  simple  calendar     •  Very  simple   •  Data  in  local  files   –  sshfs  
  • 19. MaNermost   •  hNp://www.maNermost.org/   –  Open  source  Slack  alternaAve     •  Most  hardest  ever   •  Go  +  Node.js  (+  Ruby)   –  go-­‐buildpack   –  heroku-­‐buildpack-­‐apt   •  with  many  workarounds   •  PORT   •  DATABASE_URL  /  VCAP_SERVICES  
  • 20. MulA  vs  App-­‐Specific  Buildpack   •  heroku-­‐buildpack-­‐mulA   –  Easy  to  understand   –  Less  flexible   –  Bothersome   •  Requires  addiAonal  file(s)   •  App-­‐specific  buildpack   –  More  flexibile   –  Less  (mostly  no)  addiAonal  files   –  Requires  to  be  maintained  outside  of  CF  
  • 21. CommaFeed •  hNps://www.commafeed.com/   –  Java  /  Dropwizard-­‐based  feed  reader     •  My  first  actual  java-­‐buildpack  study   –  Know  so  many  features  in  java-­‐buildpack   •  Finally  use  Java  Main  Container  and  Java  OpAons   •  Configs  in  local  file   •  PORT   •  DATABASE_URL  
  • 22. Three  Important  Points  for  Apps   •  Must  have  dynamic  port  binding   •  Should  avoid  configs  /  data  in  local  file   •  BeNer  to  get  service  credenAals  from  env  
  • 23. Service  CredenAals   •  VCAP_SERVICES   •  DATABASE_URL   Seems  having  no  standard  format   –  Ruby  on  Rails   –  Node.js   –  Golang   –  PHP  (Pear)   •  JDBC_URL  
  • 24. Difficult  Things   •  Problem  isolaAon  /  debugging   –  staging   –  starAng   –  running   •  Should  understand  various  languages  /   frameworks   •  Should  understand  usage  of  various   buildpacks  
  • 25. Some  Debugging  Tricks •  Basic   –  `cf  logs  <appname>`  in  another  terminal   •  Staging   –  JBP_LOG_LEVEL=DEBUG   –  fork  buildpack  and  `set  –x`   •  StarAng   –  netcat  dummy  daemon   –  (ssh  to  dea_ng  &  login  to  container)   •  Running  /  Overall   –  How  to  debug  the  Cloud  Foundry  Java  Buildpack hNp://blog.anynines.com/debug-­‐cloud-­‐foundry-­‐java-­‐buildpack/  
  • 26. Toughest  Thing   •  Pressure  of  DAILY  post  
  • 27. Good  things   •  Experience  how  to  use  Cloud  Foundry   –  (not  how  to  build  /  operate)     –  What  applicaAon  is  good  for  CF   –  How  to  migrate  exisAng  applicaAons  to  CF   –  Many  skills  for  trouble  shooAng  
  • 28. A  Retrospect   •  More  CF  recogniAon   –  A  certain  result   –  But  the  aNenAon  to  CF  in  Japan  is  sAll  not   so  high   •  Making  apps  run  on  CF   –  Our  team  have  learned  a  lot   •  New  features  desirable  for  CF  users   –  Ease  of  debugging  for  dev   –  Ops  requirements  is  yet  to  explore  
  • 29. Finally  .. •  Most  applicaAons  can  be  made  to  run   on  Cloud  Foundry   –  With  a  certain  effort  and  Ame   •  I  want  MORE  apps  to  be  CF-­‐ready