Tuesday, February 23, 2010

Symfony-live 2010, Paris. Conference review. Day 2

Here are my conclusions and thoughts about information that was presented on the Symfony-live 2010 conference.

OkAPI meet symfony, symfony meet OkAPI
I'm not sure what this presentation was about.

PHP Performance
Quite an interesting speech, describing some PHP and Zend Engine internals.
The interesting information is that all array_* and is_array function of PHP are not performance efficient. It is better to use your own implementation of them.

Git 101 Presentation
Nice presentation of Git.
The main conclusion is that we need to use Git. Reasons for it are:
  • It is more reliable. Each Git setup (developer's PC, server etc.) has full information about the project i.e. history, modifications etc. So loosing any of the installations will not cause troubles for the whole project.
  • Repository's size is slower.
  • Updates are quicker.
  • Logic different from SVN allows more flexible development.
For the first time we'll implement SVN-like logic but later will try to use all Git's features.

Using Zend Framework with Symfony
There are some nice examples of using parts of Zend Framework with Symfiny. Zend PDF and others are quite useful. Lucene search is nice but quite slow.

Implementing a Symfony Based CMS in a Publishing Company
Practical example of using Symfony for building custom site. There are no know-hows. It shows that we usually do everything the same way (correctly?) as they do.
Nice example of improving performance using several web servers and load balancer together with Master-Slave MySQL servers. We can use the same configuration on our projects when needed.

symfony live 2010 - Using symfony events to create clean class interfaces
Nice presentation on events dispatcher. There were some example on when and how Events should be used and when it should not. My opinion is that we should limit using of events and do it very carefully. The realization of the dispatcher is not ideal yet. Using events can make the code quite complicated to understand.

Symfony in the Cloud
Speech has covered all aspects of developing high load application on a cloud servers. They use the Amazon EC2 and S3 on http://nebul.us/ service.
Key issues when developing site in cloud environment are:
  • Database connections - as soon as there are several MySQL databases (Master and Slave) we need to route all Select SQLs to Slave and all Update/Insert/Delete to Master. We need to track that the changes are successfully transferred from master to slave etc. Such requests routing can be done on the ORM level. Speaker showed example with Doctrene but we've already done it with Propel as well.
  • File upload - as soon as there are several Apache servers there is no one place where user's files will originally get if we keep the default functionality. There is a chance that user can get to Server1, upload file and tomorrow he'll get to ServerN that will not have file stored on Server1. So we need to have one centralized file storage for the whole project. They've user Amazon S3. On the elastic hosting where all servers are within one network we can simply mount the main storage server to each Apache server's upload folder by NFS.
  • Session storage - should be done by storing session in the database. It is well done in both PHP and Symfony so it is simple to change default session storage to MySQL session storage.
  • Local development - as soon as by default scripts are configured to work on multi-server environment then there is a problems with local development when everything is done on one computer. Hopefully Symfony offers a lot of possibilities to create various environment for running scripts. It is quite simple to set up development environment with its own configuration
  • Deploying - deploying the same code and DB changes to multiple servers is quite tricky. There should be proper procedures developed to do it.
Speaker has shown the good practices in running Symfony on multi-server environment. We can use them. But anyway each project requires its own specific configuration and procedures.

Debugging and Profiling Symfony Apps
Author's team has developed and maintain large site with 2m members, 14000 req/min running on 28 servers. On such sites performance is always an issue. But it is difficult to find the bottleneck in the system.
There are several ways suggested/used:
  • Log analysis. Logs contain a lot of information. The problem is that logs from multiple servers should be stored in one place
  • sfTimer. Allows measuring various operation times. But it requires some code modifications. It doesn't actually fits the prod server. It is more useful on the development stage.
  • XHProf profiler. Helps to see Walltime and Memory Usage. Has web interface
  • Tsung. Can benchmark HTTP, MySQL, Ejabber.
  • Using graphite for visualizing data.
There is a lot of things to discover yet.

Building A Platform From Open Source At Yahoo
Presentation on how Yahoo use Symfony.
Presentation of Yahoo services. Ideas and techniques on making the scalable sites and performance optimization used on Yahoo.
From all Yahoo development tool we need to have a look at:
  • YUI, that offers a lot of templates for common page and form elements.
  • YQL. it is SQL-like query language for searching in internet.
The threats in using Yahoo tools is that as far as I know Yahoo is not in good financial condition this days and it can stop supporting tools to reduce expenses once.

Symfony 2.0 revealed
More details on Symfony 2 can be found at http://symfony-reloaded.org/
The main things are updated low-level architecture and usage of php 5.3 object oriented features (namespaces etc.).
There is no backward compatibility. It's not problem as soon as 1.3 - 1.4 are going to be supported for 3 more years.
My concern is the possibility to configure everything in Symfony. We liked symfony because it was well structured. There were rules that all developers working on Symfony should follow. It was simple then to understand code that someone has created and continue development. I hope Symfony developers will keep good default settings in Symfony 2.0 so that not many people will have to change it. Otherwise we'll have to work out our own development standards. We'll try to stick to symfony 1.4 experience as much as possible.
We need to keep in mind that Doctrene 2 will be included in Symfony and it will make huge step forward in developing on PHP.
We'll see what it is going to be at the and of 2010.

That's it for Day 2.






17 comments:

  1. I'm surprised you have time to blog with MM4AC biting us in the ass ... ;-P

    ReplyDelete
  2. If I do not do it right after the conference I'll never do it.

    ReplyDelete
  3. Many business owners enjoy the DIY website builder process but are disappointed when they don't see new customers coming into their office saying they found you online. wordpress development

    ReplyDelete
  4. I needed to thank you for this phenomenal read!! I unquestionably adored each and every piece of it. I have you bookmarked your site to look at the new stuff you post. Hire front end developers

    ReplyDelete
  5. We are truly thankful for your blog entry. You will discover a great deal of methodologies in the wake of going to your post. I was precisely scanning for. A debt of gratitude is in order for such post and please keep it up.  url shortener

    ReplyDelete
  6. Thanks for sharing the best information and suggestions, I love your content, and they are very nice and very useful to us.Get for more information web design company ireland

    ReplyDelete
  7. I am really enjoying reading your well written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work.
    web developer long island

    ReplyDelete
  8. Wow, What an Excellent post. I really found this to much informative. It is what I was searching for. I would like to suggest you that please keep sharing such type of info.Web Developer Malaysia

    ReplyDelete
  9. I am very impressed to see this blog thanks for giving this very useful information.
    python best tutorial
    free python tutorial

    ReplyDelete
  10. FOXZ88.NET online casino website Global standard 2020-2021
    คาสิโนออนไลน์


    Betting online gambling reminiscent of UFASCR.COM Baccarat.
    ufabet


    UFABET football betting website, the big brother of all UEFA networks, UFADNA, with an update The first modern system in 2021
    ufa


    Web football i99PRO online lottery casino apply today for free 5000 bonus
    เว็บบอล


    Kardinal Stick Siam - Relx a great promotion. Express delivery in 3 hours.
    relx

    ReplyDelete
  11. With special privileges and services, UEFA BET offers opportunities for small capitalists. Together ufa with the best websites that collect the most games With a minimum deposit starting from just 100 baht, you are ready to enjoy the fun with a complete range of betting that is available within the website

    ufabet , our one another option We are a direct website, not through an agent, where customers can have great confidence without deception The best of online betting sites is that our Ufa will give you the best price

    หาคุณกำลังหาเกมส์ออนไลน์ที่สามารถสร้างรายได้ให้กับคุณ เรามีเกมส์แนะนำ เกมยิงปลา รูปแบบใหม่เล่นง่ายบนมือถือ คาสิโนออนไลน์ บนคอม เล่นได้ทุกอุปกรณ์รองรับทุกเครื่องมือ มีให้เลือกเล่นหลายเกมส์ เล่นได้ทั่วโลกเพราะนี้คือเกมส์ออนไลน์แบบใหม่ เกมยิงปลา

    อีกทั้งเรายังให้บริการ เกมสล็อต ยิงปลา แทงบอลออนไลน์ รองรับทุกการใช้งานในอุปกรณ์ต่าง ๆ HTML5 คอมพิวเตอร์ แท็บเล็ต สมาทโฟน คาสิโนออนไลน์ และมือถือทุกรุ่น เล่นได้ตลอด 24ชม. ไม่ต้อง Downloads เกมส์ให้ยุ่งยาก ด้วยระบบที่เสถียรที่สุดในประเทศไทย

    ReplyDelete
  12. one fast brownIn case you are looking for a good site, UFA, UEFA Bet casino site. Which can be played as a thorough answer, in a position to answer Quality and Performance It's ideal to get a great deal of the issues. It can be something very punching and fascinating. Excellently, the items that UFABET football betting is absolutely nothing even with the practical experience of quality. Plus accessibility that are able to see final results It's a model that is very sharp and also different. Full of performance of creating wealth Attractiveness With the most beneficial opportunities it is quite nothing You will find opportunities and also probabilities for making profits. Quality and also somewhat diverse For people who have come to make use of the service excellently fox
    บาคาร่า
    สล็อต
    ufa
    แทงบอล


    ReplyDelete
  13. The Casino Directory | JtmHub
    The Casino Directory https://tricktactoe.com/ is a complete wooricasinos.info directory for casino www.jtmhub.com and sportsbook operators in Ireland and Portugal. Jtm's comprehensive directory 1등 사이트 provides you with more than 150 goyangfc

    ReplyDelete
  14. web design long island
    Website Design Long Island is the premier website design company in Long Island, NY. We are here to help you whether you're just getting started or ready to take your business to the next level.

    ReplyDelete
  15. Bagaimana cara menilai keandalan jasa RAB sebelum menggunakannya? jasa desain rumah batam

    ReplyDelete