SlideShare a Scribd company logo
1 of 20
Using Service Oriented Operation and
   Provisioning at Financial Times

            Emeka Mosanya
            emeka@mosanya.net
             @EmekaMosanya
In case you didn't know...

“The Financial Times (FT) is one of the world’s
leading business news and information organisations,
recognised internationally for its authority, integrity
and accuracy."




        … it is also one of the few newspapers making
        money with online subscription!
Our goal: Reduce Cycle Time



                    Up to 6 weeks for a release
Business
                                                  Customers
Idea




               We need to make this shorter!

              We want to release several time
                  a day without stress...
Problem: Long Feedback Loop

Workstation       CI   QA    INT      STAGING        PROD

              $




                                                     $$$

              ●No environment like PROD
              ●Manual Configuration

              ●Not enough environments




        Each deployment to PROD is an adventure...
Problem: Organizational Frictions


              Release Management




                    Network


                 Create Machine




    ●Dilution of Responsibility    Too Many
    ●Misalignment of Priority
                                   Gates!
Our Vision


                                 Release




                                 Network


                                 Create VM




                               Replace gates
Locally / VMWare / AWS / ...   with automation
Deploy Services into Domains
                              membership.test.cloud.ft.com

controller-service-1.0.0



access-service-2.3.5



gateway-service-1.2.3




Service Definition = Puppet              Domain
Modules and More
Service Definition = Puppet Modules

access-service-2.3.5
                                                              RPM

                                            access
        httpd          nagios

                                    Nodes            Config
       tomcat          splunk

                                        Application


   Versioned Module library


 Each service exists in its own Puppet environment
Everything you need to install a service is encapsulated in a
single versioned artifact excepted global configuration.
Puppet Master is part of a Service
                                 membership.test.cloud.ft.com



 controller-service-1.0.0         Puppet
                                             DNS1      Nagios
                                  Master



                                             DNS2
 ●One Puppet Mater per Domain
 ●Contains “Mandatory” servers




No Sacred Cow!

… but we need a bootstrap
Bootstrap
             We start with vanilla VM including a Base RPM


ftppm101-lvpr-uk-t   ftcloud init standalone 
                     controller-puppet.membership.test.cloud.ft.com 
                     controller-service-1.0.0 
                     access-service-2.3.5 
    Base RPM
                     gateway-1.2.3


ftaps104-lvpr-uk-t
                     ftcloud init client 
                     access-app.membership.test.cloud.ft.com 
                     ftppm101-lvpr-uk-t

    Base RPM
                      From vanilla VM to a running environment in a
                      few shell commands...
Thin Integration with Infrastructure

controller-service-1.0.0
                           Automatic
                           during build
                                          Vagrantfile
access-service-2.3.5

                                          OVF

gateway-service-1.2.3                     AWS Cloud
                                          Formation
Module Path

●   /etc/puppet/services              modulepath:
                          RPM
    ●   controller/                   /etc/puppet/service/
         –   controller               $environment
         –   httpd
         –   tomcat
         –   …
                          RPM
    ●   access/
         –   access
         –   Tomcat
         –   ...
Deploy Services into Domains (2)
                           membership.test.cloud.ft.com

controller-service-1.0.0
                            Puppet
                            Master


access-service-2.3.5



gateway-service-1.2.3
Service Definition (2)

access-service-2.3.5
                                                              RPM

                                            access
       httpd           nagios

                                    Nodes            Config
       tomcat          splunk

                                        Application


   Versioned Module library



                What about Nodes and Config?
We don't use ENC
Service Definitions should contain everything we
need to deploy a service... so node definition
cannot be external!

                   ftaps123-lvpr-uk-p

             ENC                     Meaningful name in DNS


        ●class A                  access-app-01
        ●class B




            Node files defined at service level
Configuration with Hiera
Slight customization of the YAML backend to
use multiple configuration directories.


                               Facters:
                               Certname
                               Domain
                               Datacenter
                               Country
                               Environment (Dev, Test, Prod)


               Domain Level

               Service Level

               Global Config
Global Configuration Install
                              membership.test.cloud.ft.com


global-config-1.3.4
                      RPM      Puppet
                               Master




Global Config: Company Wide
Service Config: per service
Local Config: for override


                                         Domain
That's all Folks

●   Reducing bottlenecks:
    ●   Everything is a service
    ●   Team fully control service deployment
    ●   No sacred cow: Puppet Master is a service


●   Reducing Risk
    ●   Everything is versioned
    ●   Automatic deployment is the same everywhere
    ●   Responsibilities well defined
FT is recruiting
                           The Team          @FTcareers

"Jussi Heinonen" <jussi.heinonen@ft.com>
"Peter Hehn" <peter.hehn@ft.com>
"Pete Houghton" <pete.houghton@ft.com>
"Chris Malins" <chris.malins@ft.com>
"Nick Haddock" <nick.haddock@ft.com>
"Ashley de Souza" <ashley.de.souza@ft.com>
"David Reay" <David.Reay@ft.com>
"Richard Moran" <richard.moran@ft.com>
"Santanu Das" <santanu.das@ft.com>
"Barry Ridout" <barry.ridout@ft.com>
"Sujith Santhan" <sujith.santhan@ft.com>
Questions




  ?

