This presentation was delivered jointly with a hands-on demo. The presentation briefly discusses how Cloud Foundry enables organizations to continuously deliver high-quality software and highlights an integrated development process built with Jenkins, Artifactory and Cloud Foundry.
14. #jenkinsconf
Simple Demo Flow
Cloud Foundry
Public FoundationPrivate FoundationDevelopers
IDE
Deploy
Job
Deploy
Job
cf pushcf push
Organization
Dev Test Production
http://maps-dev.piv.io
Organization
Dev Test Production
http://maps-dev.cfapps.io
Lattice
16. #jenkinsconf
Best Practices/Lessons
• Use the CB Jenkins CF plugin
• Hash commits and Build numbers for
versioning.
• Canonical Route Names for easy of use and
external access.
• Flyway for database migrations (flywaydb.org)
• SCM for config details and env variables.
• CD design includes multi-cloud for portability
and scale.
17. #jenkinsconf
Future Designs and Topics
• Jenkins Workflows
• Asynchronous pipelines and check points
• Orchestration of micro services.
• Docker images via Cloud Foundry Diego
• On-premise cloud scale deployment of
Jenkins on Cloud Foundry.
• CF plugin auto-pilot (Alternative)
• plugins.cloudfoundry.org
Software is a difficult business. It can 1-2 years to build an enterprise data center app, the risk is high and the return on investment tends to be all or nothing. The appeal of software is it changes industries. If you look at the companies listed they’ve all used software to change their industry. For example, Uber using a mobile app changed our perspective on car services and transportation in the city. Square changed our mind set on how and where we can conduct a business transaction. And Netflix changed the way we consume entertainment and media.
We’ve entered an era in software development where the emphasis is on rapid delivery. The companies listed are disruptive in their respective industries for a number of reasons. One thing they share in common is a very active software delivery pipeline. For example, Square and Airbnb have released their iOS applications 9 and 12 times since January of this year respectively.
I think its fair to say if software is changing industries then Cloud Foundry is changing How apps are built and operated. The companies listed here recognize cloud native apps will be built and operated differently then traditional apps.
I believe the transformation in software development and delivery leads to higher quality software. For years, we’ve focused on creating higher quality software. Unit test, functional tests, UI tests and integration tests is where we spent the earlier years of agile software development. We shifted to new methodologies like Test Driven Development to change our mind set about the software we produce. Continuous integration allowed us to feel confident about the software we wrote and validate its ability to pass testing.
Continuous deployment and delivery are ushering in a new set of standards helping us to continue to validate our software builds and ensure the delivery of those builds is as successful as the build phase. This approach needs to work across delivery boundaries. If we deliver to AWS today we must be able to feel confident our delivery to on-premise tomorrow is not compromised by proprietary APIs.
Configuration management is also striving for a better approach to software delivery. Gone are the days of property files and isolated black box deployments. Configuration management is moving to the source control repo. Configuration settings are provided by the platform and can be changed and version controlled.
Techniques like Blue/Green deployments are making organizations reconsider the definition of a production deployment. Using these techniques reduces the risk of a bad deployments, lessens the stress and burden on developers and operators and increases the feedback loop on creating better software.
In my opinion, a key element to continuous delivery is to use Platform as a Service. I think these 4 key elements are an absolute must for evaluating a platform,
A platform should have a strong, vibrant open source community. Cloud Foundry is the most popular open source platform today.
A platform provides a clean abstraction from underlying details of a Cloud or IaaS provider. It should be portable across Cloud/IaaS providers.
The platform should provide a layer to scale at the cloud and application level.
An API centric approach is always good for developers who are truly the owner and stewart to the application.