SlideShare a Scribd company logo

Apcera Case Study: The selection of the Go language

Derek Collison
Derek CollisonFounder & CEO at Apcera

This is from a presentation at GoCon Japan on April 13th, 2013.

Apcera Case Study: The selection of the Go language

Derek Collison
Derek CollisonFounder & CEO at Apcera

This is from a presentation at GoCon Japan on April 13th, 2013.

Apcera Case Study: The selection of the Go language

1 of 28

Recommended

GoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraGoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraDerek Collison
 
NATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsNATS - A new nervous system for distributed cloud platforms
NATS - A new nervous system for distributed cloud platformsDerek Collison
 
High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014High Performance Systems in Go - GopherCon 2014
High Performance Systems in Go - GopherCon 2014Derek Collison
 
What's beyond Virtualization - The Future of Cloud Platforms
What's beyond Virtualization - The Future of Cloud PlatformsWhat's beyond Virtualization - The Future of Cloud Platforms
What's beyond Virtualization - The Future of Cloud PlatformsDerek Collison
 
Cat-Herd's Crook
Cat-Herd's CrookCat-Herd's Crook
Cat-Herd's Crookemptysquare
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scalesOren Eini
 
Python performance profiling
Python performance profilingPython performance profiling
Python performance profilingJon Haddad
 

More Related Content

What's hot

Lessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBLessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBOren Eini
 
State of the CLI- Kat Marchan
State of the CLI- Kat MarchanState of the CLI- Kat Marchan
State of the CLI- Kat MarchanNodejsFoundation
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...Gaetano Giunta
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoAgile Connect®
 
CFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful CodeCFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful Codeindiver
 
Powerful Automation Made Simple
Powerful Automation Made SimplePowerful Automation Made Simple
Powerful Automation Made SimpleGaetano Giunta
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java DeveloperRory Preddy
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish DatabaseGaetano Giunta
 
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemDownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemFITC
 
Reactive All the Way Down the Stack
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the StackSteve Pember
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksFITC
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX, Inc.
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesSteve Pember
 
Altitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/placeAltitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/placeFastly
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...Lucas Jellema
 

What's hot (20)

RavenDB 4.0
RavenDB 4.0RavenDB 4.0
RavenDB 4.0
 
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBLessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDB
 
State of the CLI- Kat Marchan
State of the CLI- Kat MarchanState of the CLI- Kat Marchan
State of the CLI- Kat Marchan
 
Migrating big data
Migrating big dataMigrating big data
Migrating big data
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo Piairo
 
CFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful CodeCFWheels - Pragmatic, Beautiful Code
CFWheels - Pragmatic, Beautiful Code
 
Powerful Automation Made Simple
Powerful Automation Made SimplePowerful Automation Made Simple
Powerful Automation Made Simple
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java Developer
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemDownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
 
Reactive All the Way Down the Stack
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the Stack
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & Acceleration
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving Microservices
 
Be DevOps Ready
Be DevOps ReadyBe DevOps Ready
Be DevOps Ready
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
Altitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/placeAltitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/place
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
 

Viewers also liked

MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...
MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...
MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...baggiojoset
 
Docker & Apcera Better Together
Docker & Apcera Better TogetherDocker & Apcera Better Together
Docker & Apcera Better TogetherSimone Morellato
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4Takakiyo Tanaka
 
Case control studies..skp
Case control studies..skpCase control studies..skp
Case control studies..skpsudhiramkcg
 
Selection & Recruitment in HRM
Selection & Recruitment in HRMSelection & Recruitment in HRM
Selection & Recruitment in HRMIshan Parekh
 
Recruitment with case study on bhel
Recruitment with case study on bhelRecruitment with case study on bhel
Recruitment with case study on bhelChhatrapal Surve
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
Hiring and selection process: HBR case Study
Hiring and selection process: HBR case StudyHiring and selection process: HBR case Study
Hiring and selection process: HBR case StudyImran Ghaznavi
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Takakiyo Tanaka
 
Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Kenichi Hoshi
 
Hrm case study
Hrm case studyHrm case study
Hrm case studyAmit Kumar
 
