PHP Industrialization is not only a question of IT skills. Industrializing a technology on a large scale is also related to people and finance.
During this conference, Eric Rappe, PHP skills center manager at Orange (DDSI) will give you keys that enabled him and his team to industrialize an Agile way for PHP development and production. A conference to attend if you want to develop faster and be more productive with PHP.
Computer 10: Lesson 10 - Online Crimes and Hazards
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
1. and welcome to Orange !
szia
dag
hello
hola
shalom
nangadêf
sat sri akal
bonjour
2. 2PHP at Orange, the keys for industrialization – 2010
Introduction
Who am i ?
PHP Skill center manager at Orange
Telco graduate degree from EPITA
(Graduate School of Computer Science and Advanced Technologies.)
3 years in a System Integrator company, working mainly in Banking
and Insurance sector.
I moved to Orange 13 years ago, I had different responsibilities
from Application development to web portals project management.
Today I manage the PHP skills Center at Orange, my team is
composed of ten people.
3. 3PHP at Orange, the keys for industrialization – 2010
Agenda
Orange Company
Why industrialize PHP ?
Goals to achieve
Need of industrialization
Process of PHP industrialization
Workshop on industrialization
Conclusion
5. 5PHP at Orange, the keys for industrialization – 2010
more than 203millions customers in the world
3%of people in the world
are orange’s customer
33,7
billion euros of
Revenue
Worldwide presence in
220countries
A staff of approximatively
181,000people in the world
Orange
the first nine months of 2010
6. 6PHP at Orange, the keys for industrialization – 2010
Our global activities (figures at
30 June 2010)
8. 8PHP at Orange, the keys for industrialization – 2010
Why choose PHP ?
PHP is Open Source, Interfaces very well with Mysql
Large community of PHP programmers
Easy to integrate with web pages
PHP can run on both Unix and Windows
PHP5 a fully object oriented language
A really efficient language for Web Applications
Inside Orange
Company ?
Speed of development, low entry cost
Many applications are built with PHP (more than a thousand)
Many people are familiar with PHP ( more one hundred fifty developpers)
For development of non mission critical IT projects => but business critical
An appropriate response to the needs of
business
PHP
9. 9PHP at Orange, the keys for industrialization – 2010
Why Industrialization ?
Faster development, improved efficiency and
productivity
Improve the quality of development
Increase the productivity of development teams
Build reliable, adequate and sustainable applications
Reduce the duration and the load for application testing
Reduce the number of defects in the production phase
Allow projects to share the same tools and methods
Avoid each project to contract his own hosting environment
Reduce application time and cost to go live
Avoid an application to be developed several times in different places
Provide a real and effective support to projects
Inside Orange Company ?
An appropriate response to the needs of the business
10. 10PHP at Orange, the keys for industrialization – 2010
Needs of industrialization…Few or no standardization, mutualization or reusability
> No prescription development for PHP
> Each project has to contract his own hosting SLA
> Each project has to produce all the documentation to satisfy quality system requirements
> No overview of the IT application life cycle
> No development prescription for PHP (Rules, Method, Tools)
> Slow delivery of platforms needed by the project
Monolithic approach in IT development
> High cost to each project, whatever its complexity (no segmentation or uses cases),
> Minimum of 3 to 6 months to build platforms needed by the project,
> Very poor support for “simple applications” (from an urbansism and technical point of view)
> How to identify what are the most sensitive applications (ticketing, hosting crisis) ?
> Poor efficiency and agility
Applications Powered by IT : reliable but expensive and not business compliant
> Are too slow for the business
> Cost a lot of money
> Are designed with heavy method
Applications Powered by field developers : business compliant but not scalable for high usage
> Are not reliable within high usage
> Can’t be hosted with a good SLA
> Are not designed with appropriate technology
Ensure that the IT world understands the needs of the Business, recognizes
the use of PHP and makes all its power to "organize" and "mentor" and "sustain" its
use and the resulting developments...
11. 11PHP at Orange, the keys for industrialization – 2010
PHP Industrialization is not only a question of IT skills.
(Industrializing a technology on a large scale is also related to people and finance).
Be sure whether development should be done in PHP and then be able to
Support the project throughout its life cycle
Accept to share your work, your source code
Accept that your source code is to be audited
Follow the recommendations in terms of tools and development rules
Change working methods, more agility,
Increase PHP skills, learn new technologies…
Value the work of PHP developers and interest of developing applications in PHP
Create a real community of php developers in the company
Trust with each other and accept to change
12. 12PHP at Orange, the keys for industrialization – 2010
PHP Industrialization is not only a question of IT skills.
(Industrializing a technology on a large scale is also related to people and finance).
Industrialize the workstation of PHP developers, methods and tools they use
Industrialize the test strategy
Build normalized infrastructure to cover nearly all PHP applications requirements
Reduce the recurring costs for the project
Contracting with vendors for support including maintenance,
patches and software changes.
Create different skill centers to meet projects needs
Invent new processes
Develop tools to facilitate and simplify trading between different players
working around PHP technologies
automate routine tasks, accelerate production of PHP applications
Implementation Process simplified and optimized to obtain a hosting environment
For the company, industrialization of PHP has a real cost
But If we do it well, there is a real ROI
13. 13PHP at Orange, the keys for industrialization – 2010
Goals to achieve
Provide Integrated services
High QOS
Normalized easy hosting
solution
Time To Market and Agility
Reduce time and delay
How : with standards offering for each step of projects life cycle , with ready-to use
packaged environments and dematerialized on-demand process
14. 14
what is the process of
industrialization
that we followed ?
15. 15PHP at Orange, the keys for industrialization – 2010
Process of PHP industrialization
Workshop #1 : Identify
Workshop #2: Rationalize
Workshop #3 : simplify hosting
Workshop #4: Recommend
Workshop #8 : Communicate
Workshop #7 : Capitalize
Workshop #6 : Train
Workshop #5 : Support
16. 16PHP at Orange, the keys for industrialization – 2010
Workshop #1 : Identify
Build a repository of applications (PHP or not) developed outside the SI
construct a form describing the project in term of :
Goals, project life cycle
Application Hosting
Version of PHP (or other technologies), name and version of database…
Business Owners Contacts, End Users, Application Manager
Appoint people on each site to facilitate the referencing
Each application is assigned a unique identifier code
"Vestal” is the name of the repository for local applications
17. 17PHP at Orange, the keys for industrialization – 2010
Workshop #2 : Rationalize
Implement a new process for projects to ensure that :
development is useful and fills a real need
there are no other existing applications that already meet this problem
identify development teams PHP :
avoid leaving isolated developers
Take stock of knowledge developers
stop the hosting of applications on workstations*
Vestal has listed more than 2300 applications, today only 500 are still in production
More than 150 developers referenced
Migrate applications in the correct versions of PHP and MySQL
(Main database used )
18. 18PHP at Orange, the keys for industrialization – 2010
Workshop #3 : simplify hosting (1/2)
Construction of a virtualized hosting platform standard dedicated or shared
The hosting infrastructure for LAMP projects is called "PHENIX"
end-users
load balancing
Production
(dedicated)
(2)
PHP web servers
file storage
MySQL databases
Production
(mutualized)
(9)
PHP web servers
MySQL databases
file storage
developers
Quarantine
(3)
PHP web servers
MySQL databases
file storage
PHENIX tools
CFT
Batch & Stats s
Monitoring
servers
PHP web servers
MySQL databases
file storage
…
Pre-production
(2)
…..
…..
Network
intranet orange
Hosting platform sized and configured for a stable and efficient production
19. 19PHP at Orange, the keys for industrialization – 2010
Workshop #3 : simplify hosting (2/2)
Develop an application workflow to facilitate all steps of projects
The workflow application is called "Selfcare Phenix"
This application allows projects to make their demand in order to have a hosting environment
Projects autonomy increased with the use of a workflow covering all the project lifecycle
Requests are processed automatically and quickly
Moreover this application gives informations about the statistics of the project, application
monitoring, server health, configuration of virtual machines…
20. 20PHP at Orange, the keys for industrialization – 2010
Workshop #4 : Recommend (1/3)
Objectives of the center of expertise PHP is to define :
Method
Rule
Prescription
tools
Build a center of expertise to assist project teams
What About developers Workstation :
developers should have an appropriate workstation
Make recommendations is not to prohibit use of this methods or this tools
but to say, if you follow these recommendations you can count on support of
PHP skill center
21. 21PHP at Orange, the keys for industrialization – 2010
Workshop #4 : Recommend (2/3)
Build a prescription
Just for example :
* The products subject to licensing are bolded in the
table.
*
*
*
22. 22PHP at Orange, the keys for industrialization – 2010
Workshop #4 : Recommend (3/3)
Other work undertaken by the Center of Expertise
- Do not reinvent the wheel across the different projects
- Create a community around a development project
- Share best practices on technical and business components
- As close as possible with the philosophy of PHP & Zend Framework
- Getting a test coverage of 70% with PHPUnit and quality tools
- Adress common projects issues : authentication, user rights managment, look and feel, CRUD,...
Virtual development environment
-1 Zend Studio as the standard IDE
-2 Development virtual machines
-3 OFT framework to simplify
developments
- Allow to give a production like environment
- Limits the time needed to set an environment up
- Web tools to handle one or multiple projects for one or multiple developers
- Bridge between SVN and the pre production
- Best practices : Hudson is embeded with a set of PHP quality tools to help projects during
development
OFT Framework (Orange Framework & Tools)
- 4 Selfcare for the hosting lifecycle of the application
- 5 Pre production for staging and technical validations
- 6 Production
To resume…
23. 23PHP at Orange, the keys for industrialization – 2010
Workshop #5 & 6 : Support & Train
Train :
Different trainings for architects and developpers (generic or specific to cover
all needs )
Ability to go through certification
Support :
Generic support mailbox and call center
PHP skill center to help projects along its lifecycle
(from development to production
Audit Application
You must have an application that register all requests for assistance in order
to have dashboards and statistics
24. 24PHP at Orange, the keys for industrialization – 2010
Workshop #7 & 8 : Capitalize & Communicatio
Capitalize :
every assistance should be referenced and classified for reuse if
necessary so as not to waste time
Communicate :
Creating a community gathering all developers (monthly meeting)
Build a web portail for the PHP skill center (you can find there
documentations and recommendations)
Construction of a comprehensive solution for communication
around all the services (portal, forum, newsletter, mailing, ...)
We developed a special application in order to capitalize and
to help PHP developers
26. 26PHP at Orange, the keys for industrialization – 2010
(finally we can still reuse the wheel..... The PHP and PHENIX
wheel ;-)
1200+ requests per month
to the PHP skill center
Monthly report per project
statistics
370 projects in pre-production
450 projects in production
10 new projects per month
98% availability
based on 60 VMs
300+ users per month
selfcare phenix
120 000+ users per month to application host on Phenix platform
350+ users monthly for the PHP portal
300+ Zend Studio licenses installed
60 VM installed for developpers
100+ participants to PHP meetings
120+ developpers trained in 2009
Conclusion
Vous devez avoir une application qui référencent toutes les demandes d’assistances, et donner la visibilité aux projets pour connaitre l’état d’avancement de leur demande