SlideShare a Scribd company logo
1 of 34
Download to read offline
ALFRESCO
DEVCON
2018
LISBON, PORTUGAL
JANUARY 16-18, 2018
DEVCON 2018
Inclusive and inspiring
topics from Alfresco
community.
INSPIRATION AT
WORK
How DevCon inspired
Xenit, by Ronny
Timmermans, CTO and
Founder
XENIT' TALKS
Five talks from Xenit
team, showing all our
expertise, as Alfresco
certified partner. 
XENIT 
DIARY
ALFRESCO
DEVCON
2018
"VERY WELL BALANCED
BETWEEN PURE
TECHNICAL AND
BROADER CONTENT"
SCAN THE QR CODE TO FIND
ALL PRESENTATIONS 
FROM DEVCON
Peak of Mt. Sifonn, Bulgaria
Alfresco DevCon 2018
DEVCON IS
BACK
Last month, developers, engineers,
marketing and sales, customers,
enthusiasts and evangelists, they
were all together in Lisbon,
Portugal, attending the Alfresco
DevCon 2018.
LEARN.
CONNECT.
COLLABORATE
DevCon 2018 is an
international developer
conference entirely dedicated
to Alfresco technology. With
the support of the
community, customers, and
partners, DevCon, you will
increase your technical know-
how, connect you with other
Alfresco developers, and let
you collaborate with our
team and each other.
"
Peak of Mt. Sifonn, Bulgaria
WHO WILL BE THE
NEXT JEDI? 
You may be surprise of this
association with Star Wars, but it
was the theme used by John
Newton, Alfresco CTO and
Founder, to provide his vision on
the next disruptive technologies.
In order:
• Artificial intelligence
• Microservices Architecture
• Blockchain
• Cloud operating System
• Edge Computing
• Multi-model User interface
The hearth of the Content
Service is intelligence and in the
next future a set of technologies
(NLP, machine learning) will be
one gaming – changing for a
deeper and wider understanding
of the information. 
CLOUD IS THE NEW
NORMAL
Production ready docker
stackDevCon is not the first
event where it has been
mentioned, but now it’s quite
clear that the platform is
preparing to move to the
Cloud.
Amazon Web Service Cloud
Service, precisely.
As Angel Borroy highlights in
his blog post, "it seems clear
from both talks, that Alfresco
has started an isolation
services process to prepare
the platform to be deployed
natively on Cloud. Probably,
Activiti 7 (not available yet)
will be the first product to be
transformed in that direction,
so we have to wait a little to
start playing with these
technologies."
ADF AND THE 
FUTURE  OF
ALFRESCO SHARE 
This topic created a lot of
noise in the Alfresco
community.
During the Q&A session,
Thomas DeMeo, VP of the
Product Management,
answered a question about
the future of Alfresco Share,
saying the Share will be
deprecated in the upcoming
years, and ADF 
(APPLICATION DEVELOPMENT
FRAMEWORK) will fill in a
certain way this gap
In the Jeff Potts’ article, you
can read the effect of this
decision and what might
happen next... 
INSPIRATION
AT
WORK
Ronny Timmermans
CTO and Founder @Xenit
Devon 2018 inspired Xenit to help
re-inventing Content Services in
next decade. "ECM is not dead, Jim
but it is transforming".
Cloud and A.I. are creating new
ways to manage content and
automate the processes around it.
  
The cloud creates and advances
future application architectures,
even on premise, and monoliths
are even more outdated than
Dinosaurs
We retained a number of striking
topics at DevCon 2018, in line with
our sense of purpose to
bring Cognitive Clarity @Zero
latency for different markets,
verticals and horizontal challenges
like GDPR:
1. Alfresco is heading towards a
new micro-services architecture
and Xenit actually has built a
number of components to
accelerate that journey (Alfred Edge
& Inflow).  
Think docker containers and
kubernetes, even for small scale
solutions.
2. In the future, a Gateway will be
part of the Alfresco reference
architecture. We are looking
forward to build this with, for or
around Alfresco.
 
3. AI has a bunch of use cases in
content and process services. Edge
computing, Cloud, Blockchain, multi-
modal interfaces and related
technologies will make their mark in
future content and process services.
4. Multi-modal *cognitive*
interfaces will be the new norm,
application and business integration
will be smart and dynamic
5. Graphql, as launched by
Facebook, fitting within our react-
stack, is a very interesting
specification for query and
modification (mutation) and
notification. It is used for interfacing
with Activiti.
6. Alfresco is thinking of using
Electron for packaging ADF
applications on a desktop.
"Xenit seeks to
develop these best
practices, functionality and
automation into our Alfred
product line, with Alfresco
technology at its core".
Ronny Timmermans
At Xenit, we think we can help
Alfresco and its partners advance
on this journey by :
Ronny Timmermans
1. Creating a community
around Facebook's react and
extending the ADF reach into
the react community,
2. Extending our intelligent
gateway Alfred Edge for
synchronous and
asynchronous
communication, while
infusing best 'edge
computing' practices into it. 
3. Continuing to deliver
simple, smart and swift
windows desktop experience
with Alfred Desktop
COGNITIVE INTERFACE
INTELLIGENT INTEGRATION
AND EDGE COMPUTING
XENIT TALKS
Roxana Angheluta
Thijs Lemmens
Jasper Hilven
Willem Van den Eynde
Younes Regaieg
PRODUCTION READY
DOCKER STACK
Roxana Angheluta
Thijs Lemmens
Jasper Hilven
Willem Van den Eynde
Younes Regaieg
Roxana Angheluta: "Production ready Docker stack"
THE CHALLENGES
Automate the process of
installing and maintaining
Alfresco.
Have Alfresco image(s) prepared
ready, both for the Community
and Enterprise, with or without
Solr and LibreOffice running
inside, for clustered
environments as well as non-
clustered, remotely or on our
hosted  platform - reusing
services such as the smtp
server, with easy configuration
changes and easy upgrades.
Keep track of all changes
involved and install a full
monitoring, which alerts in case
of problems and helps in
capacity planning for resources.
Flavor
(community vs
enterprise)
Automation
Upgrades
Monitoring
Traceability Versioning
Single
deployment
method
Easy
configuration
changes
Data separation Security
Alerting
Single:
Bundled /
separated
HostedClustered
Roxana Angheluta: "Production ready Docker stack"
THE ARCHITECTURE
1. Docker-compose up/down to
start / stop services.
2. Consul (Hashicorp) + registrator
(GliderLabs) for
service discovery.
3. Consul template (Hashicorp) for
rendering.
"We started simple, with docker-compose files to start and stop services. We use Consul and registrator for service discovery and Consul
template for rendering load balancing configurations and restarting load balancer. Consul was developed by Hashicorp and is a key-value
store for storing services, adding or removing them on the fly based on health checks. The actual registration  is done by registrator
developed at GliderLabs." - Roxana Angheluta, Senior ECM Engineer @Xenit
We already deployed this architecture to our clients, with 100% successful use cases
Roxana Angheluta: "Production ready Docker stack"
THE DOCKER IMAGES
The team started running the
installer on a base Ubuntu
image, very simple to implement
and to upgrade to higher
Alfresco versions. 
When more flexibility is needed,
like a specific version of java /
tomcat, Installer is not right
choice. The team moved
therefore to a different method
to build images.
As base layer they started from
java, on top of which they added
Tomcat, then a skeleton for an
Alfresco including the init script,
then the war files. Finally, client
specific modules were added on
top.
Watch the talk
We aim for flexibility in customizing. We make the container stateless, by mounting the
data and the logs.
Roxana Angheluta: "Production ready Docker stack"
THE MONITORING SYSTEM
Our monitoring stack is
complex and includes a
number of parts:
• Kibana, for log monitoring
• Grafana, for numerical data
• Cabot for alerting
• Alerta which aggregates
Cabot warnings and alerts
and allows you to spot and
prioritize issues, across
multiple clients.
What's next? Our next challenge is using reporting data to automatically produce
SLA (Service Level Agreement) reports. 
PostgreSQL FOR ALFRESCO:
THE PRACTICAL GUIDE
Roxana Angheluta
Thijs Lemmens
Jasper Hilven
Willem Van den Eynde
Younes Regaieg
Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide"
During DevCon, Thijs Lemmens, Senior ECM Engineer @Xenit, focused on three PostgreSQL topics:
Master -Slave
replication
Continuous backup
and Point-in-time
recovery 
 Upgrading