More Related Content

What's hot

FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법Open Source Consulting
 
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...Novell
 
제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝Tommy Lee
 
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBITOpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBITOpenNebula Project
 
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebula Project
 
Commication Framework in OpenStack
Commication Framework in OpenStackCommication Framework in OpenStack
Commication Framework in OpenStackSean Chang
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackNTT Communications Technology Development
 
Building a Two Node SLES 11 SP2 Linux Cluster with VMware
Building a Two Node SLES 11 SP2 Linux Cluster with VMwareBuilding a Two Node SLES 11 SP2 Linux Cluster with VMware
Building a Two Node SLES 11 SP2 Linux Cluster with VMwaregeekswing
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
Visão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e LicenciamentoVisão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e LicenciamentoLorscheider Santiago
 
C mode class
C mode classC mode class
C mode classAccenture
 
Rhel cluster basics 3
Rhel cluster basics   3Rhel cluster basics   3
Rhel cluster basics 3Manoj Singh
 
From swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container serviceFrom swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container serviceSpyros Trigazis
 
Fedora 15 para sysadmins
Fedora 15 para sysadminsFedora 15 para sysadmins
Fedora 15 para sysadminsapsegundo
 
Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network 09...
Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network  09...Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network  09...
Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network 09...Cary Hayward
 

What's hot (20)

FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
 
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
 
Weblogic cluster
Weblogic clusterWeblogic cluster
Weblogic cluster
 
제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝제2회난공불락 오픈소스 세미나 커널튜닝
제2회난공불락 오픈소스 세미나 커널튜닝
 
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBITOpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
OpenNebulaConf 2016 - The DRBD SDS for OpenNebula by Philipp Reisner, LINBIT
 
XPDS16: Xen Development Update
XPDS16: Xen Development UpdateXPDS16: Xen Development Update
XPDS16: Xen Development Update
 
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
 
Commication Framework in OpenStack
Commication Framework in OpenStackCommication Framework in OpenStack
Commication Framework in OpenStack
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
 
Building a Two Node SLES 11 SP2 Linux Cluster with VMware
Building a Two Node SLES 11 SP2 Linux Cluster with VMwareBuilding a Two Node SLES 11 SP2 Linux Cluster with VMware
Building a Two Node SLES 11 SP2 Linux Cluster with VMware
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Visão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e LicenciamentoVisão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
 
RedHat Cluster!
RedHat Cluster!RedHat Cluster!
RedHat Cluster!
 
C mode class
C mode classC mode class
C mode class
 
jtf2016-mom
jtf2016-momjtf2016-mom
jtf2016-mom
 
Rhel cluster basics 3
Rhel cluster basics   3Rhel cluster basics   3
Rhel cluster basics 3
 
From swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container serviceFrom swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container service
 
Fedora 15 para sysadmins
Fedora 15 para sysadminsFedora 15 para sysadmins
Fedora 15 para sysadmins
 
Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network 09...
Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network  09...Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network  09...
Power of Open SDN- The Vendor Neutral Approach to Optimizing Your Network 09...
 

Similar to Using Service Oriented Operation and Provisioning at Financial Times

Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricSurat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricJitendra Bafna
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingStanislav Osipov
 
Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Jakub Hajek
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Puppet
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever buildingEdmond Yu
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsRaul Leite
 
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...Codemotion
 
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with PrometheusOpenStack Korea Community
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesHiroshi SHIBATA
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"Volker Linz
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)DECK36
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Yongyoon Shin
 
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICESCENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICESNazmul Hossain Rakib
 
Building Bizweb Microservices with Docker
Building Bizweb Microservices with DockerBuilding Bizweb Microservices with Docker
Building Bizweb Microservices with DockerKhôi Nguyễn Minh
 
Kubernetes Navigation Stories – DevOpsStage 2019, Kyiv
Kubernetes Navigation Stories – DevOpsStage 2019, KyivKubernetes Navigation Stories – DevOpsStage 2019, Kyiv
Kubernetes Navigation Stories – DevOpsStage 2019, KyivAleksey Asiutin
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy Systemadrian_nye
 
AFW: Dynamic Firewalls with Chef and Netfilter
AFW: Dynamic Firewalls with Chef and NetfilterAFW: Dynamic Firewalls with Chef and Netfilter
AFW: Dynamic Firewalls with Chef and Netfilterjvehent
 
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Evgeny Antyshev
 

Similar to Using Service Oriented Operation and Provisioning at Financial Times (20)

Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricSurat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
 
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
Jacopo Nardiello - Monitoring Cloud-Native applications with Prometheus - Cod...
 
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
Our Puppet Story – Patterns and Learnings (sage@guug, March 2014)
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
 
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICESCENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
CENTRAL MANAGEMENT OF NETWORK AND CALL SERVICES
 
Building Bizweb Microservices with Docker
Building Bizweb Microservices with DockerBuilding Bizweb Microservices with Docker
Building Bizweb Microservices with Docker
 
