TechRadar - Broadcast TechRadar Q3 2017.pdfDocker Docker is a container management system built on...
Transcript of TechRadar - Broadcast TechRadar Q3 2017.pdfDocker Docker is a container management system built on...
TechRadarSeptember 2017
IntroAs Piksel’s work developing cutting edge solutions and products for our clients continues, the tools and techniques we deploy to achieve them continue to evolve. The Piksel TechRadar takes the diverse knowledge of our more than 550 technology experts and coalesces them into a single document, enabling us to share our combined insight, assessments and knowledge with you. We hope you find it useful and informative.
Mark Christie
Chief Technology Officer
Piksel
Mark Christie is responsible for Piksel’s client solutions, including product strategy, innovation, and management, solution deployment, research and development, and global network infrastructure.
© Piksel. All Rights Reserved. 3
ContentsWhat’s New?
About
Sections
About The Radar
The Radar
Techniques
Tools
Platforms
Languages
Media
4
5
6
7
8
10
11
13
14
15
TechRadar | September 20174
AboutWe at Piksel have long admired ThoughtWorks’ leadership to the tech industry with their Technology Radar, a document that is used to inform various sectors of emerging trends, newly established standards, things to look out for and approaches that have had their time in the sun. Piksel feels that the online video industry would benefit from such leadership, obviously focussed more narrowly at our collective concerns, be they as solution providers or customers.
This document aims to set the leading approach for where Piksel projects and products move to in the near and long term, enabling closer alignment of our product, professional and managed services divisions. The TechRadar aims maintain and enahnce collaboration between Piksel and our customers on a strategic technical direction, by focussing on underlying technology choices and their strategic importance and benefits, rather than on individual product or service roadmaps.
As part of Piksel’s core series of philosophies and principles, we embrace continuous improvement, so the maintenance and evolution of this Radar will be an ongoing responsibility, with a point in time release on a bi-annual basis.
Some of the items we mention in the following pages will be factored into future R&D efforts and product visions, while others can bring efficiencies and improvements in how we might deliver to our customers or how they might deliver within their own environments.
As a business Piksel values input and collaboration from our employees, our customers and the wider industry, so if you feel that there are things missing that we should be looking at please get in touch.
© Piksel. All Rights Reserved. 5
About the RadarEntries into the TechRadar aim to provide focus and be forward looking, describing solutions or emerging technologies and how they may benefit Piksel’s products, services or customers.
Our Solutions and Technical Architects are continually working to identify the tools and technologies we should be focussing on and investigating, and how and why they can be positive for our clients and partners.
Adopt
This item should be utiised across current and future projects if applicable
Trial
We should be trialling this item on a candidate, project or service
Assess
We should be carrying out R&D efforts on this item
Hold
We should keep an eye on this item but not do anything with it at this time
TechRadar | September 20176
1
2 8
93
6
4
7
5 10
The Radar
TechniquesAdopt1. Mocking at
Architectural Boundaries
Trial2. Continual
Improvement / Scrumban
Assess3. Scaled Agile
Framework (SAFe)4. Legacy in a Box
Hold5. Separate DevOps
team
ToolsAdopt
6. Grafana7. Terraform
Trial8. LetsEncrypt
Assess9. Yarn
Hold10. CMS as a Platform
PlatformsAdopt11. Apache Cordova12. Docker13. Severless / FaaS
Trial14. OpenTracing15. Serverless
Framework
Adopt
Trial
Assess
Hold
© Piksel. All Rights Reserved. 7
11
20
24
21 2616
14
18
25
22 27
12
17
15
19
23 28
13
Assess16. Xamarin17. Kafka Streams
LanguagesAdopt18. Angular19. Redux
Trial20. Dropwizrd / Spring-
Boot
Assess21. RxJava
Hold22. Java 5-6-723. MobX
Media
Adopt24. Multi-DRM Playback
Trial25. Amazon Fire TV
Assess26. HEVC / .h265
Hold27. VP6
TechRadar | September 20178
Sections
By focussing on trending tools, technologies and frameworks across product, professional services, managed services and all innovation work we ensure that Piksel are globally aligned where it makes sense.
This can be further summarised with the following goals: - Formulate and test best practices prior to them becoming published - Take a truly globalised approach - Consolidate the R&D information across the company and encourage collaboration and re-use without being process heavy
AdoptThis item should be utiised across current and future projects if applicable
TrialWe should be trialling this item on a candidate, project or service
AssessWe should be carrying out R&D efforts on this item
HoldWe should keep an eye on this item but not do anything with it at this time
Piksel’s TechRadar provides thoughts on trending tools, technologies and frameworks that Piksel uses today, are considering for tomorrow and are trending in the media industry.
© Piksel. All Rights Reserved. 9
Mocking at Architectural Boundaries
Over-mocking causes serious unit test complexities, under-mocking means test execution can be slow and fragile. We should mock at architectural boundaries and now within these boundaries.
Continual Improvement / Scrumban
Scrumban is a pull-based system, where the team no longer plans out the work that is committed to during the planning meeting, and instead continually grooms the backlog.
Scaled Agile Framework (SAFe)
SAFe attempts to scale up Agile to address the issues faced in typical enterprise scale projects. Many of our current projects are long running and involve multiples teams from multiple vendors. SCRUM does not address a lot of the issues this introduces and we should therefore investigate some alternate approaches.
Legacy in a Box
Although extending the lifespan of legacy application should be avoided if possible, it is not always possible (e.g. customer applications); the intention is to contain the legacy in a box for developers to run locally and remove the need for rebuilding, reconfiguring or sharing environments. In an ideal scenario, teams that own legacy systems generate the corresponding boxed legacy images through their build pipelines, and developers can then run and orchestrate these images in their allocated sandbox more reliably.
Separate DevOps team
DevOps is about creating a culture of shared responsibility in delivery teams. We recommend embedding operations skills into delivery teams to reduce friction and deliver better outcomes.
TechniquesAdopt
Trial
Assess
Hold
TechRadar | September 201710
Grafana
Grafana has become our default choice for visualising metrics. Its feature set - in particular its templating and variable substitution - is impressive, its development continues rapidly, and it is a low-hassle tool with minimal management effort.
Terraform
Terraform provides a common configuration to manage infrastructure - from physical and virtual ervers to email and DNS providers. It is highly modular and, supports many providers. Although not without its warts, Terraform is in successful use across many teams, mostly managing AWS-hosted platforms.
LetsEncrypt
Now out of private beta, LetsEncrypt is an automated, free, and open certificate authority. Although we’d recommend only using its certificates in non-production environments for now, hat’s likely to change in the future.
Yarn
Yarn is a new package manager that replaces the existing workflow for the npm client while remaining compatible with the npm registry. With the npm client, we may end up with a different tree structure under node_modules based on the order that dependencies are installed. This nondeterministic nature can cause ‘works on my machine’ problems. By breaking the installation steps into resolution, fetching and linking, Yarn avoids these issues using determinstric algorithms and lockfiles and thus guarantees repeatable installations. We’ve also seen significantly faster builds in our continuous integration (CI) environment because of Yarn caching all the packages it downloads.
ToolsAdopt
Trial
Assess
© Piksel. All Rights Reserved. 11
CMS as a Platform
Content Management Systems have their place. In many cases it is unreasonable to write editing and workflow functionality from scratch. However, we have experienced serious problems when CMS as a platform becomes an IT solution that grows beyond managing simple content.
ToolsHold
TechRadar | September 201712
PlatformsApache Cordova
Apache Cordova is a set of device APIs that allow mobile app developers to access native device functions such as the camera or accelerometer from JavaScript. Combined with a UI framework such as jQuery Mobile or Dojo Mobile or Sencha Touch, this allows a smartphone app to be developed with just HTML, CSS or JavaScript. Cordova has been used across a number of projects and is also used in product for Digital Enterprise.
Docker
Docker is a container management system built on lxc and cgroups. It has become the defacto container runtime and is supported by all mainstream container scheduling platforms.
Serverless / FaaS
Serverless (a.k.a. Function as a Service, although Serverless has become the standard term) has been gaining significant traction for some time and their use is extending beyond ad-hoc jobs and scheduled tasks. Platforms such as Lambda and Azure Functions are rapidly maturing, and Lamba Step Functions gives teams the ability to build workflows between functions simply. Lambda is being used across many projects, including Channel 4, Sequoia , Discovery, The White Company and others. There are however, still some ‘gotchas’ to be aware of, so don’t adopt without prior consideration to whether alternatives would be more suited to your workload.
OpenTracing
As monolithic applications are being replaced with more complex (micro)service ecosystems, tracing requests across multiple services is becoming the norm. Luckily, OpenTracing is rapidly beomcing the defacto standard for distributed tracing. Developed by Uber, Apple, Yelp and various other big players, it supports multiple tracers such as Zipkin, Instana and Jaeger. OpenTracing currently provides vendor-neutral implementation in six languages: Go, JavaScript, Java, Python, Objective-C and C++.
Serverless Framework
The Serverless Framework s a CLI tool that allows users to build &
Adopt
Trial
© Piksel. All Rights Reserved. 13
Assess
deploy auto-scaling, pay-per-execution, event-driven functions. Write your code, configure events to trigger your functions, then deploy and run those functions to your cloud provider via the serverless CLI. This has been used with some success on the Discovery Screener project, and we encourage its use where supported FaaS platforms are being used.
Xamarin
Build & design a mobile app using Xamarin’s cross-platform development software which simplifies mobile application creation.
Kafka Streams
Kafka Streams is a lightweight library for building streaming applications. It has been designed with thr goal of simplifying stream processing enough to make it easily accessible as a mainstream application programming tool for asynchronous services. It can be a good alternative in scenarios where you want to apply a stream processing model to your problem without embracing the complexity of running a cluster(usually introduced by full-fledged stream processing frameworks).
Platforms
TechRadar | September 201714
Angular
This is used on projects, specifically in Palette, Console and AT&T.
Redux
Redux worked out significantly better than alternatives on Discovery Screener. We would also like to standardise on Redux to improve reusability across projects.
DropWizard / Spring-Boot
DropWizard or Spring-Boot are frameworks that provide a lot of features to accelerate the startup of services development, allowing you to concentrate on the essential complexity of a problem rather than the plumbing.
RxJava
A library for composing asynchronous and event-based programs using observable sequences for the Java VM.
Java 5/6/7
Previous versions of JavaVM 5-6-7 are no longer supported by Oracle.
MobX
Was tried on the Discovery Screener project and exhibited some maturity issues. Was rewritten using Redux with improved outcomes. Combined with the desire to standardisae on Redux for JavaScript application session management, we’re moving this back to ‘hold’.
LanguagesAdopt
Trial
Assess
Hold
© Piksel. All Rights Reserved. 15
Multi-DRM Playback
With Chrome discontinuing support for Flash & Silverlight and the progressive extension to more devices (especially on product) then we need to provide multiple options for DRM.
Amazon Fire TV
AT&T project is commissioned to build a Fire TV application.
HEVC/.h265
This should still be considered the default for 4k delivery, we believe in the long term the patent uncertainties will be resolved particularly due to the large number of devices now incorporating the codec.
VP6
Due to the continued uncertainty over HEVC licensing we strongly recommend testing compatibility of transcoding pipelines and players with VP9 as we see increased in silicon. This should also ease the transition to VP10 and its successors.
MediaAdopt
Trial
Assess
Hold
The next Piksel TechRadar will be released June 2017
Piksel.com