database without
downtime 
Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide"
 "Synchronous or Asynchronous replication. That is the question"
In PostgreSQL, a master-slaves setup relies on a concept called streaming replication. This concept relies on the
transaction logs (WAL) that ensure ACID compliance and copies those over from master to slave,or standby.
The advantage of synchronous replication is that when the master returns from a commit, you are sure that the
commit is also safely written to the slave. In case of a disaster on the master, you don’t loose any commits.
However, when you want high availability, you need to have at least 2 slaves. Otherwise, the master will block
writes, when the slave is down. Synchronous replication can have a large impact on performance, because it is
highly dependent on the network latency, and throughput.
When using asynchronous replication, you don’t have these drawbacks, but you have to take into account that
there will be a replication lag. It is important to monitor this lag and alarm when the lag is higher than what you
think is acceptable for your use case. In case of disaster, you might loose some transactions. This also means that
you will have to restart Alfresco, because you risk having in consistent caches otherwise.
Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide"
CONFIGURATION FOR DEMO PURPOSES
postgresql.conf:
wal_level = hot_standby # or higher
max_wal_senders = 20
pg_hba.conf:
host replication repuser 172.18.0.0
255.255.255.0 md5 
pg_basebackup --pgdata=datadir --xlog-
method=stream --write-recovery-conf --
progress --dbname="host=pgmaster
port=5432 user=repuser
password=pwd" 
Conguring the slave is very simple. You
just need to run a command, and
everything will be copied from the
master, including the conguration
Alfresco uses a JDBC connection
string. You can dene multiple
servers in a PostgreSQL JDBC
connection string:
jdbc:postgresql://pgmaster:5432,pgs
lave:5432/alfresco
To congure PostgreSQL for streaming replication we have to adapt 2 les in the PostgreSQL data directory:
 1. postgresql.conf - this is the main conguration le. 
 2. pg_hba.conf - In this le we can congure who as access to what database, from where.
MASTER SLAVE ALFRESCO
Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide"
CONTINUOUS BACKUP AND POINT-IN-TIME RECOVERY
Wal archiving concept: the wal files are copied to another location. The copied wal files can then be used
when we want to restore a backup. This method has (at least) 3 advantages:
1. You don’t need to schedule a nightly backup.
2. The backup is done continuously
3. Upon restore, you can decide to restore up until a certain time or transaction. If you made an error, like
accidentally dropping a table, you can restore just before you made the mistake.
WAL ARCHIVING
POINT-IN-TIME RECOVERY
archive_mode = on
archive_command = 'test ! -f /wal_archive/%f && cp %p /wal_archive/%f' 
To start the wal archiving we need to add the following lines in the postgresql.conf:
Before starting the recovery, we need to restore the last base backup, taken before the time we want to
recover. This base backup should become the new data directory. In that new data directory you need to
put a recovery.conf:
The archive_commandparameter uses 2arguments:
• %f: The name of thewal file
• %p: The path of thewal file to copy
restore_command = 'cp /wal_archive/%f %p'
recovery_target_time = '2018-01-09 09:39:50'
Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide"
UPGRADING WITHOUT DOWNTIME
The easiest way to perform a
database upgrade is using
pg_dump to make a logical backup
and to restore that backup on the
new version of the database. The
problem with this approach is that
you need to perform these
operations, and your database
should be down, or in a read-only
state.
A classic master-slave replication
looks like viable solution. This way
you could add a slave of the new
version and switch over when all
transactions are replicated. 
However, because the replication is based on a binary format, that changes between version, you can only use
physical streaming replication between the same versions of PostgreSQL.
With the help of an extension pglogical, we can overcome this problem. Pglogical translates the physical
statements to a version independent format, so they can be applied on another version of PostgreSQL. 
HOW TO GET THINGS
DONE FAST!
Roxana Angheluta
Thijs Lemmens
Jasper Hilven
Willem Van den Eynde
Younes Regaieg
Jasper Hilven: "How to get things done fast"
Alfred Finder is a web application that allows you to quickly find documents on an Alfresco back-end, preview
them and process metadata.
When customers use a software, most of the time, they don't think about the choices that are behind the
development of it.
In this talk, Jasper Hilven, Software Engineer @Xenit, focused on two many aspects of building software:
1. Managing complexity and
2. Ensuring quality at multiple levels.
BEHIND THE SCENES OF ALFRED FINDER
Jasper Hilven: "How to get things done fast"
MANAGING COMPLEXITY TO KEEP THINGS SIMPLE
Using React is a logic
consequence of keeping
things simple
React gives you the power
of easily building the UI of
your application without
doing other complex things
that we do not need.  
It just works
In progress Review Done
As software is build out of
components, keep our
components as simple as
possible.
This implies that the
complexity of a software
component should grow
naturally. This means you
start with a simple value.
As soon as you want to
reuse the value, you make
a variable. If your variable
needs a scope, you build a
function or even later a
separate class.
We have multiple projects
to ensure the right
granularity of reuse, but
also because we have
multiple customers.
Customers are also not
happy if you deploy their
custom code to other
customers.
We use NPM to manage the
dependencies between
these projects. 
Jasper Hilven: "How to get things done fast"
ENSURE QUALITY AT MULTIPLE LEVELS
You need to find a balance between getting things done and assuring quality.
Quality of the code
@Xenit, we use Typescript to 
typecheck each single line of code.
The cost of these checks are
rather low, and happen each time
you write a single line of code. We
also use a Linter for style
checking. Its called Typescript
Linter. This is very useful if you
have multiple people working on
the same project. 
Components are the building block
of software. We use unit tests to test
our components. As soon as
somebody breaks a component, a
test complains about it. Then we can
fix the issue long before the
customer notices anything. "Its like
having a machine that checks all the
bricks each time again and again,
before you are even building your
house."
We automatically run (almost)
everything a user can do, each time
we change something to product. This
ensures that the customer can do with
our software what we promise. 
 Jenkins runs all these tests and keeps