Kubernetes Navigation Stories – DevOpsStage 2019, Kyiv
Kubernetes Navigation Stories – DevOpsStage 2019, KyivKubernetes Navigation Stories – DevOpsStage 2019, Kyiv
Kubernetes Navigation Stories – DevOpsStage 2019, Kyiv
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
AFW: Dynamic Firewalls with Chef and Netfilter
AFW: Dynamic Firewalls with Chef and NetfilterAFW: Dynamic Firewalls with Chef and Netfilter
AFW: Dynamic Firewalls with Chef and Netfilter
 
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 

Using Service Oriented Operation and Provisioning at Financial Times

  • 1. Using Service Oriented Operation and Provisioning at Financial Times Emeka Mosanya emeka@mosanya.net @EmekaMosanya
  • 2. In case you didn't know... “The Financial Times (FT) is one of the world’s leading business news and information organisations, recognised internationally for its authority, integrity and accuracy." … it is also one of the few newspapers making money with online subscription!
  • 3. Our goal: Reduce Cycle Time Up to 6 weeks for a release Business Customers Idea We need to make this shorter! We want to release several time a day without stress...
  • 4. Problem: Long Feedback Loop Workstation CI QA INT STAGING PROD $ $$$ ●No environment like PROD ●Manual Configuration ●Not enough environments Each deployment to PROD is an adventure...
  • 5. Problem: Organizational Frictions Release Management Network Create Machine ●Dilution of Responsibility Too Many ●Misalignment of Priority Gates!
  • 6. Our Vision Release Network Create VM Replace gates Locally / VMWare / AWS / ... with automation
  • 7. Deploy Services into Domains membership.test.cloud.ft.com controller-service-1.0.0 access-service-2.3.5 gateway-service-1.2.3 Service Definition = Puppet Domain Modules and More
  • 8. Service Definition = Puppet Modules access-service-2.3.5 RPM access httpd nagios Nodes Config tomcat splunk Application Versioned Module library Each service exists in its own Puppet environment Everything you need to install a service is encapsulated in a single versioned artifact excepted global configuration.
  • 9. Puppet Master is part of a Service membership.test.cloud.ft.com controller-service-1.0.0 Puppet DNS1 Nagios Master DNS2 ●One Puppet Mater per Domain ●Contains “Mandatory” servers No Sacred Cow! … but we need a bootstrap
  • 10. Bootstrap We start with vanilla VM including a Base RPM ftppm101-lvpr-uk-t ftcloud init standalone controller-puppet.membership.test.cloud.ft.com controller-service-1.0.0 access-service-2.3.5 Base RPM gateway-1.2.3 ftaps104-lvpr-uk-t ftcloud init client access-app.membership.test.cloud.ft.com ftppm101-lvpr-uk-t Base RPM From vanilla VM to a running environment in a few shell commands...
  • 11. Thin Integration with Infrastructure controller-service-1.0.0 Automatic during build Vagrantfile access-service-2.3.5 OVF gateway-service-1.2.3 AWS Cloud Formation
  • 12. Module Path ● /etc/puppet/services modulepath: RPM ● controller/ /etc/puppet/service/ – controller $environment – httpd – tomcat – … RPM ● access/ – access – Tomcat – ...
  • 13. Deploy Services into Domains (2) membership.test.cloud.ft.com controller-service-1.0.0 Puppet Master access-service-2.3.5 gateway-service-1.2.3
  • 14. Service Definition (2) access-service-2.3.5 RPM access httpd nagios Nodes Config tomcat splunk Application Versioned Module library What about Nodes and Config?
  • 15. We don't use ENC Service Definitions should contain everything we need to deploy a service... so node definition cannot be external! ftaps123-lvpr-uk-p ENC Meaningful name in DNS ●class A access-app-01 ●class B Node files defined at service level
  • 16. Configuration with Hiera Slight customization of the YAML backend to use multiple configuration directories. Facters: Certname Domain Datacenter Country Environment (Dev, Test, Prod) Domain Level Service Level Global Config
  • 17. Global Configuration Install membership.test.cloud.ft.com global-config-1.3.4 RPM Puppet Master Global Config: Company Wide Service Config: per service Local Config: for override Domain
  • 18. That's all Folks ● Reducing bottlenecks: ● Everything is a service ● Team fully control service deployment ● No sacred cow: Puppet Master is a service ● Reducing Risk ● Everything is versioned ● Automatic deployment is the same everywhere ● Responsibilities well defined
  • 19. FT is recruiting The Team @FTcareers "Jussi Heinonen" <jussi.heinonen@ft.com> "Peter Hehn" <peter.hehn@ft.com> "Pete Houghton" <pete.houghton@ft.com> "Chris Malins" <chris.malins@ft.com> "Nick Haddock" <nick.haddock@ft.com> "Ashley de Souza" <ashley.de.souza@ft.com> "David Reay" <David.Reay@ft.com> "Richard Moran" <richard.moran@ft.com> "Santanu Das" <santanu.das@ft.com> "Barry Ridout" <barry.ridout@ft.com> "Sujith Santhan" <sujith.santhan@ft.com>