RHUG – MicroServices June 5th and 6th, 2017 1 Free download @ http://developers.redhat.com EVENT DETAILS: Date: June 11, 2017 Time: 8:30am - 1:30pm Location: Coors Field: 2001 Blake St., Denver, CO 80205 https://www.redhat.com/en/about/events/denver-culture- containers-and-accelerating- devops?sc_cid=701600000012CIoAAM Agenda ● What are Microservices? ● What are the benefits of Microservices? ● What is Microservices Architecture (Patterns to consider) – MSA? ● Enablement – Where to Start? ● Demo Microservices is about Agility/Speed Continuous Delivery, Deployment, Improvement Microservices Definition According to Wikipedia… • Communicate over a Network ● Services are small in size, messaging • Services in a Microservice architecture enabled, bounded by contexts, should be independently deployable autonomously developed, • The services are easy to replace independently deployable, • Services are organized around decentralized and built and released capabilities with automated processes • Services can be implemented using ● Naturally enforces a modular structure different programming ● Lends itself to a continuous languages, databases, hardware and delivery software development software environment, depending on process. what fits best Microservices Definition According to Martin Fowler … ● Componentization via Service ● Decentralized Governance and Data ● Organized Around Business Management Capabilities ● Infrastructure Automation ● Products not Projects ● Designed to be Evolutionary ● Services are organized around ● Design for Failure capabilities ● Smart Endpoints and Dumb Pipes Microservice Principles/Characteristics 1. Deployment Independence: updates to an individual Microservice have no negative impact to any other component of the system. Optimized for Replacement. 2. Organized around business capabilities. Products not Projects 3. API-Focused 4. Smart endpoints and dumb pipes 5. Decentralized Governance 6. Decentralized Data Management 7. Infrastructure Automation (infrastructure as code) 8. Design for failure 9. Evolutionary Design Why Microservices? If change is happening on the outside faster than on the inside the end is in sight. Jack Welch, former CEO, GE S&P company life expectancy Fortune 500 firms in 1955 vs. 2014; 88% are gone Group A Group B Group C American Motors Boeing Facebook Brown Shoe Campbell Soup eBay Studebaker General Motors Home Depot Collins Radio Kellogg Microsoft Detroit Steel Procter and Gamble Office Depot Zenith Electronics Deere Target National Sugar IBM Refining Whirlpool https://www.aei.org/publication/fortune-500-firms-in-1955-vs-2014-89-are-gone-and-were-all-better-off-because-of-that- dynamic-creative-destruction/ Software is eating the world. Marc Andreesen Digital Transformation Amazon is bigger than most brick and mortar retailers put together Market value as of December 30, 2016 Digital Transformation Retailer market cap over the past 10 years http://www.visualcapitalist.com/extra ordinary-size-amazon-one-chart/ Are you doing Microservices? • Number of features accepted • Mean time to recovery • % of features completed • % improvement in SLA • User satisfaction • Number of changes • Feature Cycle time • Number of user complaints, • Defects discovered after deployment recommendations, suggestions • Customer lifetime value (future profit as a • % favorable rating in surveys result of relationship with the • % of users using which features customer) https://en.wikipedia.org/wiki/Custo • % reduction in error rates mer_lifetime_value • Avg number of tx / user • Revenue per feature • MANY MORE ! Microservices Architecture – MSA organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations Melvin Conway Martin Fowler’s definition “The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.” Red Hat’s definition “Microservices is an architectural approach, that emphasizes the decomposition of applications into single-purpose, loosely coupled services managed by cross-functional teams, for delivering and maintaining complex software systems with the velocity and quality required by today’s digital business” Red Hat = Open Source This image cannot currentl This image cannot currentl 389 project | aeolus-configure | anaconda | attr | Audrey | Augeas | AuthHub | Autofs | Avahi | Beaker | Boxes | Btrfs | CacheFS | Cairo | candlepin | certmonger | CIFS | Cluster 3 | cobbler | colord | Completely Fair Scheduler | Conductor Control Group Configuration Library | Corosync | CRaSH | Crypto API | Cumin | Cygwin | D-Bus | Dashbuilder | Data Grids for the Java Platform | device-mapper | DeviceKit | DistributionUtilities | dlm | Dogtag | DPDK | Dracut | Editline Library EDS | EJB 3 | elfutils | elfutils | Embedded Jopr | Evolution | Evolution-exchange | eXo JCR | ext3 | ext4 | fence-agents | fence-virt | Flannel | fontconfig | func | Gamin | GateIn Portal | gcc | gcc | gcj | gdb | GFS | GFS2 | glib | gss-proxy GTK+ | gvfs | gzip | HTCondor | ID Utils | imagefactory | IPSec-Tools | iptraf-ng | Jandex | Java | JGroups | Jreadline | JRuby | JSFUnit | jUDDI | Katello | Kerberos | Kimchi | Koji | libguestfs | libibverbs | libminidump | libnotify | libqb libstoragemgmt | libuser | libvirt | libxml2 | libxslt | Linux Audit | Linux Infiniband Project | Linux Kernel | Linux PAM | linux-nfs | Luci | LVM2 | LVM2 | lynx | ManageIq | Matahari | Maven Integration for Eclipse | Maven Integration for Web Tools Platform | Mock | mod_cluster | moVirt | nautilus | netfilter | NetworkManager | NFS-Ganesha | nmap | Open vSwitch | openais | OpenDaylight | OpenJDK | OpenSSH | OpenSSL | OPNFV | OProfile | oVirt | oVirt Engine | oVirt Node | OVMF | Oz pacemaker | PackageKit | PackageKit | pango | PAPI | Paradyn | patchutils | Performance Co-Pilot | PicketBox | PicketLink | piglit | pixman | polkit | Polkit Qt | Poppler | Portlet Bridge | PostgreSqL | PressGang psmisc | Pulp | PulseAudio | pungi | pynfs | QEMU | Red Hat Update Agent | RESTEasy | rgmanager | RHQ | rpm | rpmgrill | RSYSLOG | Samba | Samba | SETroubleshoot ShrinkWrap | slapi-ns | Smokestack | Spacewalk Spherical | Spice | Spice-gtk | Spice-protocol | Stilts | suds | SWI Prolog | SwitchYard | syslog-ng | System Security Services Daemon | systemd | SystemTap | The Foreman | Thin Crust | tin | UberFire | udev udisks | udisks | UPower | util-linux | Valgrind | vc-dwim | vdagent | vdsm | vfs | Virt-clone | Virt-image | Virt-Install | Virt-manager | Virt-viewer | Virtual memory manager | Wallaby | Wayland | Wise | XFS | xinput | XNIO | Xorg | XrandR | yum Microservice Considerations Load Balancing Scaling / Elasticity Discovery Logging Resilience Monitoring MyService API Authentication Invocation Build, Messaging / Deployment IPC Pipeline Tracing Drawbacks to microservices • System complexity • Operational complexity • Testing is harder across services • Security • Hard to get boundaries right (transactions, etc) • Resource overhead • Network overhead • Lack of tooling Your Journey to Microservices :-) Re-Org to Self-Service, Automation CI & CD Advanced Silicon DevOps On-Demand, Puppet, Chef, Deployment Deployment Valley Elastic, Ansible Pipeline Techniques DotCom Infrastructure and/or Startup as Kubernetes Code (Cloud) Operating System Java Virtual Machine Application Server EAR - Enterprise Archive .WA .WA .WA .WA R R R R DTOs Entities .JAR.JAR .JAR.JAR .JAR .JAR 3rd Party Maven Dependencies .JAR .JAR.JAR .JAR .JAR .JAR .JAR Programmers (18) Operators (6) Business DBAs Analysts (3) (4) Project Quality Security & Managers Assurance Compliance (2) (6) (2) 2-Pizza Teams You Build It, You Own it The One ESB One bus to rule them all, One bus to find them, One bus to bring them all And in the darkness bind them Independence aids agility… Integration “Patterns” approach Patterns “Browser” API “Gateway” Chaining Mixed Strangler Fig http://www.martinfowler.com/bliki/StranglerApplication.html Strangle the Monolith Strangle the Monolith Strangle the Monolith Strangle the Monolith Strangle the Monolith Strangle the Monolith Strangle the Monolith Strangle the Monolith Enablement technologies Spring Boot • Simple configuration • Curated dependencies and transitive dependencies Wildfly Swarm • Built in metrics, monitoring • Slim profile for deployment (…micro even?) #microprofile Dropwizard Docker Container cluster management • Distributed configuration • Service Discovery • Load balancing • Versioning/Routing • Deployments • Scaling/Autoscaling • Liveness/Health checking • Self healing OpenShift is Enterprise Kubernetes • Team self service application deployment • Developer workflow • Enterprise focused (LDAP, RBAC, Oauth, etc) • Integrated Docker registry • Jenkins Pipeline out of the box • Build/deployment triggers • Software Defined Networking (SDN) • Docker native format/packaging • CLI/IDE/Web based tooling Declarative microservices • Elasticity, resiliency, self-healing, autoscaling • Service discovery, load balancing, failover • Logging, monitoring, tracing • Configuration • Testing • Delivery MSA Transformation Monolith Datacenter Waterfall N-Tier Hosted Agile Microservices Hybrid DevOps Applications Infrastructures Processes DevOps enabled w/ Containers and MicroServices… Physical Virtual Source Dev
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages62 Page
-
File Size-