Ibm and ias 1
Ibm and ias 1Ibm and ias 1
Ibm and ias 1ravi kant
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語GoYoshifumi Yamaguchi
 

Viewers also liked (14)

Gocon2013
Gocon2013Gocon2013
Gocon2013
 
MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...
MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...
MATERIAL SELECTION CASE STUDY FELT REUSABLE SURFACE INSULATION (FRSI) OF S...
 
Docker & Apcera Better Together
Docker & Apcera Better TogetherDocker & Apcera Better Together
Docker & Apcera Better Together
 
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4
 
Case control studies..skp
Case control studies..skpCase control studies..skp
Case control studies..skp
 
Selection & Recruitment in HRM
Selection & Recruitment in HRMSelection & Recruitment in HRM
Selection & Recruitment in HRM
 
Recruitment with case study on bhel
Recruitment with case study on bhelRecruitment with case study on bhel
Recruitment with case study on bhel
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
Hiring and selection process: HBR case Study
Hiring and selection process: HBR case StudyHiring and selection process: HBR case Study
Hiring and selection process: HBR case Study
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 
Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか?
 
Hrm case study
Hrm case studyHrm case study
Hrm case study
 
Ibm and ias 1
Ibm and ias 1Ibm and ias 1
Ibm and ias 1
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 

Similar to Apcera Case Study: The selection of the Go language

Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...GreeceJS
 
The "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsThe "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsErik Osterman
 
Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)Konstantin Gredeskoul
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?Kasra Khosravi
 
GoLang - Why It Matters
GoLang -  Why It MattersGoLang -  Why It Matters
GoLang - Why It Mattersrahul
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015Christopher Curtin
 
Rich Archbold, Senior Director of Engineering, Intercom - Run less software
Rich Archbold,  Senior Director of Engineering, Intercom - Run less softwareRich Archbold,  Senior Director of Engineering, Intercom - Run less software
Rich Archbold, Senior Director of Engineering, Intercom - Run less softwareTechsylvania
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technologyEldos Kuriakose
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationPaul Pajo
 
[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
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 
How Gozengo Implemented a Continuous Deployment Culture from Day One
How Gozengo Implemented a Continuous Deployment Culture from Day OneHow Gozengo Implemented a Continuous Deployment Culture from Day One
How Gozengo Implemented a Continuous Deployment Culture from Day OneSauce Labs
 
Gozengo sauce presentation
Gozengo sauce presentationGozengo sauce presentation
Gozengo sauce presentationDaniel Straus
 
Gluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial IntroductionGluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial IntroductionAdrian Cockcroft
 
Continuous Delivery: The New Normal. London Event.
Continuous Delivery: The New Normal. London Event. Continuous Delivery: The New Normal. London Event.
Continuous Delivery: The New Normal. London Event. Perforce
 
corporateJavascript
corporateJavascriptcorporateJavascript
corporateJavascriptclimboid
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Travis Reeder
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Richard Bullington-McGuire
 

Similar to Apcera Case Study: The selection of the Go language (20)

Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
The "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsThe "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/Ops
 
Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)Enterprise Architectures with Ruby (and Rails)
Enterprise Architectures with Ruby (and Rails)
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
GoLang - Why It Matters
GoLang -  Why It MattersGoLang -  Why It Matters
GoLang - Why It Matters
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Rich Archbold, Senior Director of Engineering, Intercom - Run less software
Rich Archbold,  Senior Director of Engineering, Intercom - Run less softwareRich Archbold,  Senior Director of Engineering, Intercom - Run less software
Rich Archbold, Senior Director of Engineering, Intercom - Run less software
 
