Hello. My name is yongmaroo-kim. I'm a senior software engineer at Naver. Especially, I have been working at Video-Platform Team for 10 years. There are a lot of projects that i have experienced. Among them, "VOD Platform 2.0" is memorable to me. Nowadays, I am developing and maintaining the platform and making it continualable.
I am going to introduce to you what VOD 2.0 is, why we had to make it, and how. 2 years ago, we had trouble to maintain our platform. There were 3 main reasons make it hard.
Two platforms with the same functionality
Legacy Platforms that lasted for 10 years
Legacy Frameworks
First of all, we had to maintain two different vod-platforms (UGC / RMC) which have same functionality. UGC is for user generated contents. RMC is for ready made contents. They served almost similar features except that the user's personality was different. So it caused operation costs double.
Second, we had maintained our platform for 10 years. As the video business becomes more important, we had to deliver new features more quickly. Also, request count went up, and we had to deal with bigger files than before, and served better quality. It needs more computation costs. It made our platform more complicated.
While operating our platform, there were many changes. When we change and deliver new features, we have to choose better decision for long-term perspective. But we could not make it for every decision that we had, because sometimes we had to choose fast delivery and wanted to make fewer side effect. It caused technical debt, and it made us slower and slower.
Most of our modules, it was based on Java 6 and Struts 1, and those frameworks were maintained no more. Some libraries that are newly developed support Java 6 no more. And sometimes we had to develop with older way due to legacy frameworks. It caused productivity down, and it also reduced developer's motivation.
We had to fix it. So we decided to take on building new platform that can replace old one. That is VOD 2.0. We had to set 3 main strategies to archive goal.
Integrating into One Platform.
Ensure compatibility with existing platforms.
Each Module should be operated and scaled independently.
For the reasons mentioned above, we chose MSA instead of Monolith. There were two main considerations when we adopt MSA.
How can we resolve complexity from MSA?
How can we successfully migrate to MSA without having a large failure on existing platforms?
We chose Spring-Cloud that had been battle-tested by Netflix and easy to use with spring-boot. It served us maintainability and make system's complexity down. And we have migrated one by one from existing platforms to VOD 2.0.
It was very long and hard journey, but we could finally make it. I am going to write an article about more detailed information. If you want more details, then please read that article.
Nowadays, for technical I am studying the workflow engine that can resolve complexity of ingest process. For organization, I am managing team to encourage people to learn and grow fast. During the project, we tried to adapt agile principles and improved our development process. It helped us a lot to work together and work more efficiently. Every retrospection, we ask the right questions, and we get the feedback, and we can make it better. That's the advantage of our team. That is the most interest thing recently.
Hello. My name is yongmaroo-kim. I'm a senior software engineer at Naver. Especially, I have been working at Video-Platform Team for 10 years. There are a lot of projects that i have experienced. Among them, "VOD Platform 2.0" is memorable to me. Nowadays, I am developing and maintaining the platform and making it continualable.
I am going to introduce to you what VOD 2.0 is, why we had to make it, and how. 2 years ago, we had trouble to maintain our platform. There were 3 main reasons make it hard.
Two platforms with the same functionality
Legacy Platforms that lasted for 10 years
Legacy Frameworks
First of all, we had to maintain two different vod-platforms (UGC / RMC) which have same functionality. UGC is for user generated contents. RMC is for ready made contents. They served almost similar features except that the user's personality was different. So it caused operation costs double. Second, we had maintained our platform for 10 years. As the video business becomes more important, we had to deliver new features more quickly. Also, request count went up, and we had to deal with bigger files than before, and served better quality. It needs more computation costs. It made our platform more complicated. While operating our platform, there were many changes. When we change and deliver new features, we have to choose better decision for long-term perspective. But we could not make it for every decision that we had, because sometimes we had to choose fast delivery and wanted to make fewer side effect. It caused technical debt, and it made us slower and slower. Most of our modules, it was based on Java 6 and Struts 1, and those frameworks were maintained no more. Some libraries that are newly developed support Java 6 no more. And sometimes we had to develop with older way due to legacy frameworks. It caused productivity down, and it also reduced developer's motivation.
We had to fix it. So we decided to take on building new platform that can replace old one. That is VOD 2.0. We had to set 3 main strategies to archive goal.
Integrating into One Platform.
Ensure compatibility with existing platforms.
Each Module should be operated and scaled independently.
For the reasons mentioned above, we chose MSA instead of Monolith. There were two main considerations when we adopt MSA.
We chose Spring-Cloud that had been battle-tested by Netflix and easy to use with spring-boot. It served us maintainability and make system's complexity down. And we have migrated one by one from existing platforms to VOD 2.0. It was very long and hard journey, but we could finally make it. I am going to write an article about more detailed information. If you want more details, then please read that article.
Nowadays, for technical I am studying the workflow engine that can resolve complexity of ingest process. For organization, I am managing team to encourage people to learn and grow fast. During the project, we tried to adapt agile principles and improved our development process. It helped us a lot to work together and work more efficiently. Every retrospection, we ask the right questions, and we get the feedback, and we can make it better. That's the advantage of our team. That is the most interest thing recently.