all the reports of all the performed
tests. 
Quality of the components Quality of checks
DON'T REINVENT THE
WHEEL. REUSE!
Roxana Angheluta
Thijs Lemmens
Jasper Hilven
Willem Van den Eynde
Younes Regaieg
Younes Regaieg: "Don't reinvent the wheel. Reuse!"
Most software / systems are
actually designed by orchestrating
other smaller components (or
bricks) that have been crafted or
at least used in a different context.
Software engineering was initially
more focused on original
development but now it is
recognized that to achieve better
software faster and more
efficiently, a design approach
based on systematic reuse is
actually needed.
"Actually reuse of existing assets in the software industry is not as new as some might think.
Even though this industry started by promoting original software development, it definitely recognized that, in order to
reach a better, faster and prone proof software, one would need to make use of reusable assets and directs most of the
engineering efforts towards making the missing pieces in the puzzle, or maybe enhancing existing ones in order for them to
fit perfectly in their environment."
 -Younes Regaieg, Senior Software Engineer-
Younes Regaieg: "Don't reinvent the wheel. Reuse!"
WHAT CAN BE REUSED?
1. SOLUTIONS: For instance, a bunch of
docker container images / or VMs (Virtual
Machines) to speed up the deployment
process.
2. APPLICATIONS: By adopting Alfresco
Content Services, a fully fledged
applications are reused 
3. COMPONENTS: A component can be
actually be an add-on or a library that
bundles a feature or set of tightly
coupled/related features.
4.OBJECTS AND FUNCTIONS: Same as
components, they represent a piece of
reusable logic, but at a smaller scale.
Younes Regaieg: "Don't reinvent the wheel. Reuse!"
A SUSTAINABLE SOFTWARE REUSE PROCESS
IN FIVE STEPS
1. ANALYZE SPECIFICATIONS:  Usually at the start of a project you get the software specifications which you use
to create a component breakdown to be addressed one piece at a time.
2. PICK ELEMENT: Then you start picking pieces and address them one by one.
3. FIND REUSABLE ASSETS:  This step would highly depend on the knowledge of the team on board as well as
information that is available in the context of the project.
1 2 3 4.A
4.B
5
Younes Regaieg: "Don't reinvent the wheel. Reuse!"
FIND REUSABLE ASSETS USE CASE
In this use case, we are looking for the
company internal assets catalogs for
reusable assets and optionally looking
within partners portfolios and
community projects.
This depends on the customer in
question, the required support level, the
available budget and the experience of
the team members involved.
 There are two options:
First option: Not finding any assets that
could be useful, exit and terminate the
activity
Second option: Find assets and run
them though legal/sales departments
Younes Regaieg: "Don't reinvent the wheel. Reuse!"
A SUSTAINABLE SOFTWARE REUSE PROCESS
IN FIVE STEPS
4.A IMPLEMENT NEW FEATURES:  If you didn't find any assets, fit for the reuse, then you can implement the new
features
4.B. CONFIGURE AND EXTEND: Our search might have been a success and so we go forward to the step where
we configure or extend (or even implement something on top of it) the found re-usable assets.
5. MANAGE POTENTIAL ISSUES: You might eventually land on an asset where we can not cover all requirements
out of the box or we encounter a bug that needs resolving. in such case you might escalate to a new path where
patch the reusable asset and eventually send out a contribution for the project in question.
Following a couple of iterations on this process, your organization will start to develop a knowledge base for reusable
addons, with an increased productivity, faster time to market and definitely a better software quality
1 2 3 4.A
4.B
5
3 TIPS TO MIGRATE
ALFRESCO TO AWS OR
AZURE
Roxana Angheluta
Thijs Lemmens
Jasper Hilven
Willem Van den Eynde
Younes Regaieg
Cloud infrastructure offers many benefits including cost-savings and transparency in architecture.
Willem Van den Eynde, Senior ECM Sofwtare Architect @Xenit, got in touch with AWS services in 2012.
 However client adoptions was lacking behind. Until 2016, when he did two migrations from an existing on-
premise installation to AWS and a similar one to Microsoft Azure.
Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
TIP #01 - COPY DATA FIRST: Through the 2 migration projects, copying over the data has been the bottleneck.
It's often slow to copy over lots of small files. To give an example: it takes about 15 days to copy over 4TB over a
3MPBps connection. Speeding up the process by using temporary storage solutions and copy over deltas also
adds to the overall project throughput.
Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
TIP #02 - CLOUD ARCHITECTURE: Cloud architectures are very transparent, because all information about
their possibilities and prices are available online. This transparency helps to easy co-create the desired
architecture between client, Alfresco partner and infrastructure partner.
Components are regularly added and updated to take into account the latest technology and are easy to
evaluate and access.
.
Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
TIP #03 - MIGRATE FIRST, THEN...: It's a migration project first. Those projects typically require a very short cut-
off period, during the weekend for example. Therefore it's best to limit the scope to just the migration. And
leave other ideas like upgrades to subsequent projects.
Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
Xenit diary dev con 2018

More Related Content

Similar to Xenit diary dev con 2018

The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...Henning Jacobs
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...PROIDEA
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
Kubernetes in 15 minutes
Kubernetes in 15 minutesKubernetes in 15 minutes
Kubernetes in 15 minutesrhirschfeld
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development LifecycleSuhas Kelkar
 
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: KeynoteDocker-Hanoi
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
Selenium Training in Phagwara
Selenium Training in PhagwaraSelenium Training in Phagwara
Selenium Training in PhagwaraE2MATRIX
 
Container Soup for Your Soul: The Microservice Edition, Building Deployment ...
 Container Soup for Your Soul: The Microservice Edition, Building Deployment ... Container Soup for Your Soul: The Microservice Edition, Building Deployment ...
Container Soup for Your Soul: The Microservice Edition, Building Deployment ...Amazon Web Services
 
Selenium Training in Amritsar
Selenium Training in AmritsarSelenium Training in Amritsar
Selenium Training in AmritsarE2MATRIX
 
Selenium Training in Chandigarh
Selenium Training in ChandigarhSelenium Training in Chandigarh
Selenium Training in ChandigarhE2MATRIX
 
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Codemotion
 
Selenium Training in Mohali
Selenium Training in MohaliSelenium Training in Mohali
Selenium Training in MohaliE2MATRIX
 
Selenium Training in Ludhiana
Selenium Training in LudhianaSelenium Training in Ludhiana
Selenium Training in LudhianaE2MATRIX
 
Deploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesDeploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesPetteriTeikariPhD
 
Selenium Training in Jalandhar
Selenium Training in JalandharSelenium Training in Jalandhar
Selenium Training in JalandharE2MATRIX
 

Similar to Xenit diary dev con 2018 (20)

The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - Destinat...
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
Kubernetes in 15 minutes
Kubernetes in 15 minutesKubernetes in 15 minutes
Kubernetes in 15 minutes
 
Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
 
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Selenium Training in Phagwara
Selenium Training in PhagwaraSelenium Training in Phagwara
Selenium Training in Phagwara
 
Container Soup for Your Soul: The Microservice Edition, Building Deployment ...
 Container Soup for Your Soul: The Microservice Edition, Building Deployment ... Container Soup for Your Soul: The Microservice Edition, Building Deployment ...
Container Soup for Your Soul: The Microservice Edition, Building Deployment ...
 
Selenium Training in Amritsar
Selenium Training in AmritsarSelenium Training in Amritsar
Selenium Training in Amritsar
 
Selenium Training in Chandigarh
Selenium Training in ChandigarhSelenium Training in Chandigarh
Selenium Training in Chandigarh
 
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Selenium Training in Mohali
Selenium Training in MohaliSelenium Training in Mohali
Selenium Training in Mohali
 
Selenium Training in Ludhiana
Selenium Training in LudhianaSelenium Training in Ludhiana
Selenium Training in Ludhiana
 
Deploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesDeploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and Kubernetes
 
Selenium Training in Jalandhar
Selenium Training in JalandharSelenium Training in Jalandhar
Selenium Training in Jalandhar
 

More from XeniT Solutions nv

Data Security in the Insurance Industry: what you need to know about data pro...
Data Security in the Insurance Industry: what you need to know about data pro...Data Security in the Insurance Industry: what you need to know about data pro...
Data Security in the Insurance Industry: what you need to know about data pro...XeniT Solutions nv
 
Driving full-scale productivity and collaboration with the Alfresco connector...
Driving full-scale productivity and collaboration with the Alfresco connector...Driving full-scale productivity and collaboration with the Alfresco connector...
Driving full-scale productivity and collaboration with the Alfresco connector...XeniT Solutions nv
 
How to solve your toughest performance issues in Alfresco
How to solve your toughest performance issues in AlfrescoHow to solve your toughest performance issues in Alfresco
How to solve your toughest performance issues in AlfrescoXeniT Solutions nv
 
How do you secure an electronic signature?
How do you secure an electronic signature?How do you secure an electronic signature?
How do you secure an electronic signature?XeniT Solutions nv
 
How to increase user's productivity with Alfred Desktop and Alfred Finder
How to increase user's productivity with Alfred Desktop and Alfred FinderHow to increase user's productivity with Alfred Desktop and Alfred Finder
How to increase user's productivity with Alfred Desktop and Alfred FinderXeniT Solutions nv
 
How to Scale Information Dissemination to the Virtual Digital Workspace
How to Scale Information Dissemination to the Virtual Digital WorkspaceHow to Scale Information Dissemination to the Virtual Digital Workspace
How to Scale Information Dissemination to the Virtual Digital WorkspaceXeniT Solutions nv
 
THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...
THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...
THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...XeniT Solutions nv
 
Webinar | New release Alfred Desktop 3.7
Webinar | New release Alfred Desktop 3.7Webinar | New release Alfred Desktop 3.7
Webinar | New release Alfred Desktop 3.7XeniT Solutions nv
 
Webinar: How to turn Alfresco Digital Business Platform into a Managed Service
Webinar: How to turn Alfresco Digital Business Platform into a Managed ServiceWebinar: How to turn Alfresco Digital Business Platform into a Managed Service
Webinar: How to turn Alfresco Digital Business Platform into a Managed ServiceXeniT Solutions nv
 
Key points quality leaders should know about intelligent information manageme...
Key points quality leaders should know about intelligent information manageme...Key points quality leaders should know about intelligent information manageme...
Key points quality leaders should know about intelligent information manageme...XeniT Solutions nv
 
Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...
Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...
Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...XeniT Solutions nv
 
Leuven European actuarial journal conference 20180911
Leuven European actuarial journal conference 20180911Leuven European actuarial journal conference 20180911
Leuven European actuarial journal conference 20180911XeniT Solutions nv
 
How to configure alfred desktop in your alfresco project in two days
How to configure alfred desktop in your alfresco project in two daysHow to configure alfred desktop in your alfresco project in two days
How to configure alfred desktop in your alfresco project in two daysXeniT Solutions nv
 
GDPR READY SOLUTION FOR UNSTRUCTURED DATA
GDPR READY SOLUTION FOR UNSTRUCTURED DATAGDPR READY SOLUTION FOR UNSTRUCTURED DATA
GDPR READY SOLUTION FOR UNSTRUCTURED DATAXeniT Solutions nv
 
REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...
REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...
REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...XeniT Solutions nv
 
Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6 Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6 XeniT Solutions nv
 
How to implement gdpr in your document repository
How to implement gdpr in your document repository How to implement gdpr in your document repository
How to implement gdpr in your document repository XeniT Solutions nv
 
Introducing Alfred Finder 2.0
Introducing Alfred Finder 2.0 Introducing Alfred Finder 2.0
Introducing Alfred Finder 2.0 XeniT Solutions nv
 
20151201 swm elba_alfresco_user_day_wien
20151201 swm elba_alfresco_user_day_wien20151201 swm elba_alfresco_user_day_wien
20151201 swm elba_alfresco_user_day_wienXeniT Solutions nv
 
Usg people netherlands Alfresco User Day Amsterdam 3 dec 2015
Usg people netherlands   Alfresco User Day Amsterdam 3 dec 2015Usg people netherlands   Alfresco User Day Amsterdam 3 dec 2015
Usg people netherlands Alfresco User Day Amsterdam 3 dec 2015XeniT Solutions nv
 

More from XeniT Solutions nv (20)

Data Security in the Insurance Industry: what you need to know about data pro...
Data Security in the Insurance Industry: what you need to know about data pro...Data Security in the Insurance Industry: what you need to know about data pro...
Data Security in the Insurance Industry: what you need to know about data pro...
 
Driving full-scale productivity and collaboration with the Alfresco connector...
Driving full-scale productivity and collaboration with the Alfresco connector...Driving full-scale productivity and collaboration with the Alfresco connector...
Driving full-scale productivity and collaboration with the Alfresco connector...
 
How to solve your toughest performance issues in Alfresco
How to solve your toughest performance issues in AlfrescoHow to solve your toughest performance issues in Alfresco
How to solve your toughest performance issues in Alfresco
 
How do you secure an electronic signature?
How do you secure an electronic signature?How do you secure an electronic signature?
How do you secure an electronic signature?
 