OSGI,
OSGI,OSGI,
OSGI,
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
[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...
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 
How Gozengo Implemented a Continuous Deployment Culture from Day One
How Gozengo Implemented a Continuous Deployment Culture from Day OneHow Gozengo Implemented a Continuous Deployment Culture from Day One
How Gozengo Implemented a Continuous Deployment Culture from Day One
 
Gozengo sauce presentation
Gozengo sauce presentationGozengo sauce presentation
Gozengo sauce presentation
 
Gluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial IntroductionGluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
 
Continuous Delivery: The New Normal. London Event.
Continuous Delivery: The New Normal. London Event. Continuous Delivery: The New Normal. London Event.
Continuous Delivery: The New Normal. London Event.
 
corporateJavascript
corporateJavascriptcorporateJavascript
corporateJavascript
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 

More from Derek Collison

Distributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDistributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDerek Collison
 
Cloud Foundry: Inside the Machine
Cloud Foundry: Inside the MachineCloud Foundry: Inside the Machine
Cloud Foundry: Inside the MachineDerek Collison
 
Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessDerek Collison
 
Ruby conf2010 OpenPaaS
Ruby conf2010 OpenPaaSRuby conf2010 OpenPaaS
Ruby conf2010 OpenPaaSDerek Collison
 

More from Derek Collison (6)

Distributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDistributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud Foundry
 
Cloud Foundry: Inside the Machine
Cloud Foundry: Inside the MachineCloud Foundry: Inside the Machine
Cloud Foundry: Inside the Machine
 
RubyWorld 2011
RubyWorld 2011RubyWorld 2011
RubyWorld 2011
 
OSCON 2011
OSCON 2011OSCON 2011
OSCON 2011
 
Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for Success
 
Ruby conf2010 OpenPaaS
Ruby conf2010 OpenPaaSRuby conf2010 OpenPaaS
Ruby conf2010 OpenPaaS
 

Recently uploaded

9C Monthly Newsletter - JAN 2024
9C Monthly Newsletter - JAN 20249C Monthly Newsletter - JAN 2024
9C Monthly Newsletter - JAN 2024PublishingTeam
 
3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native Observability3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native ObservabilityEric D. Schabell
 
Disease prediction system using python.pptx
Disease prediction system using python.pptxDisease prediction system using python.pptx
Disease prediction system using python.pptxKeshavRaoPilli
 
Fundamentals of BI Report Testing - Module 7
Fundamentals of BI Report Testing - Module 7Fundamentals of BI Report Testing - Module 7
Fundamentals of BI Report Testing - Module 7MichaelCalabrese20
 
Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...
Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...
Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...corphedge274
 
Air AI + Caleb Maddix: A Symphony of Innovation
Air AI + Caleb Maddix: A Symphony of InnovationAir AI + Caleb Maddix: A Symphony of Innovation
Air AI + Caleb Maddix: A Symphony of InnovationCaleb Maddix
 
Forms for All: Building Accessibility into UiPath App Design
Forms for All: Building Accessibility into UiPath App DesignForms for All: Building Accessibility into UiPath App Design
Forms for All: Building Accessibility into UiPath App DesignDianaGray10
 
Cricut Drivers Image.pdf
Cricut Drivers Image.pdfCricut Drivers Image.pdf
Cricut Drivers Image.pdfCricut drivers
 
ITSP Lesson 6 - Information Privacy.pdf
ITSP Lesson 6 - Information Privacy.pdfITSP Lesson 6 - Information Privacy.pdf
ITSP Lesson 6 - Information Privacy.pdfROWELL MARQUINA
 
Fundamentals of BI Report Testing - Module 5
Fundamentals of BI Report Testing - Module 5Fundamentals of BI Report Testing - Module 5
Fundamentals of BI Report Testing - Module 5MichaelCalabrese20
 
Introduction to FORBLUE FLEMION F-9060.pptx
Introduction to FORBLUE FLEMION F-9060.pptxIntroduction to FORBLUE FLEMION F-9060.pptx
Introduction to FORBLUE FLEMION F-9060.pptxAGC Chemicals Americas
 
Analysis of algorithms
Analysis of algorithmsAnalysis of algorithms
Analysis of algorithmsAsen Bozhilov
 
Webinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project Management
Webinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project ManagementWebinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project Management
Webinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project ManagementInflectra
 
Microsoft Visual Studio vs Visio: 2023 Showdown
Microsoft Visual Studio vs Visio: 2023 ShowdownMicrosoft Visual Studio vs Visio: 2023 Showdown
Microsoft Visual Studio vs Visio: 2023 ShowdownDirect Deals, LLC
 
Molded Breakers.docx
Molded Breakers.docxMolded Breakers.docx
Molded Breakers.docxPitiakin
 
A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...
A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...
A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...HakTrak Cybersecurity Squad
 
Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...
Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...
Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...DianaGray10
 
The (un)surprising truth about DevOps Culture, by Manuel Pais
The (un)surprising truth about DevOps Culture, by Manuel PaisThe (un)surprising truth about DevOps Culture, by Manuel Pais
The (un)surprising truth about DevOps Culture, by Manuel PaisAgile Connect®
 

Recently uploaded (20)

9C Monthly Newsletter - JAN 2024
9C Monthly Newsletter - JAN 20249C Monthly Newsletter - JAN 2024
9C Monthly Newsletter - JAN 2024
 
3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native Observability3 Pitfalls Everyone Should Avoid with Cloud Native Observability
3 Pitfalls Everyone Should Avoid with Cloud Native Observability
 
IPHONE REPAIR OXFORD.pdf
IPHONE REPAIR OXFORD.pdfIPHONE REPAIR OXFORD.pdf
IPHONE REPAIR OXFORD.pdf
 
Disease prediction system using python.pptx
Disease prediction system using python.pptxDisease prediction system using python.pptx
Disease prediction system using python.pptx
 
Fundamentals of BI Report Testing - Module 7
Fundamentals of BI Report Testing - Module 7Fundamentals of BI Report Testing - Module 7
Fundamentals of BI Report Testing - Module 7
 
Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...
Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...
Empowering Currency Risk Mastery: Key Features of CorpHedge FX Management Sof...
 
Air AI + Caleb Maddix: A Symphony of Innovation
Air AI + Caleb Maddix: A Symphony of InnovationAir AI + Caleb Maddix: A Symphony of Innovation
Air AI + Caleb Maddix: A Symphony of Innovation
 
How to Hire a DevOps Consultant in 2024.pdf
How to Hire a DevOps Consultant in 2024.pdfHow to Hire a DevOps Consultant in 2024.pdf
How to Hire a DevOps Consultant in 2024.pdf
 
Forms for All: Building Accessibility into UiPath App Design
Forms for All: Building Accessibility into UiPath App DesignForms for All: Building Accessibility into UiPath App Design
Forms for All: Building Accessibility into UiPath App Design
 
Cricut Drivers Image.pdf
Cricut Drivers Image.pdfCricut Drivers Image.pdf
Cricut Drivers Image.pdf
 
ITSP Lesson 6 - Information Privacy.pdf
ITSP Lesson 6 - Information Privacy.pdfITSP Lesson 6 - Information Privacy.pdf
ITSP Lesson 6 - Information Privacy.pdf
 
Fundamentals of BI Report Testing - Module 5
Fundamentals of BI Report Testing - Module 5Fundamentals of BI Report Testing - Module 5
Fundamentals of BI Report Testing - Module 5
 
Introduction to FORBLUE FLEMION F-9060.pptx
Introduction to FORBLUE FLEMION F-9060.pptxIntroduction to FORBLUE FLEMION F-9060.pptx
Introduction to FORBLUE FLEMION F-9060.pptx
 
Analysis of algorithms
Analysis of algorithmsAnalysis of algorithms
Analysis of algorithms
 
Webinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project Management
Webinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project ManagementWebinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project Management
Webinar: SpiraTeam - A Jira Alternative to Revolutionize Your Project Management
 
Microsoft Visual Studio vs Visio: 2023 Showdown
Microsoft Visual Studio vs Visio: 2023 ShowdownMicrosoft Visual Studio vs Visio: 2023 Showdown
Microsoft Visual Studio vs Visio: 2023 Showdown
 
Molded Breakers.docx
Molded Breakers.docxMolded Breakers.docx
Molded Breakers.docx
 
A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...
A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...
A Deep Dive into Exploiting SaaS-Based Company Partnership Management Dashboa...
 
Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...
Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...
Career Talk Series: Session 1 - Transitioning from RPA to AI automation profe...
 
The (un)surprising truth about DevOps Culture, by Manuel Pais
The (un)surprising truth about DevOps Culture, by Manuel PaisThe (un)surprising truth about DevOps Culture, by Manuel Pais
The (un)surprising truth about DevOps Culture, by Manuel Pais
 

Apcera Case Study: The selection of the Go language

  • 1. + apcera next generation cloud platform A Case Study: The Selection of Go at Apcera Go Conference Japan April 13, 2013
  • 2. Quick About Derek Collison Designed and Built CloudFoundry Founded March 2012 Former Google, VMware, TIBCO San Francisco, CA Distributed Systems Building Next Generation Cloud Platform Founder of Apcera, Inc. Investors Kleiner Perkins @derekcollison Andreesen Horowitz derek@apcera.com True Ventures Data Collective @apcera www.apcera.com
  • 3. How did we get here?
  • 4. CloudFoundry Built using Ruby Ruby the “Good” Great Language Easy Development Synchronous programming model Ruby the “Not so Good” Dependency Management Deployment Issues No builtin Eventing Model Lacks good support for Concurrency
  • 5. EventMachine Eventing in Ruby Asynchronous IO, Timers, etc. EM + Fibers, CF process scalability model Fragile Complex C++ code base, limited community support Complex code base Critical to process design patterns for CloudFoundry Contributed to Dependency management issues
  • 6. I still <3 Ruby
  • 8. Apcera Choice Criteria Good platform support (Linux, Windows, Mac, SmartOs) Good dependency model, preferred builtin Good support for Concurrency primitives Good support for Large Scale Distributed Systems Customer neutral Not Java Not .Net
  • 10. Node.js Good V8 runtime from Google Evented system by design Javascript based All programmers will know Javascript. Not so Good Runtime Dependency Based on Javascript Function scoping Callback Spaghetti Dependency via external NPM (NPM is good)
  • 11. Go Good Designed by amazing team: Rob Pike, Ken Thompson, Robert Griesemer Synchronous programming model Concurrency is a first class citizen Static executables - No dependencies (Except ARCH) Google Goodies - Builtin Testing, Docs, Benchmarks, Flags, etc. Good platform support Not so Good New Language New Standard Libraries Immature GC and Scheduler Google starting to kill off projects, would Go be on that list?
  • 12. Team selected Go in 15 minutes
  • 14. Go Deeper Go Routines and Channels Well thought out concurrency primitives, based on variant of CSP. Can take advantage of Multi-Core (GOMAXPROCS) Statically Typed, compiled language Inference Interfaces - Again well thought out design Compiles fast Easy to learn - Don’t need a large talent pool Decent Standard Library - IO, FS, Network, HTTP, Json GC, but Go has real STACKS!
  • 15. Why I Would Choose Go? Stacks This is a big deal Relieves pressure from the GC Gives back power to the developer I spent 3+ months designing this in C in the 90s Go also allows interior pointers in structs to also relieve pressure Statically linked executables Deployment is “scp binary <target>” Easy to learn Scale teams with Java, C++, Ruby or Python experience Small Standard library, also easy to pick up in a week or so
  • 16. Go Stacks? Why should you really care? Relieves pressure on GC Performance Stability - GC pauses Move from GC to stack easily, no GC hit Yet, can auto-promote What do you mean?
  • 17. My First Go Program
  • 18. Not all Roses, there are issues
  • 19. Not all Roses Import model lacks support for versioning import “github.com/apcera/nats” - Which version do you get? We test for version constraints in pkg that imports Crypto is not production ready Proclaimed by a Go developer We built our own high performance mappings to OpenSSL Static executables break when linking Being Fixed in 1.1 I believe String <-> Byte causes copies Garbage Collector and Scheduler still young.
  • 20. Not all Roses - Cont’d Logging library We wrote our own - Designed by former Twitter Ops team member SQL Lack of error promotion and error handling Designed our own Enterprise grade ORM + drivers HTTP Server I think everyone has written their own by now Maps are slow Being fixed in 1.1 I believe We wrote our own high performance ones for Go NATS server
  • 22. Go was right choice for Apcera
  • 23. More will make same decision!
  • 25. Go Summary Great Systems language from Google Concurrency is first class citizen Testing, Docs, Benchmarks are builtin Standard library is fairly complete and good enough Easy to Learn - Go to www.golang.org Static Executables Stacks - You will thank me later. And Most Important Great velocity as Go moves from 1.0 -> 1.1 and beyond
  • 28. apcera next generation cloud platform www.apcera.com info@apcera.com