Upload
laurent-guerin
View
1.284
Download
0
Embed Size (px)
Citation preview
To be a Software Engineer today
(and in the future…)
http://labs.sogeti.com/
(and in the future…)
Sogeti Labs meeting / 2014 december / @ltguerin ver 1.1
Software Engineer … who’s that guy ?
Technology
trends
Mindset
evolutions
? DevOps
2
?Permanently
in evolution !
DevOps
Scripting is now everywhere
Even on the server side with Node.js
Each year new languages
Technology / Languages & programming paradigms
3
Programming paradigms evolution :
�Procedural oriented programming
� Event driven programming
� Object oriented programming (OOP)
� Aspect oriented programming (AOP)
� Functional programming :
Scala, Erlang, Haskell, F#,
Java 8 with Lambdas, …
Back to native languages ?
� C/C++
(old but still at the top )
� D (Digital Mars)
� Go (Google)
In the past :
SQL = “one language to rule them all”
But now ?
� No SQL (key/values, document, graph )
� Big Data (hadoop, …)
� New SQL (in memory, …)
Technology / Data management
4
New SQL The return of SQL?
� New SQL (in memory, …)
Mashup is inevitable
API is everywhere
An application is no longer isolated
but integrated into an heterogeneous environment
Technology / Architecture
API = the new must-have
for business
� “the API economy”
5
“Micro Services” architecture
Mashup is inevitable“the API economy”
cf "The Reactive Manifesto"
http://www.reactivemanifesto.org/
Application requirements have changed
dramatically in recent years
We expect …
- millisecond response times
- 100% uptime
- data measured in Petabytes
Today's demands are simply not met by
yesterday’s software architectures.
Technology / Reactive applications
6
yesterday’s software architectures.
We want systems that are Responsive,
Resilient, Elastic and Message Driven.
We call these “Reactive Systems”
Application
Lifecycle
Management
Software Factory
Continuous
Integration
Technology / Industrialization
From craftsman to industrial…
7
Quality
metrics
But keep the
“art of coding”!
Try to reach the
“beauty of code”
Technology / New devices
Not only computer !
Internet of the Things
M2M RobotsSmartphones
8
Raspberry pi, Arduino, etc…
SmartWear
Electronic
is back !
The developer’s
playground ?
Drones
Responsive design
Users want
simplicity !
Technology / User experience
SBA (Search Based Application)
Navigation & Gestures
9
Story BoardAnd more…
Mindset / Social coding & influences
but the response is always in
is the developer’s best friend,
is the developer’s heaven
The developer is sharing a lot of stuff via …
- Communities (JUG, GDG, …)
- Meetings & events (Devoxx, MeetUP, BBL, etc…)
Gurus show the way• Linus Torvald
• Martin Fowler
Social
coding
The developer’s job influences :
10
Job
- Meetings & events (Devoxx, MeetUP, BBL, etc…)
- Blogs
- Social networks
- Open Source projects
• Martin Fowler
• etc…
The developer’s
generation is now the
“Y generation”
Personal activities - Technology Watch
- Learning (MOOC)
- Experimentations,
- Open Source development…
Buzz
& fashion
Geek ?The “2nd life”
Usable as a SaaS ?
Deployable on a PaaS / IaaS ?
Enough skills to use Virtual Machines and containers ?
What about …
• Authentication
• Horizontal Scalability
Data Storage
Mindset / The head in the cloud
Is my software
cloud ready ?
11
• Data Storage
• Multi-tenancy
• Sessions management
• Logging
• Monitoring
• Security
• etc …
Think different, think cloud !
Mindset / Be agile ! (or die)
Test Driven Development XP Best
Practices
12
SCRUM Behavior Driven Development
DevOps : the fall of the walls
My job
is to say
« NO »
DevOps =
Break the wall !
13
BUSINESS DEV OPS
AGILEMETHODS
DEVOPS
SCRUM
DevOps
XP
From Continuous Integration … to Continuous Deployment
DevOps… The grail quest ?
Continuous
Integration
Continuous
14
Continuous
Deployment
Continuous
Delivery
DevOps = Agile Process + Automation => Tools required !
DevOps… The tools
An example with
Jenkins & DockerJenkins output :
Not only the “software”, but
“Software + Environment”
Registry
15
Do not install
just “pull & run” !
- Pull image- Run container
Host 1
Linux + Docker
Host 2
Linux + Docker
Host 3
Linux + Docker
Host 4
Linux + Docker
No
Virtual
Machine
(Linux only)Automated
Acceptance
Tests
User
Acceptance
Tests
Staging
& pre-
production
Production
Pull
Registry
( images)Push
The end
16
“We need developers more than ever”
cf Steve Ballmer / YouTube
17
https://www.youtube.com/watch?v=8To-6VIJZRE