How to increase user's productivity with Alfred Desktop and Alfred Finder
How to increase user's productivity with Alfred Desktop and Alfred FinderHow to increase user's productivity with Alfred Desktop and Alfred Finder
How to increase user's productivity with Alfred Desktop and Alfred Finder
 
How to Scale Information Dissemination to the Virtual Digital Workspace
How to Scale Information Dissemination to the Virtual Digital WorkspaceHow to Scale Information Dissemination to the Virtual Digital Workspace
How to Scale Information Dissemination to the Virtual Digital Workspace
 
THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...
THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...
THE ALFRESCO FOUNDATION ARCHITECTURE FOR INTEGRATED FULL DIGITAL INSURANCE PR...
 
Webinar | New release Alfred Desktop 3.7
Webinar | New release Alfred Desktop 3.7Webinar | New release Alfred Desktop 3.7
Webinar | New release Alfred Desktop 3.7
 
Webinar: How to turn Alfresco Digital Business Platform into a Managed Service
Webinar: How to turn Alfresco Digital Business Platform into a Managed ServiceWebinar: How to turn Alfresco Digital Business Platform into a Managed Service
Webinar: How to turn Alfresco Digital Business Platform into a Managed Service
 
Key points quality leaders should know about intelligent information manageme...
Key points quality leaders should know about intelligent information manageme...Key points quality leaders should know about intelligent information manageme...
Key points quality leaders should know about intelligent information manageme...
 
Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...
Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...
Decouple and simplify access to Alfresco with Alfred Edge - Webinar September...
 
Leuven European actuarial journal conference 20180911
Leuven European actuarial journal conference 20180911Leuven European actuarial journal conference 20180911
Leuven European actuarial journal conference 20180911
 
How to configure alfred desktop in your alfresco project in two days
How to configure alfred desktop in your alfresco project in two daysHow to configure alfred desktop in your alfresco project in two days
How to configure alfred desktop in your alfresco project in two days
 
GDPR READY SOLUTION FOR UNSTRUCTURED DATA
GDPR READY SOLUTION FOR UNSTRUCTURED DATAGDPR READY SOLUTION FOR UNSTRUCTURED DATA
GDPR READY SOLUTION FOR UNSTRUCTURED DATA
 
REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...
REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...
REDUCING TOTAL COST OF OWNERSHIP AND INCREASING SCALABILITY WITH XENIT SOLUTI...
 
Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6 Introducing Alfred Desktop 3.6
Introducing Alfred Desktop 3.6
 
How to implement gdpr in your document repository
How to implement gdpr in your document repository How to implement gdpr in your document repository
How to implement gdpr in your document repository
 
Introducing Alfred Finder 2.0
Introducing Alfred Finder 2.0 Introducing Alfred Finder 2.0
Introducing Alfred Finder 2.0
 
20151201 swm elba_alfresco_user_day_wien
20151201 swm elba_alfresco_user_day_wien20151201 swm elba_alfresco_user_day_wien
20151201 swm elba_alfresco_user_day_wien
 
Usg people netherlands Alfresco User Day Amsterdam 3 dec 2015
Usg people netherlands   Alfresco User Day Amsterdam 3 dec 2015Usg people netherlands   Alfresco User Day Amsterdam 3 dec 2015
Usg people netherlands Alfresco User Day Amsterdam 3 dec 2015
 

Recently uploaded

Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497dipikakk482
 
Thompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptx
Thompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptxThompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptx
Thompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptxtmthompson1
 
The Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and UncertaintyThe Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and Uncertaintycapivisgroup
 
Chapter 2 Organization Structure of a Treasury
Chapter 2 Organization Structure of a TreasuryChapter 2 Organization Structure of a Treasury
Chapter 2 Organization Structure of a TreasurySarunChhetri1
 
Moradia Isolada com Logradouro; Detached house with patio in Penacova
Moradia Isolada com Logradouro; Detached house with patio in PenacovaMoradia Isolada com Logradouro; Detached house with patio in Penacova
Moradia Isolada com Logradouro; Detached house with patio in Penacovaimostorept
 
A DAY IN THE LIFE OF A SALESPERSON .pptx
A DAY IN THE LIFE OF A SALESPERSON .pptxA DAY IN THE LIFE OF A SALESPERSON .pptx
A DAY IN THE LIFE OF A SALESPERSON .pptxseemajojo02
 
Unlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA FirmsUnlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA FirmsYourLegal Accounting
 
Progress Report - Oracle's OCI Analyst Summit 2024
Progress Report - Oracle's OCI Analyst Summit 2024Progress Report - Oracle's OCI Analyst Summit 2024
Progress Report - Oracle's OCI Analyst Summit 2024Holger Mueller
 
Presentation on cross cultural negotiations.
Presentation on cross cultural negotiations.Presentation on cross cultural negotiations.
Presentation on cross cultural negotiations.sumayyasubhana321
 
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistanvineshkumarsajnani12
 
Navigating Tax Season with Confidence Streamlines CPA Firms
Navigating Tax Season with Confidence Streamlines CPA FirmsNavigating Tax Season with Confidence Streamlines CPA Firms
Navigating Tax Season with Confidence Streamlines CPA FirmsYourLegal Accounting
 
Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...
Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...
Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...ssuserf63bd7
 
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...yulianti213969
 
Pixar Case Analysis.....................
Pixar Case Analysis.....................Pixar Case Analysis.....................
Pixar Case Analysis.....................mikelopezalv
 
Goal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptx
Goal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptxGoal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptx
Goal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptxNetapsFoundationAdmi
 
SCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjw
SCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjwSCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjw
SCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjwadimosmejiaslendon
 
Powerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metricsPowerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metricsCaitlinCummins3
 
Solar Panel Installation A Comprehensive Guide.pdf
Solar Panel Installation A Comprehensive Guide.pdfSolar Panel Installation A Comprehensive Guide.pdf
Solar Panel Installation A Comprehensive Guide.pdfDYFA Electrical
 
10 Easiest Ways To Buy Verified TransferWise Accounts
10 Easiest Ways To Buy Verified TransferWise Accounts10 Easiest Ways To Buy Verified TransferWise Accounts
10 Easiest Ways To Buy Verified TransferWise Accountshttps://localsmmshop.com/
 

Recently uploaded (20)

Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497
 
Thompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptx
Thompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptxThompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptx
Thompson_Taylor_MBBS_PB1_2024-03 (1)- Project & Portfolio 2.pptx
 
The Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and UncertaintyThe Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and Uncertainty
 
Chapter 2 Organization Structure of a Treasury
Chapter 2 Organization Structure of a TreasuryChapter 2 Organization Structure of a Treasury
Chapter 2 Organization Structure of a Treasury
 
Obat Aborsi Depok 0851\7696\3835 Jual Obat Cytotec Di Depok
Obat Aborsi Depok 0851\7696\3835 Jual Obat Cytotec Di DepokObat Aborsi Depok 0851\7696\3835 Jual Obat Cytotec Di Depok
Obat Aborsi Depok 0851\7696\3835 Jual Obat Cytotec Di Depok
 
Moradia Isolada com Logradouro; Detached house with patio in Penacova
Moradia Isolada com Logradouro; Detached house with patio in PenacovaMoradia Isolada com Logradouro; Detached house with patio in Penacova
Moradia Isolada com Logradouro; Detached house with patio in Penacova
 
A DAY IN THE LIFE OF A SALESPERSON .pptx
A DAY IN THE LIFE OF A SALESPERSON .pptxA DAY IN THE LIFE OF A SALESPERSON .pptx
A DAY IN THE LIFE OF A SALESPERSON .pptx
 
Unlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA FirmsUnlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA Firms
 
Progress Report - Oracle's OCI Analyst Summit 2024
Progress Report - Oracle's OCI Analyst Summit 2024Progress Report - Oracle's OCI Analyst Summit 2024
Progress Report - Oracle's OCI Analyst Summit 2024
 
Presentation on cross cultural negotiations.
Presentation on cross cultural negotiations.Presentation on cross cultural negotiations.
Presentation on cross cultural negotiations.
 
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
 
Navigating Tax Season with Confidence Streamlines CPA Firms
Navigating Tax Season with Confidence Streamlines CPA FirmsNavigating Tax Season with Confidence Streamlines CPA Firms
Navigating Tax Season with Confidence Streamlines CPA Firms
 
Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...
Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...
Understanding Financial Accounting 3rd Canadian Edition by Christopher D. Bur...
 
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
 
Pixar Case Analysis.....................
Pixar Case Analysis.....................Pixar Case Analysis.....................
Pixar Case Analysis.....................
 
Goal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptx
Goal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptxGoal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptx
Goal Presentation_NEW EMPLOYEE_NETAPS FOUNDATION.pptx
 
SCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjw
SCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjwSCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjw
SCI9-Q4-MOD8.1.pdfjttstwjwetw55k5wwtwrjw
 
Powerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metricsPowerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metrics
 
Solar Panel Installation A Comprehensive Guide.pdf
Solar Panel Installation A Comprehensive Guide.pdfSolar Panel Installation A Comprehensive Guide.pdf
Solar Panel Installation A Comprehensive Guide.pdf
 
10 Easiest Ways To Buy Verified TransferWise Accounts
10 Easiest Ways To Buy Verified TransferWise Accounts10 Easiest Ways To Buy Verified TransferWise Accounts
10 Easiest Ways To Buy Verified TransferWise Accounts
 

Xenit diary dev con 2018

  • 1. ALFRESCO DEVCON 2018 LISBON, PORTUGAL JANUARY 16-18, 2018 DEVCON 2018 Inclusive and inspiring topics from Alfresco community. INSPIRATION AT WORK How DevCon inspired Xenit, by Ronny Timmermans, CTO and Founder XENIT' TALKS Five talks from Xenit team, showing all our expertise, as Alfresco certified partner.  XENIT  DIARY ALFRESCO DEVCON 2018
  • 2. "VERY WELL BALANCED BETWEEN PURE TECHNICAL AND BROADER CONTENT" SCAN THE QR CODE TO FIND ALL PRESENTATIONS  FROM DEVCON Peak of Mt. Sifonn, Bulgaria Alfresco DevCon 2018 DEVCON IS BACK Last month, developers, engineers, marketing and sales, customers, enthusiasts and evangelists, they were all together in Lisbon, Portugal, attending the Alfresco DevCon 2018. LEARN. CONNECT. COLLABORATE DevCon 2018 is an international developer conference entirely dedicated to Alfresco technology. With the support of the community, customers, and partners, DevCon, you will increase your technical know- how, connect you with other Alfresco developers, and let you collaborate with our team and each other. "
  • 3. Peak of Mt. Sifonn, Bulgaria WHO WILL BE THE NEXT JEDI?  You may be surprise of this association with Star Wars, but it was the theme used by John Newton, Alfresco CTO and Founder, to provide his vision on the next disruptive technologies. In order: • Artificial intelligence • Microservices Architecture • Blockchain • Cloud operating System • Edge Computing • Multi-model User interface The hearth of the Content Service is intelligence and in the next future a set of technologies (NLP, machine learning) will be one gaming – changing for a deeper and wider understanding of the information.  CLOUD IS THE NEW NORMAL Production ready docker stackDevCon is not the first event where it has been mentioned, but now it’s quite clear that the platform is preparing to move to the Cloud. Amazon Web Service Cloud Service, precisely. As Angel Borroy highlights in his blog post, "it seems clear from both talks, that Alfresco has started an isolation services process to prepare the platform to be deployed natively on Cloud. Probably, Activiti 7 (not available yet) will be the first product to be transformed in that direction, so we have to wait a little to start playing with these technologies." ADF AND THE  FUTURE  OF ALFRESCO SHARE  This topic created a lot of noise in the Alfresco community. During the Q&A session, Thomas DeMeo, VP of the Product Management, answered a question about the future of Alfresco Share, saying the Share will be deprecated in the upcoming years, and ADF  (APPLICATION DEVELOPMENT FRAMEWORK) will fill in a certain way this gap In the Jeff Potts’ article, you can read the effect of this decision and what might happen next... 
  • 5. Devon 2018 inspired Xenit to help re-inventing Content Services in next decade. "ECM is not dead, Jim but it is transforming". Cloud and A.I. are creating new ways to manage content and automate the processes around it.    The cloud creates and advances future application architectures, even on premise, and monoliths are even more outdated than Dinosaurs We retained a number of striking topics at DevCon 2018, in line with our sense of purpose to bring Cognitive Clarity @Zero latency for different markets, verticals and horizontal challenges like GDPR: 1. Alfresco is heading towards a new micro-services architecture and Xenit actually has built a number of components to accelerate that journey (Alfred Edge & Inflow).   Think docker containers and kubernetes, even for small scale solutions. 2. In the future, a Gateway will be part of the Alfresco reference architecture. We are looking forward to build this with, for or around Alfresco.   3. AI has a bunch of use cases in content and process services. Edge computing, Cloud, Blockchain, multi- modal interfaces and related technologies will make their mark in future content and process services. 4. Multi-modal *cognitive* interfaces will be the new norm, application and business integration will be smart and dynamic 5. Graphql, as launched by Facebook, fitting within our react- stack, is a very interesting specification for query and modification (mutation) and notification. It is used for interfacing with Activiti. 6. Alfresco is thinking of using Electron for packaging ADF applications on a desktop. "Xenit seeks to develop these best practices, functionality and automation into our Alfred product line, with Alfresco technology at its core". Ronny Timmermans
  • 6. At Xenit, we think we can help Alfresco and its partners advance on this journey by : Ronny Timmermans 1. Creating a community around Facebook's react and extending the ADF reach into the react community, 2. Extending our intelligent gateway Alfred Edge for synchronous and asynchronous communication, while infusing best 'edge computing' practices into it.  3. Continuing to deliver simple, smart and swift windows desktop experience with Alfred Desktop COGNITIVE INTERFACE INTELLIGENT INTEGRATION AND EDGE COMPUTING
  • 7. XENIT TALKS Roxana Angheluta Thijs Lemmens Jasper Hilven Willem Van den Eynde Younes Regaieg
  • 8. PRODUCTION READY DOCKER STACK Roxana Angheluta Thijs Lemmens Jasper Hilven Willem Van den Eynde Younes Regaieg
  • 9. Roxana Angheluta: "Production ready Docker stack" THE CHALLENGES Automate the process of installing and maintaining Alfresco. Have Alfresco image(s) prepared ready, both for the Community and Enterprise, with or without Solr and LibreOffice running inside, for clustered environments as well as non- clustered, remotely or on our hosted  platform - reusing services such as the smtp server, with easy configuration changes and easy upgrades. Keep track of all changes involved and install a full monitoring, which alerts in case of problems and helps in capacity planning for resources. Flavor (community vs enterprise) Automation Upgrades Monitoring Traceability Versioning Single deployment method Easy configuration changes Data separation Security Alerting Single: Bundled / separated HostedClustered
  • 10. Roxana Angheluta: "Production ready Docker stack" THE ARCHITECTURE 1. Docker-compose up/down to start / stop services. 2. Consul (Hashicorp) + registrator (GliderLabs) for service discovery. 3. Consul template (Hashicorp) for rendering. "We started simple, with docker-compose files to start and stop services. We use Consul and registrator for service discovery and Consul template for rendering load balancing configurations and restarting load balancer. Consul was developed by Hashicorp and is a key-value store for storing services, adding or removing them on the fly based on health checks. The actual registration  is done by registrator developed at GliderLabs." - Roxana Angheluta, Senior ECM Engineer @Xenit We already deployed this architecture to our clients, with 100% successful use cases
  • 11. Roxana Angheluta: "Production ready Docker stack" THE DOCKER IMAGES The team started running the installer on a base Ubuntu image, very simple to implement and to upgrade to higher Alfresco versions.  When more flexibility is needed, like a specific version of java / tomcat, Installer is not right choice. The team moved therefore to a different method to build images. As base layer they started from java, on top of which they added Tomcat, then a skeleton for an Alfresco including the init script, then the war files. Finally, client specific modules were added on top. Watch the talk We aim for flexibility in customizing. We make the container stateless, by mounting the data and the logs.
  • 12. Roxana Angheluta: "Production ready Docker stack" THE MONITORING SYSTEM Our monitoring stack is complex and includes a number of parts: • Kibana, for log monitoring • Grafana, for numerical data • Cabot for alerting • Alerta which aggregates Cabot warnings and alerts and allows you to spot and prioritize issues, across multiple clients. What's next? Our next challenge is using reporting data to automatically produce SLA (Service Level Agreement) reports. 
  • 13. PostgreSQL FOR ALFRESCO: THE PRACTICAL GUIDE Roxana Angheluta Thijs Lemmens Jasper Hilven Willem Van den Eynde Younes Regaieg
  • 14. Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide" During DevCon, Thijs Lemmens, Senior ECM Engineer @Xenit, focused on three PostgreSQL topics: Master -Slave replication Continuous backup and Point-in-time recovery   Upgrading database without downtime 
  • 15. Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide"  "Synchronous or Asynchronous replication. That is the question" In PostgreSQL, a master-slaves setup relies on a concept called streaming replication. This concept relies on the transaction logs (WAL) that ensure ACID compliance and copies those over from master to slave,or standby. The advantage of synchronous replication is that when the master returns from a commit, you are sure that the commit is also safely written to the slave. In case of a disaster on the master, you don’t loose any commits. However, when you want high availability, you need to have at least 2 slaves. Otherwise, the master will block writes, when the slave is down. Synchronous replication can have a large impact on performance, because it is highly dependent on the network latency, and throughput. When using asynchronous replication, you don’t have these drawbacks, but you have to take into account that there will be a replication lag. It is important to monitor this lag and alarm when the lag is higher than what you think is acceptable for your use case. In case of disaster, you might loose some transactions. This also means that you will have to restart Alfresco, because you risk having in consistent caches otherwise.
  • 16. Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide" CONFIGURATION FOR DEMO PURPOSES postgresql.conf: wal_level = hot_standby # or higher max_wal_senders = 20 pg_hba.conf: host replication repuser 172.18.0.0 255.255.255.0 md5  pg_basebackup --pgdata=datadir --xlog- method=stream --write-recovery-conf -- progress --dbname="host=pgmaster port=5432 user=repuser password=pwd"  Conguring the slave is very simple. You just need to run a command, and everything will be copied from the master, including the conguration Alfresco uses a JDBC connection string. You can dene multiple servers in a PostgreSQL JDBC connection string: jdbc:postgresql://pgmaster:5432,pgs lave:5432/alfresco To congure PostgreSQL for streaming replication we have to adapt 2 les in the PostgreSQL data directory:  1. postgresql.conf - this is the main conguration le.   2. pg_hba.conf - In this le we can congure who as access to what database, from where. MASTER SLAVE ALFRESCO
  • 17. Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide" CONTINUOUS BACKUP AND POINT-IN-TIME RECOVERY Wal archiving concept: the wal files are copied to another location. The copied wal files can then be used when we want to restore a backup. This method has (at least) 3 advantages: 1. You don’t need to schedule a nightly backup. 2. The backup is done continuously 3. Upon restore, you can decide to restore up until a certain time or transaction. If you made an error, like accidentally dropping a table, you can restore just before you made the mistake. WAL ARCHIVING POINT-IN-TIME RECOVERY archive_mode = on archive_command = 'test ! -f /wal_archive/%f && cp %p /wal_archive/%f'  To start the wal archiving we need to add the following lines in the postgresql.conf: Before starting the recovery, we need to restore the last base backup, taken before the time we want to recover. This base backup should become the new data directory. In that new data directory you need to put a recovery.conf: The archive_commandparameter uses 2arguments: • %f: The name of thewal file • %p: The path of thewal file to copy restore_command = 'cp /wal_archive/%f %p' recovery_target_time = '2018-01-09 09:39:50'
  • 18. Thijs Lemmens: "PostgreSQL for Alfresco: the practical guide" UPGRADING WITHOUT DOWNTIME The easiest way to perform a database upgrade is using pg_dump to make a logical backup and to restore that backup on the new version of the database. The problem with this approach is that you need to perform these operations, and your database should be down, or in a read-only state. A classic master-slave replication looks like viable solution. This way you could add a slave of the new version and switch over when all transactions are replicated.  However, because the replication is based on a binary format, that changes between version, you can only use physical streaming replication between the same versions of PostgreSQL. With the help of an extension pglogical, we can overcome this problem. Pglogical translates the physical statements to a version independent format, so they can be applied on another version of PostgreSQL. 
  • 19. HOW TO GET THINGS DONE FAST! Roxana Angheluta Thijs Lemmens Jasper Hilven Willem Van den Eynde Younes Regaieg
  • 20. Jasper Hilven: "How to get things done fast" Alfred Finder is a web application that allows you to quickly find documents on an Alfresco back-end, preview them and process metadata. When customers use a software, most of the time, they don't think about the choices that are behind the development of it. In this talk, Jasper Hilven, Software Engineer @Xenit, focused on two many aspects of building software: 1. Managing complexity and 2. Ensuring quality at multiple levels. BEHIND THE SCENES OF ALFRED FINDER
  • 21. Jasper Hilven: "How to get things done fast" MANAGING COMPLEXITY TO KEEP THINGS SIMPLE Using React is a logic consequence of keeping things simple React gives you the power of easily building the UI of your application without doing other complex things that we do not need.   It just works In progress Review Done As software is build out of components, keep our components as simple as possible. This implies that the complexity of a software component should grow naturally. This means you start with a simple value. As soon as you want to reuse the value, you make a variable. If your variable needs a scope, you build a function or even later a separate class. We have multiple projects to ensure the right granularity of reuse, but also because we have multiple customers. Customers are also not happy if you deploy their custom code to other customers. We use NPM to manage the dependencies between these projects. 
  • 22. Jasper Hilven: "How to get things done fast" ENSURE QUALITY AT MULTIPLE LEVELS You need to find a balance between getting things done and assuring quality. Quality of the code @Xenit, we use Typescript to  typecheck each single line of code. The cost of these checks are rather low, and happen each time you write a single line of code. We also use a Linter for style checking. Its called Typescript Linter. This is very useful if you have multiple people working on the same project.  Components are the building block of software. We use unit tests to test our components. As soon as somebody breaks a component, a test complains about it. Then we can fix the issue long before the customer notices anything. "Its like having a machine that checks all the bricks each time again and again, before you are even building your house." We automatically run (almost) everything a user can do, each time we change something to product. This ensures that the customer can do with our software what we promise.   Jenkins runs all these tests and keeps all the reports of all the performed tests.  Quality of the components Quality of checks
  • 23. DON'T REINVENT THE WHEEL. REUSE! Roxana Angheluta Thijs Lemmens Jasper Hilven Willem Van den Eynde Younes Regaieg
  • 24. Younes Regaieg: "Don't reinvent the wheel. Reuse!" Most software / systems are actually designed by orchestrating other smaller components (or bricks) that have been crafted or at least used in a different context. Software engineering was initially more focused on original development but now it is recognized that to achieve better software faster and more efficiently, a design approach based on systematic reuse is actually needed. "Actually reuse of existing assets in the software industry is not as new as some might think. Even though this industry started by promoting original software development, it definitely recognized that, in order to reach a better, faster and prone proof software, one would need to make use of reusable assets and directs most of the engineering efforts towards making the missing pieces in the puzzle, or maybe enhancing existing ones in order for them to fit perfectly in their environment."  -Younes Regaieg, Senior Software Engineer-
  • 25. Younes Regaieg: "Don't reinvent the wheel. Reuse!" WHAT CAN BE REUSED? 1. SOLUTIONS: For instance, a bunch of docker container images / or VMs (Virtual Machines) to speed up the deployment process. 2. APPLICATIONS: By adopting Alfresco Content Services, a fully fledged applications are reused  3. COMPONENTS: A component can be actually be an add-on or a library that bundles a feature or set of tightly coupled/related features. 4.OBJECTS AND FUNCTIONS: Same as components, they represent a piece of reusable logic, but at a smaller scale.
  • 26. Younes Regaieg: "Don't reinvent the wheel. Reuse!" A SUSTAINABLE SOFTWARE REUSE PROCESS IN FIVE STEPS 1. ANALYZE SPECIFICATIONS:  Usually at the start of a project you get the software specifications which you use to create a component breakdown to be addressed one piece at a time. 2. PICK ELEMENT: Then you start picking pieces and address them one by one. 3. FIND REUSABLE ASSETS:  This step would highly depend on the knowledge of the team on board as well as information that is available in the context of the project. 1 2 3 4.A 4.B 5
  • 27. Younes Regaieg: "Don't reinvent the wheel. Reuse!" FIND REUSABLE ASSETS USE CASE In this use case, we are looking for the company internal assets catalogs for reusable assets and optionally looking within partners portfolios and community projects. This depends on the customer in question, the required support level, the available budget and the experience of the team members involved.  There are two options: First option: Not finding any assets that could be useful, exit and terminate the activity Second option: Find assets and run them though legal/sales departments
  • 28. Younes Regaieg: "Don't reinvent the wheel. Reuse!" A SUSTAINABLE SOFTWARE REUSE PROCESS IN FIVE STEPS 4.A IMPLEMENT NEW FEATURES:  If you didn't find any assets, fit for the reuse, then you can implement the new features 4.B. CONFIGURE AND EXTEND: Our search might have been a success and so we go forward to the step where we configure or extend (or even implement something on top of it) the found re-usable assets. 5. MANAGE POTENTIAL ISSUES: You might eventually land on an asset where we can not cover all requirements out of the box or we encounter a bug that needs resolving. in such case you might escalate to a new path where patch the reusable asset and eventually send out a contribution for the project in question. Following a couple of iterations on this process, your organization will start to develop a knowledge base for reusable addons, with an increased productivity, faster time to market and definitely a better software quality 1 2 3 4.A 4.B 5
  • 29. 3 TIPS TO MIGRATE ALFRESCO TO AWS OR AZURE Roxana Angheluta Thijs Lemmens Jasper Hilven Willem Van den Eynde Younes Regaieg
  • 30. Cloud infrastructure offers many benefits including cost-savings and transparency in architecture. Willem Van den Eynde, Senior ECM Sofwtare Architect @Xenit, got in touch with AWS services in 2012.  However client adoptions was lacking behind. Until 2016, when he did two migrations from an existing on- premise installation to AWS and a similar one to Microsoft Azure. Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
  • 31. TIP #01 - COPY DATA FIRST: Through the 2 migration projects, copying over the data has been the bottleneck. It's often slow to copy over lots of small files. To give an example: it takes about 15 days to copy over 4TB over a 3MPBps connection. Speeding up the process by using temporary storage solutions and copy over deltas also adds to the overall project throughput. Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
  • 32. TIP #02 - CLOUD ARCHITECTURE: Cloud architectures are very transparent, because all information about their possibilities and prices are available online. This transparency helps to easy co-create the desired architecture between client, Alfresco partner and infrastructure partner. Components are regularly added and updated to take into account the latest technology and are easy to evaluate and access. . Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure
  • 33. TIP #03 - MIGRATE FIRST, THEN...: It's a migration project first. Those projects typically require a very short cut- off period, during the weekend for example. Therefore it's best to limit the scope to just the migration. And leave other ideas like upgrades to subsequent projects. Willem Van den Eynde " 3 tips to migrate Alfresco to AWS or Azure